chloejsnpm i chloejs

Docs

Settings and credentials

Two different things, kept apart, and four places where each one beats the last.


Settings are in settings.json, in source control, and they are what is true for anyone who installs this. Every default and its one line of explanation lives in the schema the code reads, so a setting cannot drift from the code, and a value that is not a valid choice is refused at startup rather than quietly ignored. The generated list of every one of them is here.

Your own settings go in settings.local.json, which is not in source control and is mode 600. Paths on that machine and every credential go here, apart from a channel's token. Setting chloe up is filling in this one file:

{
  "model": { "via": "claude", "key": "" },
  "node": "/home/you/.local/node24/bin",
  "app": { "send_email_to": "you@example.com" },
  "resend": { "api_key": "re_..." }
}

A credential, or anything naming a person, goes in a section named for the service it belongs to. The one exception is a channel: its token is an environment variable like TELEGRAM_BOT_TOKEN, kept in .env beside the repo, or credentials in the channel's own file.

Four places, and each one beats the one before:

the schema            the default, and the documentation
settings.json         in source control
settings.local.json   one machine only, mode 600
an environment variable

The environment winning is for a one-off run, MODEL_VIA=gateway npm run evals, and for the tests. It is not somewhere to keep a setting.

settings.json lists every setting at its default, so the file itself tells you what there is to set. The schema is still what the code reads, so if the two ever disagree the schema wins and the file is the stale one.