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 variableThe 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.