ada query — Query Session Data
The ada query command lets you query captured session data — traces, transcripts, screenshots, and metadata.
ada query <bundle> <subcommand> [options]
Session Selectors
The <bundle> argument accepts:
@latest— the most recent session- Session ID — e.g.
session_2026_01_24_14_56_19_a1b2c3 - Bundle path — a direct path to a session directory or
.adabundle
Subcommands
summary
Show session summary statistics — event counts, time range, and modules.
ada query @latest summary
ada query @latest summary --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format (text or json) |
events
List trace events with optional filters.
ada query @latest events --limit 100
ada query @latest events --thread 0 --function "viewDidLoad" --limit 50
ada query @latest events --since-ns 1000000000 --until-ns 2000000000 --limit 100 --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--thread | -t | (all) | Filter by thread ID |
--function | (none) | Filter by function name (substring match) | |
--limit | -l | 1000 | Maximum number of events to return |
--offset | -o | 0 | Number of events to skip |
--since-ns | (none) | Filter events with timestamp ≥ value (nanoseconds) | |
--until-ns | (none) | Filter events with timestamp ≤ value (nanoseconds) | |
--with-values | (off) | Include register values (x0-x7) from ATF detail lane | |
--format | -f | text | Output format (text, json, line, or chrome-trace) |
timeline
Show multi-thread interleaved timeline with call depth visualization.
ada query @latest timeline [options]
| Flag | Short | Default | Description |
|---|---|---|---|
--thread | -t | (none) | Filter by thread ID |
--function | (none) | Filter by function name (substring match) | |
--limit | -l | 10000 | Maximum number of events to return |
--since-ns | (none) | Filter events with timestamp ≥ value (nanoseconds) | |
--until-ns | (none) | Filter events with timestamp ≤ value (nanoseconds) | |
--with-values | (off) | Include register values (x0-x7) from ATF detail lane | |
--format | -f | dtrace-flowindent | Output format (dtrace-flowindent, json, or line) |
reverse
Reverse-trace matched functions newest-to-oldest (rr-style).
ada query @latest reverse <function_pattern> [options]
| Flag | Short | Default | Description |
|---|---|---|---|
--thread | -t | (none) | Filter by thread ID |
--limit | -l | 1000 | Maximum number of matching events to return |
--since-ns | (none) | Filter events with timestamp ≥ value (nanoseconds) | |
--until-ns | (none) | Filter events with timestamp ≤ value (nanoseconds) | |
--with-values | true | Include register values (x0-x7) — enabled by default for reverse | |
--format | -f | text | Output format (text, json, or line) |
functions
List all traced functions with their IDs.
ada query @latest functions
ada query @latest functions --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format (text or json) |
threads
List all traced threads.
ada query @latest threads
ada query @latest threads --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format (text or json) |
calls
Find calls to a specific function (substring match).
ada query @latest calls "viewDidLoad"
ada query @latest calls "viewDidLoad" --limit 50 --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--limit | -l | 1000 | Maximum number of results |
--format | -f | text | Output format (text, json, line, or chrome-trace) |
time-info
Show session time bounds and duration.
ada query @latest time-info
ada query @latest time-info --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format (text or json) |
capabilities
Show available query capabilities and tool requirements.
ada query @latest capabilities
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format (text or json) |
transcribe info
Get voice transcript metadata without loading the full content.
ada query @latest transcribe info
ada query @latest transcribe info --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format (text or json) |
transcribe words
Get word-level timestamps for a time range.
ada query @latest transcribe words [options]
| Flag | Short | Default | Description |
|---|---|---|---|
--since | (none) | Start time in seconds | |
--until | (none) | End time in seconds | |
--format | -f | text | Output format (text or json) |
transcribe segments
Get transcript segments with pagination. The first query runs whisper-cli and caches results to transcript.json inside the session bundle. Subsequent queries reuse the cache.
ada query @latest transcribe segments --limit 100 --format json
ada query @latest transcribe segments --since 10 --until 30
| Flag | Short | Default | Description |
|---|---|---|---|
--offset | -o | 0 | Number of segments to skip |
--limit | -l | 20 | Maximum number of segments to return |
--since | (none) | Filter segments starting at or after this time (seconds) | |
--until | (none) | Filter segments ending at or before this time (seconds) | |
--format | -f | text | Output format (text or json) |
screenshot
Extract a screenshot from the screen recording at a given timestamp.
ada query @latest screenshot --time 15.5 --output /tmp/screen.png
| Flag | Short | Default | Description |
|---|---|---|---|
--time | -t | (none) | Time in seconds to extract a single frame from |
--from | (none) | Start time in seconds for range extraction | |
--to | (none) | End time in seconds for range extraction | |
--every | 1 | Extract every Nth frame in range mode (default: all frames) | |
--output | -o | (none) | Output file path (single mode) or directory (range mode) |
--format | -f | text | Output format (text or json) |
video-info
Show screen recording video info (fps, frame count, codec).
ada query @latest video-info
ada query @latest video-info --format json
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format (text or json) |
Output Formats
Most subcommands support --format (-f):
text(default) — human-readable outputjson— structured output for programmatic useline— one entry per line (eventsandcallsonly)
This is how the /analyze skill consumes trace data.