FLEX
What it is
FLEX is a free, open-source tool for inspecting and debugging iOS apps while they run. It adds a toolbar in a window above the app, where developers can examine and change application state. FLEX can inspect views, find live objects in memory, display their properties and ivars, modify them, and call methods. Its network history shows timing, headers, and responses for requests made through NSURLConnection or NSURLSession. Developers can also browse an app’s bundle and sandbox, explore SQLite and Realm databases, and view or change NSUserDefaults values, including strings, numbers, arrays, and dictionaries.
FLEX runs inside the app, in the iOS Simulator or on physical iOS devices, without an LLDB or Xcode connection or a remote debugging server. It supports Objective-C and Swift, and installation options include CocoaPods, Carthage, Buck, manual Xcode integration, and Swift Package Manager. Apps must target iOS 9 or higher. The project advises excluding FLEX from Release builds; it does not support tvOS out of the box.
For and against
For
- Inspects and modifies views and live objects.
- Shows network request timing, headers, and responses.
- Browses SQLite, Realm, bundle, and sandbox contents.
- Works in simulators and on physical iOS devices.
- Free and open source.
Against
- Requires an iOS 9-or-higher app target.
- Does not support tvOS out of the box.
- Project advises excluding it from Release builds.
The verdict
FLEX brings a broad set of inspection tools into the running iOS app, without requiring an LLDB or Xcode connection. Its iOS target requirement and Release-build caution are important constraints for teams considering it.
Who it suits
FLEX suits iOS developers who need to inspect and change app state during development. It is aimed at Objective-C and Swift projects targeting iOS 9 or higher.
Plans and prices
FLEX
Open-source iOS debugging library · iOS 9 or higher
Read 8 Oct 2026 · github.com
On the record
- App settings
- It can view and dynamically modify NSUserDefaults values.github.com · read 7 Oct 2026
- Contributions
- The project welcomes pull requests and directs contributors to its contributing guide.engineering.flipboard.com · read 8 Oct 2026
- Device use
- The maker says FLEX works in the simulator and on physical devices.engineering.flipboard.com · read 7 Oct 2026
- File and database browsers
- It can browse the app’s sandbox files and SQLite or Realm databases.github.com · read 8 Oct 2026
- File and database browsing
- FLEX can browse the app bundle or sandbox, and explore SQLite and Realm databases.github.com · read 7 Oct 2026
- Heap exploration
- FLEX can scan live allocated memory for objects and let developers inspect them.github.com · read 8 Oct 2026
- How it works
- It presents a toolbar in a window above the running app, where developers can view and modify application state.github.com · read 7 Oct 2026
- In-app toolbar
- It displays a toolbar in a window above the app, where developers can view and modify application state.github.com · read 8 Oct 2026
- Installation
- The project documents installation through CocoaPods, Carthage, Buck, manual Xcode integration, and Swift Package Manager.github.com · read 8 Oct 2026
- Intended users
- The maker describes FLEX as a tool for iOS development and debugging.github.com · read 7 Oct 2026
- License and contributions
- Flipboard announced FLEX as open source and welcomed pull requests.engineering.flipboard.com · read 7 Oct 2026
- Minimum target
- FLEX requires an app that targets iOS 9 or higher.github.com · read 8 Oct 2026
- Network debugging
- Its network history can show requests made using NSURLConnection or NSURLSession, including timing, headers, and responses.github.com · read 7 Oct 2026
- Network history
- Network debugging can show request timing, headers, and full responses for requests made using NSURLConnection or NSURLSession.github.com · read 8 Oct 2026
- NSUserDefaults
- Developers can view and dynamically modify NSUserDefaults values; supported editable values include strings, numbers, arrays, and dictionaries.github.com · read 8 Oct 2026
- Object inspection
- It can find live objects on the heap, show their properties and ivars, modify them, and call methods.github.com · read 7 Oct 2026
- Operation
- FLEX runs inside the app and works in both the simulator and on physical devices without an LLDB/Xcode connection or remote debugging server.engineering.flipboard.com · read 8 Oct 2026
- Platform limit
- FLEX does not support tvOS out of the box.github.com · read 7 Oct 2026
The review
FLEX is an open-source debugging library for iOS apps, best suited to developers who need to inspect a running app on a simulator or device. Its appeal is the breadth of runtime inspection it brings inside the app; its narrow iOS focus and Release-build caution make it a development-only choice.
Overview
FLEX opens a toolbar in a window above the running app, letting developers examine and change application state in place. Because it runs within the app, it does not need an LLDB or Xcode connection or a remote debugging server while in use. That can simplify debugging on a physical device as well as in the simulator, though it also means FLEX must be integrated into the app being inspected.
The project is open source, welcomes pull requests, and documents integration through CocoaPods, Carthage, Buck, manual Xcode integration, and Swift Package Manager. FLEX requires a target of iOS 9 or higher. Its maintainers advise keeping it out of Release builds: exposing the tool to app users is not recommended and may lead to App Store rejection.
Key features
Inspect live views and objects
FLEX can inspect and modify views in the hierarchy, and scan live allocated memory for objects. Developers can examine object properties and ivars, change them, and call methods. This concentration of runtime access is useful when investigating state directly in a running app; it is not a replacement for a debugger connection when that workflow is required.
Trace network activity
Network history shows timing, headers, and full responses for requests made through NSURLConnection or NSURLSession. The supported API scope is a meaningful boundary: teams whose networking bypasses those interfaces should not assume FLEX will provide the same visibility.
Browse files, databases, and settings
FLEX can browse the app bundle and sandbox, explore SQLite and Realm databases, and view or dynamically edit NSUserDefaults values. Editable defaults include strings, numbers, arrays, and dictionaries. These tools make it practical to inspect persisted app data and settings without leaving the running app, while remaining specific to the formats and settings FLEX supports.
Pricing
FLEX is free: its open-source iOS debugging library costs nothing. There is no paid tier or free trial. The single plan is a fit for iOS teams that can integrate the library and meet its platform requirements; there are no cheaper plans with reduced features to weigh against it.
Platforms
FLEX supports iOS Simulator and physical iOS devices, and is intended for apps written in Objective-C or Swift. An app must target iOS 9 or later. It does not support tvOS out of the box; teams targeting tvOS would need to consider third-party ports rather than assume direct compatibility.
Who it's for
FLEX is for iOS developers who want in-app access to views, live objects, network history, files, databases, and user defaults during development. It is especially apt when avoiding an LLDB, Xcode, or remote-server connection during use matters. It is not a sound fit for teams that need tvOS support, target below iOS 9, or want to expose a debugging interface in a release app.
Pros and cons
- Broad runtime inspection: Views, heap objects, app files, supported databases, network requests, and user defaults can all be examined from the running app.
- No separate debugging connection in use: FLEX works inside the app on simulators and physical devices without LLDB, Xcode, or a remote debugging server connection.
- Open source and free: The free plan and welcomed contributions make it accessible to teams able to integrate and maintain it.
- Strict platform boundaries: FLEX requires iOS 9 or higher and does not support tvOS out of the box.
- Release builds need care: The project advises excluding FLEX from Release builds because user exposure is not recommended and may risk App Store rejection.
Alternatives
For a broader debugging alternative, LLDB is free and supports Android, iOS, Linux, macOS, and Windows. Choose it when cross-platform availability matters more than FLEX's in-app inspection approach. PonyDebugger is another free option, with an iOS client and gateway server for teams looking for that client-and-server arrangement.
RenderDoc is free and open source under the MIT license, with Android, Linux, and Windows support; it is an option when those platforms are the priority rather than FLEX's iOS scope. IDA Pro offers a free plan with x86-32 and x86-64 disassembly, two cloud-based decompilers, and a named license on macOS, Linux, and Windows; its Pro Essential plan costs $1,099. Consider it when that disassembly and decompilation scope is the need.
Perl Debugger is included with Perl and requires the program to compile correctly before debugging. pyOCD is a free Apache 2.0 open-source project. Black Magic Debug is a free JTAG/SWD debugger for embedded microcontrollers that requires compatible probe hardware and a suitable toolchain. FlowStorm is free as in speech, with no money involved and no restrictions on use. For more choices, browse Debuggers.
Verdict
Choose FLEX if you develop iOS apps and want a free, in-app toolkit for inspecting and changing runtime state without a separate debugging connection. Its combination of view, object, network, file, database, and settings inspection is the main reason to adopt it. Look elsewhere if you need tvOS support, a target below iOS 9, or a tool that can safely remain exposed in a Release build.