Skip to content

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"
  }
}
KeyDescription
nameReport author name (falls back to the authenticated user).
profileNamed agent profile to activate when running commands in this repo (from ~/.config/dailybot/agents.json).
default_metadataMerged into every agent update and chat send payload (custom fields like repo, team, component).
varsFree-form key/value store consumed by agent skills (e.g. custom form skills). Never put credentials here.
reportTeam-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.

VariableDescription
DAILYBOT_API_KEYMachine credential for headless use. Set it in your CI secrets manager and the CLI picks it up automatically.
DAILYBOT_CLI_TOKENSession-style bearer token (advanced). Overrides the token stored in credentials.json.
DAILYBOT_API_URLOverrides the API base (default https://api.dailybot.com). Useful for staging / self-hosted.
DAILYBOT_CONFIG_DIROverrides 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.