explaingit

flextool/flex

Analysis updated 2026-06-24 · repo last pushed 2026-04-20

14,598Objective-CAudience · developerComplexity · 3/5MaintainedSetup · easy

TLDR

In-app debugging toolbar for iOS that lets you inspect views, edit live state, browse network traffic and the file system, all without LLDB or Xcode attached.

Mindmap

mindmap
  root((FLEX))
    Inputs
      Running iOS app
      Gesture or hotkey
    Outputs
      Live view tree
      Network history
      Heap and file browser
    Use Cases
      Debug iOS apps in the field
      Inspect third-party apps
      Tweak UI at runtime
    Tech Stack
      Objective-C
      iOS SDK
      UIKit
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Inspect and edit any view, property or instance variable in a running iOS app without rebuilding.

USE CASE 2

Watch the full network request and response history of your app live on device.

USE CASE 3

Browse the app sandbox, open SQLite or Realm DB files and tweak NSUserDefaults at runtime.

USE CASE 4

Scan the heap for live objects and call arbitrary methods on them to reproduce bugs.

What is it built with?

Objective-CiOSUIKitSwift

How does it compare?

flextool/flexkeycastr/keycastrmarcuswestin/webviewjavascriptbridge
Stars14,59814,81514,320
LanguageObjective-CObjective-CObjective-C
Last pushed2026-04-20
MaintenanceMaintained
Setup difficultyeasyeasymoderate
Complexity3/51/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Only suitable for debug builds of your own iOS app, you must guard FLEX behind #if DEBUG so it never ships to the App Store.

In plain English

FLEX, short for Flipboard Explorer, is a set of debugging and exploration tools that you bundle into your own iOS app while developing it. When you turn it on, FLEX shows a small toolbar floating in a window above your running app. From there, an iOS developer can peek into and change almost every piece of internal state in the app without rebuilding or attaching a separate debugger. The README lists a long set of things you can do once it is active. You can pick a view and look at its properties and instance variables, then change them on the fly. You can call methods on any object. You can browse the network history with timings, headers, and full responses, view NSLog messages, and edit NSUserDefaults. You can also scan the heap for live objects, walk the app's sandbox file system, and open SQLite or Realm database files inside it. A key point in the README is that FLEX runs entirely inside the app itself. You do not need to be connected to LLDB or Xcode or any remote debugging server, and it works both in the simulator and on a real device. In the simulator, pressing f toggles the toolbar and pressing ? lists the keyboard shortcuts. You can also start it from code, with a one-liner in Objective-C or Swift, often guarded by a #if DEBUG block or wired to a gesture like a six-finger quadruple tap. The feature sections give more detail. The network history can be set to start automatically at launch, and there are limits you can set on cached response bodies. The heap view uses malloc to find live allocated blocks that look like objects. There is an explore-at-address feature that opens an arbitrary pointer, with a warning and an unsafe option if FLEX is not sure the pointer is valid. The file browser pretty-prints JSON and plist files, shows image previews, and lets you rename, delete, or share files. The library explorer lets you dig through all loaded public and private classes. The README notes that tvOS is not supported out of the box but points to a community fork. A small section called Learning from Other Apps mentions code injection, with the technique left as an exercise for the reader. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Add FLEX to my Swift iOS app via Swift Package Manager and wire a six-finger tap gesture to show its toolbar in DEBUG builds.
Prompt 2
Show me how to use FLEX to inspect why a UITableViewCell has the wrong background color, step by step.
Prompt 3
Use FLEX's network history to capture and copy out the JSON body of a failing POST request my app makes.
Prompt 4
Write a #if DEBUG block in AppDelegate.m that starts FLEX automatically on simulator launch but never in release.
Prompt 5
Explain how FLEX's heap scanner finds live Objective-C objects and what the unsafe explore-at-address option does.

Frequently asked questions

What is flex?

In-app debugging toolbar for iOS that lets you inspect views, edit live state, browse network traffic and the file system, all without LLDB or Xcode attached.

What language is flex written in?

Mainly Objective-C. The stack also includes Objective-C, iOS, UIKit.

Is flex actively maintained?

Maintained — commit in last 6 months (last push 2026-04-20).

How hard is flex to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is flex for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.