Skip to content

Options

doubleagent has three subcommands: detect reports which agents left state in an input, timeline parses the transcripts into JSONL files under -o, and inventory merges the collectors' inventory output from a fleet into one CSV. The options below are every one each subcommand accepts, with the exit codes a script can test; the short table in the analyzer README is enough for a first run.

Synopsis

doubleagent detect INPUT [--json] [--files] [common options]
doubleagent timeline INPUT -o DIR [--include-thinking] [--agent NAME]...
                         [--since WHEN] [--until WHEN] [--keep-undated] [--match REGEX]... [-i]
                         [common options]
doubleagent inventory [-o FILE] INPUT...
doubleagent catalog [--agents]
doubleagent --version

Option reference

Option Subcommand Meaning
--json detect Print the machine-readable object described in output.md.
--files detect Also list every attributed file.
-o, --output DIR timeline Output directory, required.
-o, --output FILE inventory CSV to write. Default fleet-inventory.csv in the current directory.
--include-thinking timeline Emit thinking and reasoning blocks as thinking rows.
--agent NAME timeline Run only the parsers of this agent. Repeatable. An unknown name produces no rows.
--since WHEN timeline Keep rows at or after WHEN, the first millisecond of the period it names. Forms in filtering.md.
--until WHEN timeline Keep rows at or before WHEN, the last millisecond of the period it names. Same forms.
--keep-undated timeline With --since or --until, also keep rows that have no timestamp.
--match REGEX timeline Keep rows whose text matches this Python regular expression, with the paired tool call or result. Repeatable; a row matching any pattern is kept.
-i, --ignore-case timeline Make every --match case-insensitive.
--agents catalog Print each agent in the catalog with parser or detect only, instead of the catalog text.
--host NAME detect, timeline Host name to record. Overrides collection.json.
--user NAME detect, timeline User to record for every home whose user is empty.
--work-dir DIR detect, timeline Where to extract an archive. A cac-* directory is created inside it. Default: a cac-analyzer-* directory in the system temp directory. Either is removed afterwards unless --keep-extracted is given.
--keep-extracted detect, timeline Keep the extracted archive and print extracted to: <path> on stderr.

catalog prints the bundled catalog.txt verbatim.

Exit codes

Exit code Meaning
0 timeline wrote at least one row; detect found agent artifacts, or --json was given; inventory wrote at least one row; catalog, --version.
1 timeline produced no rows, including when every row was filtered out (the three files are still written), detect without --json found no agent artifacts, or inventory found no host or agent line (the CSV is written with its header only).
2 The input cannot be opened, printed as error: <path>: <reason> (see inputs.md), a file input is neither tar nor zip or cannot be extracted, a detect or timeline input is neither a regular file nor a directory, a --since or --until value is not an accepted form or --since is later than --until, a --match pattern is not a valid regular expression, an inventory input is a symlink, neither a regular file nor a directory, or cannot be read, or the command line is invalid.