Skip to content

Global flags

Flags every krites command accepts

These are registered on the root command, so every subcommand accepts them: krites cull --output json and krites config get --debug both work.

Flag Type Default What it does
--config string, repeatable /etc/krites/config.yaml, ~/.krites/config.yaml Config files to read, lowest precedence first
--debug bool false Force debug-level log output regardless of log.level
--ci bool false Declare that krites is running in CI
--output string text Output format: text or json
--accessible bool false Run wizards as line prompts rather than a full-screen form; also set by GTB_ACCESSIBLE=true
--help / -h bool — Print help for the command and exit

There is no single-letter shorthand for --output. -o json is rejected by the flag parser with unknown shorthand flag; write --output json or --output=json.

Which commands honour --output json

--output json is accepted everywhere but only changes the output of commands that have a machine-readable result to emit:

Honours --output json Ignores it
ingest, cull, dedup, verdict, straighten, crop, develop, remove, review, export, xmp write, reset frame, reset shoot, reset exports, and the framework's init, config, doctor, changelog, update and version studio, launch, docs and mcp, which serve or browse rather than return a result

Where it is honoured, the JSON is indented and written to standard output; the human-readable rendering is suppressed entirely. Log lines still go to standard error, so krites cull --output json > verdicts.json yields clean JSON.

The shape of each command's JSON is documented on that command's own reference page.

--config and where configuration is read from

--config replaces the default search list rather than adding to it. Passing it once gives krites exactly one config file; pass it repeatedly to layer several, with later files taking precedence over earlier ones.

The defaults are /etc/krites/config.yaml (machine-wide) then ~/.krites/config.yaml (yours). A shoot's own <shoot>/.krites/config.yaml is not in this list. It is a separate, narrower cascade that only carries cull.profile.* overrides, and is picked up from the shoot directory rather than from a flag. See Configuration.

Environment variables instead of flags

Every configuration key maps to an environment variable: <section>.<key> becomes KRITES_<SECTION>_<KEY>, uppercased with dots turned into underscores. face.enabled is KRITES_FACE_ENABLED; remove.timeout is KRITES_REMOVE_TIMEOUT.

This mapping is for configuration keys, not for the flags above: there is no KRITES_OUTPUT or KRITES_DEBUG. --accessible is the one flag with an environment variable, GTB_ACCESSIBLE.

API keys are the exception: the AI review provider's key is held in the OS keychain and is not readable from an environment variable or the config file.

--debug versus log.level

--debug is a one-shot override for a single invocation. log.level in the config file (debug, info, warn, error; default info) is the persistent setting. --debug wins over log.level when both are set.