Settings and variables
Under docker all of this lives in .env next to docker-compose.yml (the sample is .env.example). In the app the same settings are edited in the window and stored in config.json inside the clauder-data directory.
Don't look for the file if you use the app
Everything marked below as a variable has its own line in the app's settings. There is no need to open config.json by hand.
The required minimum
| Variable | What it is |
|---|---|
API_KEY | the access key — the only way in. openssl rand -hex 32. Shorter than 8 characters counts as switched off |
CLAUDE_HOME | the path to your ~/.claude on the host (mounted into the container for writing) |
Directories and ports
| Variable | What it is |
|---|---|
CLAUDE_DATA_DIR | the sessions directory inside the container |
CLAUDE_DATA_DIRS | several sources: windows=/data/claude-windows,wsl=/data/claude-wsl |
EXTRA_CLAUDE_HOME | the second profile — the WSL or Windows side |
WORKSPACE_ROOT | the working root; passed in at the same path as on the host |
EXTRA_WORKSPACE_ROOT | one more root — add it deliberately, everything mounted is available to the agent |
API_PORT | the api's port inside the container |
CLAUDER_DB | the path to the SQLite index |
The agent
| Variable | What it is |
|---|---|
AGENT_ENABLED | switches the chat off entirely: viewing remains |
AGENT_WORKSPACE_ROOTS | directories allowed as cwd |
AGENT_PERMISSION_MODE | permission mode: bypassPermissions, default, plan, acceptEdits |
AGENT_MODEL | the default model |
AGENT_FALLBACK_MODEL | what to fall back to when the main one is unavailable |
AGENT_SETTING_SOURCES | where the CLI takes its settings from |
AGENT_FILE_CHECKPOINTS | file rollback points |
AGENT_AUTO_TITLE | name a chat after its first message |
AGENT_ENTRYPOINT | what to start the CLI with |
AGENT_MAX_RUNS | the cap on simultaneous sessions |
AGENT_IDLE_TTL_MIN | minutes of idling before a session is closed |
CLAUDE_BIN | the path to the installed claude, if it isn't found by itself |
Notifications and the bot
| Variable | What it is |
|---|---|
VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY | your own Web Push keys (npx web-push generate-vapid-keys); without them the api creates its own |
VAPID_SUBJECT | a contact for the push service |
TELEGRAM_BOT_TOKEN | the bot token from @BotFather |
TELEGRAM_APP_URL | the address the bot puts into its "Open" buttons |
HOOK_TOKEN | the shared secret for receiving hook events; openssl rand -hex 32. Empty or the old change-me-hook-token placeholder disables hooks |
Watching files
| Variable | What it is |
|---|---|
CLAUDER_WATCH_POLL_MS | how often to poll a file's tail |
CLAUDER_WATCH_LAZY | don't watch what nobody is looking at |
CLAUDER_WATCH_LINGER_MS | how long to keep watching after the viewer leaves |
CLAUDER_WATCH_NETWORK | the mode for network mounts where events get lost |
Neighbours and the bridge
| Variable | What it is |
|---|---|
CLAUDER_PEER, CLAUDER_PEER_URL | a second Clauder next door |
CLAUDER_FOREIGN_ROOTS | foreign roots that are visible read-only |
CLAUDER_COMPANION_HOMES | 0 disables auto-discovery of the other WSL/Windows side |
HOST_BRIDGE_ENABLED, HOST_BRIDGE_SCRIPTS | the bridge to the host |
HOST_CLAUDE_BIN, HOST_CLAUDE_PERMISSION_MODE | what the bridge starts claude with on the other side, and how |
The rest
| Variable | What it is |
|---|---|
CLAUDER_SHELL | the shell for the terminal |
CLAUDER_WEB_PACK | the built web UI the server serves itself |
GH_TOKEN | a GitHub token for publishing releases from a chat — the agent can see it too, see Security |
The full list with comments is in .env.example in the repository; that file is the source of truth.