ada capture — Start a Capture Session
The ada capture command starts a new capture session, launching your app with full tracing enabled.
Usage
ada capture start <binary_or_app_path> [options] [-- <args...>]
ada capture stop [--session-id <id>]
capture start flags
| Flag | Default | Description |
|---|---|---|
--no-screen | (off) | Disable screen recording (enabled by default) |
--no-voice | (off) | Disable voice recording (enabled by default) |
--pre-roll-ms | 0 | Detail pre-roll in ms (flight recorder) |
--post-roll-ms | 0 | Detail post-roll in ms (flight recorder) |
--with-detail | (off) | Enable detail lane capture (register values) without voice recording |
capture stop flags
| Flag | Default | Description |
|---|---|---|
--session-id | (latest running) | Session ID to stop |
What It Does
- Launches the target with dynamic instrumentation attached (Frida-based)
- Records up to three tracks (configurable):
- Screen:
screen.mp4 - Voice:
voice.wav - Function traces:
trace/(ATF trace data)
- Screen:
- Writes a single session bundle directory you can later query with
ada query
Session Output
By default, sessions are created under ~/.ada/sessions/, and the session directory is the bundle you pass to ada query:
~/.ada/sessions/<session_id>/
├── session.json # Session metadata (status, timestamps, target info)
├── manifest.json # Bundle manifest (entry point for queries)
├── trace/ # ATF trace data
├── screen.mp4 # Screen recording (optional)
└── voice.wav # Voice recording (optional)
Target Path
<binary_or_app_path> can be either:
- An executable path (for CLI tools, test binaries, etc.)
- A macOS
.appbundle path (ReadyCheck will resolve the internal executable automatically)
Notes
- Capture stops automatically when the target exits, or when you press Ctrl+C.
- If you see an error about
libfrida_agent.dylibnot being found, setADA_AGENT_RPATH_SEARCH_PATHSto the directory containing it (the plugin installs it under itslib/directory).