Chronos is configured through a small set of environment variables. The daemon
(chronosd) takes no command-line arguments — its configuration is entirely env-driven.
Most installations need none of these: the defaults are chosen so that chronosd +
chronos login just work.
| Variable | Default | Meaning |
|---|
CHRONOS_HTTP | on | Set to off to disable the local web dashboard and gateway (loopback only). Any other value keeps it on. |
CHRONOS_HTTP_PORT | 4173 | Port for the dashboard/gateway. Adapters also read it to find the gateway for the ask_user bridge. |
CHRONOS_AGENT | claude-code | Daemon-wide default agent adapter. The per-session picker (or chronos session new --agent) overrides it. |
CHRONOS_DOCS_DIR | unset | Overrides the directory the documentation site is served from at /docs. Otherwise Chronos uses the repo’s apps/docs/dist when running from a checkout, then <data_dir>/docs for an installed binary. |
CHRONOS_PLAYWRIGHT_BROWSER | unset | Forces the browser channel for the builtin Playwright browser MCP. By default Chronos uses the system Chrome when installed, else Playwright’s Chromium. |
CHRONOS_PLAYWRIGHT_CMD | unset | Pins the Playwright MCP launcher command (whitespace-split) and disables auto-resolution of npx @playwright/mcp — for deployments that must not resolve it at runtime. When set, the operator owns all launcher flags. |
CHRONOS_PORT | set by Chronos | Set by the daemon, not by you. Each session’s run script receives its own free loopback port (range 4100–4999) so parallel sessions never collide. Read it in your script — see Workspace settings. |
The normal way to connect a daemon to the enterprise panel is chronos login, which
stores the credential in the OS keychain and pins the panel’s signing keys. These
variables exist for explicit, non-interactive configuration — when set, they take
precedence over a stored login.
| Variable | Default | Meaning |
|---|
CHRONOS_PANEL_URL | unset | Base URL of the enterprise panel. Setting it wires the governed runtime (signed catalog, credentials broker, RBAC) at startup. Absent, the daemon restores a stored chronos login — or runs ungoverned. |
CHRONOS_PANEL_PUBKEY | — | Hex-encoded Ed25519 public key the daemon pins to verify the panel’s signed catalog. Required when CHRONOS_PANEL_URL is set. The panel prints it at boot. |
CHRONOS_PANEL_BEARER | unset | Optional bearer token the daemon presents to the panel API. |
CHRONOS_IDENTITY | empty | Actor identity (e.g. alice@corp) used for the catalog cascade and the panel role lookup when configuring via env. |
CHRONOS_TEAMS | empty | Comma-separated team list for the global→team catalog cascade when configuring via env. |
| Variable | Default | Meaning |
|---|
CHRONOS_DEV_CATALOG | unset | Set to 1 to seed an in-process mock capability catalog (Pulse, Tempo, a retrievable skill) and the builtin MCPs, so the local dashboard can be exercised without a real panel. Never the production path. |
CHRONOS_BASE | unset | Runs an isolated daemon instance with its own data directory and IPC socket, so a second daemon can coexist with the default one — handy for testing a build side by side. The CLI honors it too when resolving the endpoint. |
CHRONOS_ASK_SERVER | bundled asset | Overrides the path of the ask_user MCP bridge script the adapters hand to the agent CLI. |
| Variable | Default | Meaning |
|---|
DATABASE_URL | unset | Postgres connection string (Neon or any managed Postgres). When set, it wins over PANEL_DB. |
PANEL_DB | panel.db | SQLite database path, used when DATABASE_URL is not set. |
PORT / PANEL_PORT | 8787 | Listen port. A managed host (e.g. Railway) injects PORT, which wins; locally PANEL_PORT then the default. |
PANEL_SIGNING_KEY | generated | Ed25519 private key (PKCS8 PEM) used to sign the catalog — from a KMS/secret in production. Absent, a key is generated on first boot and persisted. |
PANEL_ADMIN_PASSWORD | unset | First-admin bootstrap: creates — or resets the password of — the initial admin account on every boot. This is the operator’s recovery path. |
PANEL_ADMIN_IDENTITY | admin@corp | Identity for the bootstrap admin account. |
PANEL_SEED_PASSWORD | unset | Dev/demo only: gives the seeded demo accounts (alice@corp, bob@corp, admin@corp) this password. Without it the seed creates no sign-in-able users. |
TEST_DATABASE_URL | unset | Opt-in: runs the panel’s Postgres test suite against this database. It drops the panel tables — throwaway databases only. |
| Variable | Default | Meaning |
|---|
CHRONOS_REPO | renaiss-ai/aluxion-chronos | GitHub repo slug the installer downloads releases from. |
CHRONOS_PREFIX | ~/.local | Install prefix — binaries land in <prefix>/bin. |