Loupe CLI
A Swift CLI that shows an agent the live UI of an Apple app: view tree, accessibility, logs, network and tap verification.
- 106 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The CLI injects a library into a running app, taps elements and temporarily changes UI properties in a simulator or debug build.
Install
Manual install
brew tap heoblitz/loupe https://github.com/heoblitz/Loupe.gitThe first command of the Install section. Then `brew trust heoblitz/loupe`, `brew install loupe` and `loupe skills install` for the skill.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The CLI injects a library into a running app, taps elements and temporarily changes UI properties in a simulator or debug build.
This is third-party code. Review the repository files before installing.
What it does
Loupe is a Swift CLI with which an AI agent builds and verifies Apple platform app interfaces from the running program, not from source or a screenshot. Tools such as Xcode MCP and XcodeBuildMCP build, launch and test the app. Loupe adds the UI layer: structured data from the running copy. The `loupe app launch` command starts the app with an injected library, `loupe ui report` captures a report with the view tree, properties, accessibility, a screenshot, logs and network, and `loupe ui audit` checks layout, hit areas and design drift. `loupe act` taps, types and swipes with a before and after trace, and `loupe ui set` temporarily changes properties for probes. iOS, macOS, tvOS, watchOS and visionOS are supported. The skill installs with `loupe skills install`.
Who it is for. iOS and macOS app developers who fix UI with an agent and want to verify it on the running copy.
Good fit when
- The pay button does not respond and the view tree, responders and hit areas are needed.
- Layout is compared with a Figma design and drift is sought on the live screen.
- The agent must tap an element by `testId` and see what changed in the tree before and after.
- A color tweak is tried on the running app before source edits.
Not a fit when
- You only need a builder and test runs: Xcode MCP or XcodeBuildMCP is enough.
- The Mac has an Intel processor: Loupe supports Apple Silicon only.
- The app is built with Hardened Runtime: library injection may be rejected.
Example request
Launch the app in the simulator with Loupe, capture a report and find why the pay button receives no taps.Limitations
A Mac with Apple Silicon is required, Intel is not supported. Dynamic library injection may be rejected by Hardened Runtime or library validation, in which case `LoupeInjector` is linked into the build. WKWebView content is found by point sampling and can miss small and hidden elements, and physical devices do not support that discovery. Changes through `loupe ui set` are probes, so the result has to be applied to source and verified with a fresh report.
How to disable. Remove the package with `brew uninstall loupe` and delete the skill from the agent directory. Remove the `LoupeInjector` library from your build if you linked it.
FAQ
How do I install Loupe?
Run `brew tap heoblitz/loupe https://github.com/heoblitz/Loupe.git`, `brew trust heoblitz/loupe` and `brew install loupe`. The skill installs with `loupe skills install`.
How do I capture a UI report?
Launch the app with `loupe app launch --bundle-id <bundle-id> --device <simulator-udid> --inject`, then `loupe ui report --bundle-id <bundle-id> --output loupe-report`.
Which platforms are supported?
iOS in the simulator and on devices in debug builds, plus macOS, tvOS, watchOS and visionOS in simulators.
How do I tap an element and keep a trace?
Run `loupe act tap --udid <simulator-udid> --test-id checkout.payButton --trace-dir /tmp/loupe-tap`, then `loupe debug trace summary /tmp/loupe-tap`.
How is Loupe different from XcodeBuildMCP?
XcodeBuildMCP builds, launches and tests the app, while Loupe adds structured data from the running UI: the view tree, accessibility, hit areas and action traces.
Discussion
No questions or reviews yet.
Related
CLI toolsA CLI that checks SwiftUI screens and runs iOS tests with no Simulator: agents read an accessibility tree and reload views in 2 s.
A CLI that shows an agent an iOS Simulator or Android emulator screen as a compact element list and taps elements by short alias.
A skill with scripts for building iOS apps and driving the simulator through the accessibility tree, with compact output for agents
Skills for Apple development: SwiftUI, UIKit and Liquid Glass references, Swift 6 guides and a router for iOS 26+ tasks
An MCP server that drives a real iPhone through macOS iPhone Mirroring: the agent sees the screen, taps, swipes and types
The npx serve-sim command streams an iOS Simulator to the browser and lets an agent tap, swipe, type and replace the camera feed
README in short
The repository holds the Swift CLI, the `skills/loupe/` skill with references, a sample app, documents on goals, status, tests, Figma comparison and Homebrew distribution. The license is MIT.