CLI Configuration · Developers
How the Dailybot CLI reads credentials and where its state lives.
The CLI keeps its state under a single directory in your home folder, reads credentials from environment variables or a session file, and honors a per-repo `.dailybot/profile.json` for shared team defaults. Everything below is the *public* configuration surface — internal file schemas may change; use the CLI commands to interact.
Per-user state directory
The CLI keeps everything under ~/.config/dailybot/ (or the path in $DAILYBOT_CONFIG_DIR if set — useful for sandboxed test runs). It stores your session credential in credentials.json, machine API key in config.json, agent profiles in agents.json, and the local hook ledger under ledger/. Files are machine-generated — do not hand-edit. To reset the session, run dailybot login again; the CLI re-authenticates and overwrites credentials.json.
Per-repo profile
A repo may commit .dailybot/profile.json to standardize the report author name, default metadata, custom variables, and team-wide report policy for every contributor. Never store credentials in the profile — the CLI will refuse a key field.
{
"name": "${GIT_USER}",
"profile": "release-bot",
"default_metadata": {
"repo": "${GIT_REPO}",
"team": "platform"
},
"vars": {
"custom_form_skills": ["access-request"]
},
"report": {
"min_interval_minutes": 30,
"nudge": "commit,activity"
}
}| Key | Description |
|---|---|
name | Report author name (falls back to the authenticated user). |
profile | Named agent profile to activate when running commands in this repo (from ~/.config/dailybot/agents.json). |
default_metadata | Merged into every agent update and chat send payload (custom fields like repo, team, component). |
vars | Free-form key/value store consumed by agent skills (e.g. custom form skills). Never put credentials here. |
report | Team-wide report policy: min_interval_minutes (rate-limits agent reports) and nudge (which signals trigger reminders — commit, activity, both, or none). |
Credential environment variables
The CLI honors four env vars — all optional, all documented.
| Variable | Description |
|---|---|
DAILYBOT_API_KEY | Machine credential for headless use. Set it in your CI secrets manager and the CLI picks it up automatically. |
DAILYBOT_CLI_TOKEN | Session-style bearer token (advanced). Overrides the token stored in credentials.json. |
DAILYBOT_API_URL | Overrides the API base (default https://api.dailybot.com). Useful for staging / self-hosted. |
DAILYBOT_CONFIG_DIR | Overrides the state directory (default ~/.config/dailybot). Handy for sandboxes and integration tests. |
Precedence when a call needs a credential: $DAILYBOT_API_KEY env → session in credentials.json (dailybot login) → config.json api_key. If a dailybot login session and $DAILYBOT_API_KEY are both present, the personal session wins — matches "if I ran dailybot login, I want to be me".
Opting out of local hooks
Some AI-agent harnesses install Dailybot reporting hooks that fire on file edits and stops. To silence them for a single repo, create a file at .dailybot/disabled. Commit it if you want the silence to travel with the repo; keep it local otherwise. The hooks themselves live in ~/.config/dailybot/ledger/ and never call the network — they only decide when to remind you.
Checking what credential is active
Run dailybot status --auth. The command probes both the session and the API key path (if present) and prints which one wins — so you always know whether the next call goes out as your user session or as a service key.