Connect
CLI
chronos init and the chronos cloud commands: sign-in, the files they write, settings and errors.
SoonThese pages describe Chronos Cloud, which opens from the waitlist. Running Chronos yourself? Self-host docs
Install
curl -fsSL https://github.com/Abhishekxdg/chronosdb/releases/latest/download/install.sh | shchronos --versionThe script picks the build for your OS and CPU, checks its SHA-256 against the release’s SHA256SUMS, and installs it for your user, never as root. CHRONOS_INSTALL_DIR=<folder> installs elsewhere, CHRONOS_VERSION=v0.3.2 picks a release, and CHRONOS_VERIFY=1 also checks the build’s cosign signature. Linux builds are static, so they run on any distribution.
chronos init
Run it in a project folder. It connects the folder to a Chronos project, so every agent opened there reaches the same database.
cd myappchronos init # --no-open: print the sign-in address, don't open the browser- Signs in, the first time: it prints a code and opens chronos.2090.tech/device (
openon macOS,xdg-openon Linux; elsewhere, open it yourself). Approve the code there, signed in. The API key it gets is kept in~/.config/chronos/cloud.toml, readable only by you. - Finds or makes the project. A folder with
.chronos/project.jsonis linked already. Otherwise it looks for a project with the same git remote (origin, credentials stripped), so a clone or a teammate gets the same database, else makes one named after the folder. - Writes the project’s files (below), merging into what is there and never replacing it.
Running it again changes nothing that is already right (files already up to date).
Files it writes
| File | What | Commit it? |
|---|---|---|
.chronos/project.json | {"project_id", "name"}: the link, no secrets | yes: teammates and CI reach the same database |
.mcp.json | the chronos server in mcpServers, with the project in its address; other servers are kept | yes |
.env | DATABASE_URL=… for the app, pointing at main; the line is replaced or added, other lines kept. A new .env is readable only by you | no |
.gitignore | adds .env, unless it is ignored already | yes |
CLAUDE.md, and AGENTS.md if present | a block between <!-- chronos:begin --> and <!-- chronos:end -->: change schema and data in a world, test against it, show the diff, then merge. A second run replaces only the block | yes |
chronos cloud
| Command | Does |
|---|---|
chronos cloud login | signs in again, or as someone else (the device code, approved on the site) |
chronos cloud logout | revokes this machine’s API key and forgets it |
chronos cloud list | your org’s projects and their databases |
chronos cloud usage | this folder’s project: disk, worlds, data out and awake time, against the plan |
chronos cloud production on|off | production: agents’ worlds wait for a person to merge them into main. Off: agents merge their own, under their policy |
usage and production act on the folder’s project, from .chronos/project.json.
Settings
| Setting | Meaning |
|---|---|
CHRONOS_CLOUD_API | the API’s address, instead of https://chronos.2090.tech |
~/.config/chronos/cloud.toml | api_key, and the api address it came from ($XDG_CONFIG_HOME/chronos/cloud.toml where that is set) |
SSL_CERT_FILE | CA certificates for the API’s TLS, where the system’s bundle isn’t in /etc/ssl |
Errors
| Message | Do |
|---|---|
not signed in to Chronos Cloud, or the API key was revoked: run chronos cloud login | sign in again |
the sign-in code expired before it was entered: run the command again | codes last 15 minutes; run it again and approve sooner |
your plan's limit is reached (...) | the plan’s projects are all in use: delete one you no longer need |
can't reach the Chronos Cloud API at ... | check the network, and CHRONOS_CLOUD_API if set |
.chronos/project.json names project prj_..., which isn't one of your org's | sign in as a member of that project’s org, or remove the file to make a new project |