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
FlagShortDefaultDescription
--format-ftextOutput 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
FlagShortDefaultDescription
--thread-t(all)Filter by thread ID
--function(none)Filter by function name (substring match)
--limit-l1000Maximum number of events to return
--offset-o0Number 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-ftextOutput format (text, json, line, or chrome-trace)

timeline

Show multi-thread interleaved timeline with call depth visualization.

ada query @latest timeline [options]
FlagShortDefaultDescription
--thread-t(none)Filter by thread ID
--function(none)Filter by function name (substring match)
--limit-l10000Maximum 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-fdtrace-flowindentOutput format (dtrace-flowindent, json, or line)

reverse

Reverse-trace matched functions newest-to-oldest (rr-style).

ada query @latest reverse <function_pattern> [options]
FlagShortDefaultDescription
--thread-t(none)Filter by thread ID
--limit-l1000Maximum 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-valuestrueInclude register values (x0-x7) — enabled by default for reverse
--format-ftextOutput format (text, json, or line)

functions

List all traced functions with their IDs.

ada query @latest functions
ada query @latest functions --format json
FlagShortDefaultDescription
--format-ftextOutput format (text or json)

threads

List all traced threads.

ada query @latest threads
ada query @latest threads --format json
FlagShortDefaultDescription
--format-ftextOutput 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
FlagShortDefaultDescription
--limit-l1000Maximum number of results
--format-ftextOutput 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
FlagShortDefaultDescription
--format-ftextOutput format (text or json)

capabilities

Show available query capabilities and tool requirements.

ada query @latest capabilities
FlagShortDefaultDescription
--format-ftextOutput 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
FlagShortDefaultDescription
--format-ftextOutput format (text or json)

transcribe words

Get word-level timestamps for a time range.

ada query @latest transcribe words [options]
FlagShortDefaultDescription
--since(none)Start time in seconds
--until(none)End time in seconds
--format-ftextOutput 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
FlagShortDefaultDescription
--offset-o0Number of segments to skip
--limit-l20Maximum 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-ftextOutput 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
FlagShortDefaultDescription
--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
--every1Extract every Nth frame in range mode (default: all frames)
--output-o(none)Output file path (single mode) or directory (range mode)
--format-ftextOutput 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
FlagShortDefaultDescription
--format-ftextOutput format (text or json)

Output Formats

Most subcommands support --format (-f):

  • text (default) — human-readable output
  • json — structured output for programmatic use
  • line — one entry per line (events and calls only)

This is how the /analyze skill consumes trace data.