On this page
Use settings for ordinary preferences Locate or separate installation state How each directory is resolved Credentials and terminal behavior Collect a traceEnvironment essentials
Use directory overrides and existing provider credentials when needed.
Use settings for ordinary preferences
Choose models, permissions, output style, and context behavior in Settings. Environment variables are useful when a script, container, or separate installation needs a different directory or an existing credential.
Locate or separate installation state
Shell
clio-coder paths --json| Variable | Purpose |
|---|---|
CLIO_CODER_HOME |
Set a shared root for CLIO Coder's directories |
CLIO_CODER_CONFIG_DIR |
Override the configuration directory |
CLIO_CODER_DATA_DIR |
Override the data directory |
CLIO_CODER_STATE_DIR |
Override the state directory |
CLIO_CODER_CACHE_DIR |
Override the cache directory |
CLIO_CODER_BIN_DIR |
Choose where the installer puts the clio-coder launcher (default ~/.local/bin) |
CLIO_CODER_NODE_VERSION |
Choose the Node.js version the installer installs |
Individual directory overrides take precedence over the shared root. Separate state is useful for an isolated evaluation or a dedicated automation environment.
How each directory is resolved
CLIO Coder resolves the config, data, state, and cache directories one at a time. The first match wins:
| Order | Source | Example |
|---|---|---|
| 1 | The per-role variable | CLIO_CODER_CONFIG_DIR |
| 2 | The shared root | CLIO_CODER_HOME |
| 3 | Platform defaults | XDG_CONFIG_HOME on Linux, APPDATA or LOCALAPPDATA on Windows |
So you can keep everything under one root and still move only the cache elsewhere:
Shell
export CLIO_CODER_HOME="$HOME/clio-eval"
export CLIO_CODER_CACHE_DIR=/scratch/clio-cache
clio-coder paths --jsonclio-coder paths creates nothing, so it is a safe way to confirm a layout before the first run. Scripts should parse its --json output rather than repeat these rules. With CLIO_CODER_HOME set, the installer root defaults to $CLIO_CODER_HOME/install; CLIO_CODER_INSTALL_DIR overrides it.
An isolated root still reads other coding agents' user skills and prompts from your real home. Set CLIO_CODER_INTEROP_HOME=none to read none of them, or a path to read another home.
Credentials and terminal behavior
Supported providers can read their conventional credential variables, such as OPENAI_API_KEY, ANTHROPIC_API_KEY, or OPENROUTER_API_KEY, when that provider is selected. Prefer CLIO Coder's managed authentication flow for normal interactive setup, and keep secrets out of project settings and transcripts.
| Variable | Used for |
|---|---|
OPENAI_API_KEY |
OpenAI |
ANTHROPIC_API_KEY |
Anthropic |
OPENROUTER_API_KEY |
OpenRouter |
GEMINI_API_KEY |
Gemini |
AWS_* |
Bedrock credentials |
OLLAMA_API_KEY |
An Ollama target at https://ollama.com |
Google Vertex uses its application credentials. The managed alternative is clio-coder auth, with auth login and auth status per target.
HTTPS_PROXY, HTTP_PROXY, and their lowercase forms apply to model requests, discovery probes, sign-in refreshes, and web fetches. localhost and 127.0.0.1 always go direct; name any other local model server in NO_PROXY. clio-coder doctor shows the proxy in effect.
VISUAL and EDITOR select an external editor, with VISUAL taking precedence. Terminal variables such as TERM and COLORTERM describe the environment; they do not grant tool permissions.
Collect a trace
Debug toggles are off by default and turn on with 1. CLIO_CODER_TRACE_BOOT=1 turns on a boot-phase timing trace for a slow startup. The render trace takes a file path instead, and records timing but no conversation text:
Shell
CLIO_CODER_RENDER_TRACE="$PWD/render.jsonl" clio-coderSetting it to 1 writes a file named 1 in the working directory.
The full guide lists provider-specific inputs, behavior overrides, and diagnostic switches. Use it when preparing automation or collecting a trace; most installations need no environment variables.