Global flags

These flags are accepted on every subcommand (they are declared global = true on the root parser).

Output and verbosity

FlagEffect
-v, -vv, -vvvIncrease log verbosity.
-q, --quietSuppress non-error output.
--color <auto|always|never>Control ANSI color in terminal output.
--jsonEmit a structured JSON document instead of human text.
--ndjsonEmit newline-delimited JSON (streaming).
--sarifEmit SARIF 2.1.0 (GitHub code scanning, etc.).
--progress <auto|always|never>Progress-bar rendering. auto renders only on a TTY.

Execution control

FlagEffect
--config <PATH>Load a .disrobe.toml config file. Without it, disrobe walks up from the CWD to discover one. See project configuration.
--in-placeRewrite the input file in place.
--forceOverwrite existing outputs without prompting.
-j, --threads <N>Worker thread-pool size (defaults to detected CPU count).
--no-cacheBypass the .dr envelope cache. Output is identical with or without this; it is a performance toggle, not a correctness one.
--dry-runReport what would happen without writing any output.

Debug tracing

VariableEffect
DISROBE_DEBUG=<area>Stream every offset, size, candidate, and classification a pass walked to stderr. Takes all or a comma-separated area list.
DISROBE_DEBUG_FORMAT=jsonEmit one JSON object per debug event instead of human text.

Debug tracing is sample-sensitive. Only values emitted through explicitly guarded key/value events pass through the masking guard. After trimming surrounding whitespace, it masks a value only when the value is at least 20 characters, contains only ASCII letters, digits, _, -, +, /, or =, and mixes at least two of uppercase letters, lowercase letters, and digits. When the guard triggers, it preserves the first four trimmed characters and emits …<redacted N chars>, using a single Unicode ellipsis and the full trimmed character count. Ordinary messages, unguarded values, labels, and byte previews do not pass through this guard and may expose sample-derived data in either format. Review debug logs before sharing them.

This does not change scanner output: scan and frisk report full matched values by default. Pass --redact to replace detected secrets with stable truncated SHA-256 tokens in shareable output. The same setting can be stored as output.redact = true in .disrobe.toml.

Metadata sidecar flags

The metadata bundle flags are also global. They are accepted everywhere, but only the commands listed in which commands write a bundle act on them; every other subcommand ignores them, and disrobe auto rejects them with DR-CLI-0843. See metadata sidecar and provenance for the complete pack/category model. Summary:

FlagEffect
--llmCompatibility alias for --metadata-pack-4 (full bundle, auth-gated categories included).
--metadata-pack-1Pack-1: ast + disasm + symbols + strings.
--metadata-pack-2Pack-2: pack-1 + cfg + types + imports + provenance.
--metadata-pack-3Pack-3: pack-2 + dfg + signatures + constants + roundtrip + sourcemap + manifest.
--metadata-pack-4Pack-4: pack-3 + confidence + opcode-coverage + pii-map + decryption-keys. Only decryption-keys needs --i-have-authorization.
--ast, --disasm, --cfg, --dfgAdd individual AST / disassembly / CFG / DFG categories.
--symbols, --strings, --types, --importsAdd symbols / strings / recovered-types / imports categories.
--constants, --signatures, --provenanceAdd constants / function-signatures / provenance categories.
--roundtrip-verdict, --source-map, --manifest-catAdd roundtrip-verdict / source-map / manifest categories.
--confidence, --opcode-coverage, --pii-mapAdd confidence-scores / opcode-coverage / pii-map categories.
--decryption-keysAdd decryption-keys category (requires --i-have-authorization).
--metadata-include <cats> / --metadata-exclude <cats>Toggle comma-separated categories after applying a pack preset.
--metadata-out <PATH>Override the bundle output path (default: <stem>.disrobe.llm.json next to the primary output).
--metadata-format <json|jsonl|cbor|msgpack>Bundle serialization format (default json).
--llm-briefsAlso emit AGENTS.md and SKILL.md reconstruction briefs next to the bundle.
--i-have-authorizationUnlocks auth-gated metadata categories and recovery paths that expose this gate.

The authorization gate

--i-have-authorization is the explicit assertion used by legally sensitive paths that expose an authorization gate. The decryption-keys metadata category refuses without it (DR-CLI-0420); language-specific commercial-protector paths document their own gate behavior. Passing the flag is your assertion that you are authorized to analyze the input under the statutory framing in LEGAL.md.