Skip to content

Environment variables

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.

VariableDefaultMeaning
CHRONOS_HTTPonSet to off to disable the local web dashboard and gateway (loopback only). Any other value keeps it on.
CHRONOS_HTTP_PORT4173Port for the dashboard/gateway. Adapters also read it to find the gateway for the ask_user bridge.
CHRONOS_AGENTclaude-codeDaemon-wide default agent adapter. The per-session picker (or chronos session new --agent) overrides it.
CHRONOS_DOCS_DIRunsetOverrides 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_BROWSERunsetForces the browser channel for the builtin Playwright browser MCP. By default Chronos uses the system Chrome when installed, else Playwright’s Chromium.
CHRONOS_PLAYWRIGHT_CMDunsetPins 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_PORTset by ChronosSet 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.

Panel client (daemon → enterprise panel)

Section titled “Panel client (daemon → enterprise panel)”

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.

VariableDefaultMeaning
CHRONOS_PANEL_URLunsetBase 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_PUBKEYHex-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_BEARERunsetOptional bearer token the daemon presents to the panel API.
CHRONOS_IDENTITYemptyActor identity (e.g. alice@corp) used for the catalog cascade and the panel role lookup when configuring via env.
CHRONOS_TEAMSemptyComma-separated team list for the global→team catalog cascade when configuring via env.
VariableDefaultMeaning
CHRONOS_DEV_CATALOGunsetSet 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_BASEunsetRuns 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_SERVERbundled assetOverrides the path of the ask_user MCP bridge script the adapters hand to the agent CLI.
VariableDefaultMeaning
DATABASE_URLunsetPostgres connection string (Neon or any managed Postgres). When set, it wins over PANEL_DB.
PANEL_DBpanel.dbSQLite database path, used when DATABASE_URL is not set.
PORT / PANEL_PORT8787Listen port. A managed host (e.g. Railway) injects PORT, which wins; locally PANEL_PORT then the default.
PANEL_SIGNING_KEYgeneratedEd25519 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_PASSWORDunsetFirst-admin bootstrap: creates — or resets the password of — the initial admin account on every boot. This is the operator’s recovery path.
PANEL_ADMIN_IDENTITYadmin@corpIdentity for the bootstrap admin account.
PANEL_SEED_PASSWORDunsetDev/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_URLunsetOpt-in: runs the panel’s Postgres test suite against this database. It drops the panel tables — throwaway databases only.
VariableDefaultMeaning
CHRONOS_REPOrenaiss-ai/aluxion-chronosGitHub repo slug the installer downloads releases from.
CHRONOS_PREFIX~/.localInstall prefix — binaries land in <prefix>/bin.