Configuration
Precedence
cox uses one configuration vocabulary: every CLI flag maps to a configuration key. Values resolve in this order; later sources win:
- Built-in defaults
~/.cox/config.toml.cox/config.tomlat the Git rootCOX_<SECTION>_<KEY>environment variables- Command-line flags
cox config show --sources prints the effective value and where it came from.
Environment files
.env and .env.local supply otherwise-unset process environment variables before configuration loads. They are not another configuration layer and never replace variables already set by the shell or CI.
Permission and sandbox defaults
The sandbox is on by default. Default mode is workspace-write; .git and .cox stay read-only even in that mode. Other modes:
- read-only — no writes under workspace roots
- workspace-write — writes inside the workspace except
.gitand.cox - danger-full-access — no sandbox (explicit opt-in only)
Permission rules can be imported from an existing .claude/settings.json setup; cox-native configuration stays in .cox/config.toml.
Model routing
Jobs are grouped into cheap, code, and think tiers. Background tasks such as compaction and summaries stay in the cheap tier. The think tier requires explicit user confirmation—cox does not silently escalate a request to a more expensive model.