Skip to content

Global flags

Flags every krites command accepts

These four are registered on the root command, so they are accepted by every subcommand — 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
--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.

--output json — which commands honour it

--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 studio, launch, and the framework commands (init, config, update, doctor, changelog, docs, mcp, version)

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 four flags above — there is no KRITES_OUTPUT or KRITES_DEBUG.

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.