Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
ebb60f2
feat: add app-flow
hurali97 Oct 14, 2026
d5878ca
fix: folder picker
hurali97 Oct 14, 2026
cb6ae7b
fix: launch and start recording
hurali97 Oct 14, 2026
e1ef776
fix: image display
hurali97 Oct 14, 2026
0ff6916
fix: cumulative time duration and graph update
hurali97 Oct 15, 2026
363ee0a
feat: port runtime based flow
hurali97 Oct 15, 2026
d04e3eb
fix: ui prompts
hurali97 Oct 16, 2026
2a91f59
fix: bugs and parity with runtime route
hurali97 Oct 16, 2026
8e67c47
fix: model calls
hurali97 Oct 16, 2026
f924706
feat: add UI states opt-in
hurali97 Oct 16, 2026
546536c
fix: bugs
hurali97 Oct 16, 2026
3613a63
fix: ui states capture
hurali97 Oct 19, 2026
1f11915
revert: ui states
hurali97 Oct 19, 2026
7918a9c
feat: add ui state capture
hurali97 Oct 19, 2026
d56bf12
feat: capture UI states as part of explore
hurali97 Oct 19, 2026
a8a1038
feat: working UI states
hurali97 Oct 20, 2026
5eaa6d9
feat: add jump-to drop down
hurali97 Oct 20, 2026
9e3b408
feat: improve UI
hurali97 Oct 20, 2026
c14fc59
fix: record path bugs
hurali97 Oct 20, 2026
a00cc81
feat: allow fast path to be replayed
hurali97 Oct 21, 2026
5532b1e
feat: disable uncaptured path replays
hurali97 Oct 21, 2026
e51ee4c
feat: make fast codex hop free
hurali97 Oct 21, 2026
5035e5e
feat: add opt-in codex hop
hurali97 Oct 21, 2026
e7270c8
feat: add filter and confirmation
hurali97 Oct 21, 2026
de75e00
Merge remote-tracking branch 'origin/main' into hur/add-app-flow
hurali97 Oct 21, 2026
74a686b
refactor: code review
hurali97 Oct 21, 2026
1a7b307
feat(app-flow): default MCP exploration mode to fast
hurali97 Oct 21, 2026
f758121
feat: rework UI and defaults
hurali97 Oct 23, 2026
f43bcc5
Merge remote-tracking branch 'origin/main' into hur/add-app-flow
hurali97 Nov 2, 2026
f319975
feat: add guides and update UI
hurali97 Nov 2, 2026
d9b6bb9
fix: explore with AI
hurali97 Nov 2, 2026
42384b6
feat: show banner always
hurali97 Nov 2, 2026
27bfecc
fix: overlapping and resize issue in record path
hurali97 Nov 2, 2026
8953697
fix: time duration when explore with AI
hurali97 Nov 2, 2026
5913746
fix: code reviews
hurali97 Nov 2, 2026
84cdfc8
fix: bug while regenerating
hurali97 Nov 2, 2026
1274fcb
fix: avoid bundling in TS parser
hurali97 Nov 2, 2026
b9727ea
refactor: remove stale vendored baguette
hurali97 Nov 3, 2026
c233d96
refactor: remove stale test script
hurali97 Nov 3, 2026
1b76932
docs: update website
hurali97 Nov 3, 2026
69a2d88
refactor: remove duplicates, shorten comments
hurali97 Nov 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ Install a built app, launch or stop it, and open a deep link or URL to jump to a
### Device settings and network conditions
Change the running device's appearance, text size, rotation, location, and status bar without restarting its stream. Switch the network to LTE, 3G, Edge, or Offline to see how the app behaves on a slow or missing connection, then back to Normal. Available settings depend on the platform and device kind.

### App Flow
Build a visual map of your app's screens and the navigation between them, for Expo Router and React Navigation projects. **Structure only** reads the navigation out of your source in seconds and needs no device; **Screen UI + Structure** also walks the app on an iOS simulator and photographs every screen it reaches, optionally opening each screen's sheets, modals, and dialogs. The walk runs your project's own `ios` script and reaches each screen through in-app navigation, a deep link, or a path you recorded; record one by hand on the live wireframe for a screen it cannot reach. Explore with AI lists the screens the deterministic pass missed and retries only the ones you pick. Maps, captures, and recorded paths are stored per project under `~/Library/Application Support/mobile-dev/app-flow`.

### Native and JavaScript logs
Read iOS unified logs, Android logcat, and Metro console messages together. Follow the foreground app, search and filter logs, and send an error and its stack trace to chat.

Expand Down
2 changes: 1 addition & 1 deletion apps/claude/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "mobile-dev",
"displayName": "Mobile Dev",
"description": "Everything you need for mobile development with your agent. Live devices (simulators, emulators, and physical devices) beside your chat, app and device control, screen annotations, logs, app storage inspection, and dedicated tools to profile your app's performance (CPU, memory, FPS, CPU and React profiles with TraceSift). Requires an Apple Silicon Mac.",
"description": "Everything you need for mobile development with your agent. Live devices (simulators, emulators, and physical devices) beside your chat, app and device control, screen annotations, logs, app storage inspection, visual app flow maps of your screens and navigation, and dedicated tools to profile your app's performance (CPU, memory, FPS, CPU and React profiles with TraceSift). Requires an Apple Silicon Mac.",
"author": {
"name": "Callstack",
"email": "hello@callstack.com"
Expand Down
3 changes: 3 additions & 0 deletions apps/claude/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ SwiftUI, and other native mobile projects.
[agent-device](https://agent-device.dev/) runtime.
- **App control:** install, launch, and stop apps, open deep links, send test pushes,
and set permissions and languages.
- **App Flow:** a visual map of your app's screens and the navigation between them,
read from your Expo Router or React Navigation source and optionally captured by
walking the app on an iOS simulator.
- **Logs:** iOS unified logs, Android logcat, physical iPhone logs, and Metro console
messages.
- **Performance:** CPU, memory, and FPS recordings shown as interactive charts in
Expand Down
2 changes: 1 addition & 1 deletion apps/claude/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": "0.3",
"name": "mobile-dev",
"display_name": "Mobile Dev",
"description": "Everything you need for mobile development with your agent. Live devices (simulators, emulators, and physical devices) beside your chat, app and device control, screen annotations, logs, app storage inspection, and dedicated tools to profile your app's performance (CPU, memory, FPS, CPU and React profiles with TraceSift). Requires an Apple Silicon Mac.",
"description": "Everything you need for mobile development with your agent. Live devices (simulators, emulators, and physical devices) beside your chat, app and device control, screen annotations, logs, app storage inspection, visual app flow maps of your screens and navigation, and dedicated tools to profile your app's performance (CPU, memory, FPS, CPU and React profiles with TraceSift). Requires an Apple Silicon Mac.",
"author": {
"name": "Callstack"
},
Expand Down
4 changes: 2 additions & 2 deletions apps/codex-plugin/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mobile-dev",
"description": "Keep a simulator beside the chat while building, running, or debugging iOS and Android apps. Stream devices, read native and Metro logs, analyze CPU and React profiles with TraceSift, render interactive CPU, memory, and FPS recordings, and control apps with Mobile Dev tools.",
"description": "Keep a simulator beside the chat while building, running, or debugging iOS and Android apps. Stream devices, read native and Metro logs, analyze CPU and React profiles with TraceSift, render interactive CPU, memory, and FPS recordings, map your app's screens and navigation with App Flow, and control apps with Mobile Dev tools.",
"author": {
"name": "Callstack",
"email": "hello@callstack.com"
Expand Down Expand Up @@ -75,7 +75,7 @@
"interface": {
"displayName": "Mobile Dev",
"shortDescription": "Devices, logs, and performance",
"longDescription": "Keep an iOS simulator or Android device beside your chat while building, running, or debugging Expo, React Native, SwiftUI, and other mobile apps. Monitor native CPU, memory, and device-wide Display FPS, analyze local CPU and React profiles with TraceSift cards, render interactive performance recordings in chat, read native and Metro logs, and inspect and control apps with Mobile Dev tools.",
"longDescription": "Keep an iOS simulator or Android device beside your chat while building, running, or debugging Expo, React Native, SwiftUI, and other mobile apps. Monitor native CPU, memory, and device-wide Display FPS, analyze local CPU and React profiles with TraceSift cards, render interactive performance recordings in chat, read native and Metro logs, map your app's screens and navigation with App Flow, and inspect and control apps with Mobile Dev tools.",
"developerName": "Callstack",
"websiteURL": "https://github.com/callstackincubator/mobile-dev",
"supportURL": "https://github.com/callstackincubator/mobile-dev/blob/main/SUPPORT.md",
Expand Down
2 changes: 1 addition & 1 deletion apps/cursor/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mobile-dev",
"description": "Stream iOS and Android devices into the chat while building, running, or debugging mobile apps. Read native and Metro logs, inspect and control apps, and record CPU, memory, and FPS. Apple Silicon development preview.",
"description": "Stream iOS and Android devices into the chat while building, running, or debugging mobile apps. Read native and Metro logs, inspect and control apps, map your app's screens and navigation with App Flow, and record CPU, memory, and FPS. Apple Silicon development preview.",
"author": {
"name": "Callstack",
"email": "hello@callstack.com"
Expand Down
19 changes: 19 additions & 0 deletions docs/mcp-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,25 @@
| `mobile_read_display_fps` | Read FPS intervals and connection status |
| `mobile_read_performance_frames` | Read Android jank/pacing statistics and page through exact display frames |
| `mobile_display_fps_close` | Stop FPS collection and release the tracing connection |
| `mobile_appflow_start` | Start a non-blocking structure build or screen sweep; Adaptive (the default) tries Runtime → Deep Link → verified replay without AI, while `ai` continues unresolved screens with interactive exploration. Legacy Fast, Auto and Thorough modes remain accepted. |
| `mobile_appflow_status` | Read current or persisted App Flow status |
| `mobile_appflow_result` | Read the current or persisted screen graph |
| `mobile_appflow_events` | Poll buffered progress and manual-recording events past a sequence cursor (app only) |
| `mobile_appflow_pause` | Pause a running sweep at a safe boundary (app only) |
| `mobile_appflow_cancel` | Cancel a run and any parked agent decision |
| `mobile_appflow_launch_app` | Launch the selected project without starting a sweep (app only) |
| `mobile_appflow_resolve_prompt` | Resolve a human-action gate after the user acts (app only) |
| `mobile_appflow_projects` | List the project folders App Flow can open (app only) |
| `mobile_appflow_choose_project` | Select a listed project or open the system folder picker (app only) |
| `mobile_appflow_manual_start` | Start recording a path to one screen (app only) |
| `mobile_appflow_manual_act` | Perform and record one manual path action (app only) |
| `mobile_appflow_manual_stop` | Save the active manual path recording (app only) |
| `mobile_appflow_manual_cancel` | Discard the active manual path recording (app only) |
| `mobile_appflow_manual_replay` | Replay a saved path to one screen (app only) |
| `mobile_appflow_runtime_replay` | Navigate to one screen through the running app's navigator, no recording needed (app only) |
| `mobile_appflow_next_decision` | Long-poll for the next active-agent sweep decision (model only) |
| `mobile_appflow_submit_decision` | Submit one role-valid JSON decision and wait briefly for the next (model only) |
| `mobile_appflow_screenshot` | Read an authorized App Flow PNG (app only) |

The plugin servers for Codex, Claude and Cursor add the pinned agent-device runtime's commands as `device_*` tools with compact, validated schemas, including `device_open`, `device_snapshot`, `device_screenshot`, `device_press`, `device_fill`, `device_type`, `device_scroll`, `device_wait`, `device_find`, `device_get`, `device_is`, `device_close`, and debugging tools. The agent reads screens and sends input with them; `device_screenshot` also returns the saved image. Their annotations let hosts run reads, device input and app control without asking, as with the panel's tools, while installs, scripts, app-defined events, file outputs, the clipboard and development servers still ask (see [Architecture](architecture.md#runtime)). Their input schemas describe each command; `logs` and `perf` are left out for Mobile Dev's own tools. The agent-device skill explains the control loop and ships the runtime's own workflow guide.

Expand Down
Loading
Loading