Skip to content

CLI reference: agent report and agent inbox

Installation, authentication, and full flag reference for dailybot agent update and dailybot agent inbox—plus examples, exit behavior, and troubleshooting.

deep-dive Developer 7 min read

The Dailybot CLI is the simplest way for coding agents to participate in the same visibility layer as humans: standup-quality updates going out, and human instructions coming back. This reference focuses on two commands—dailybot agent update (send reports) and dailybot agent inbox (receive instructions)—plus installation, authentication, flags, examples, and troubleshooting.

Installation

Install the Dailybot CLI using the method documented for your platform (package manager or official installer). After installation, confirm the binary is on your PATH:

dailybot --version

Keep the CLI updated when your workspace adopts new agent features; older clients may lack flags your scripts assume.

Authentication

Interactive login

For laptops and developer machines:

dailybot login [email protected]
dailybot login [email protected] --code=123456

If you belong to multiple organizations, you may need to select one explicitly (for example with an org identifier) when prompted.

API key (automation)

For agents, CI, and remote environments, set:

export DAILYBOT_API_KEY="your-key"

You can also persist configuration with dailybot config where that matches your security model. Never commit keys; use your runner’s secret store.

Check auth

dailybot status --auth

If auth fails, inbox and update commands will error or return empty results—always verify this first.

dailybot agent update — send reports

Syntax overview

The report text is the primary positional argument (the “message” body). Wrapper scripts such as agent_scripts/dailybot-report.sh pass the same content as their first argument.

dailybot agent update "Your standup-style summary" --name "Agent Name"

Flags

FlagPurpose
(positional)Required summary message in standup style: what shipped, why it matters, blockers.
--nameScopes the report to a project or agent label your org recognizes.
--milestoneMarks the report as a milestone for leadership visibility.
--json-dataStructured JSON with arrays like completed, in_progress, and blockers (strings per item).
--metadataJSON context such as model, plan, branch, or repo—pass model from agents when required by your policy.
--co-authorsComma-separated emails; only when a human explicitly asked to credit collaborators.

The summary text is the message body: provide it as the first positional argument. Some tutorials label this a --message-style parameter; the shipped CLI uses the positional form (wrappers may expose an explicit flag).

Example invocations

Minimal report

dailybot agent update "Fixed timezone handling on the profile page — users without a set timezone no longer see errors." --name "Cursor agent"

Milestone plus structured data

dailybot agent update "Shipped the auth refactor — JWT validation is centralized across services." \
  --name "Claude Code" \
  --milestone \
  --json-data '{"completed":["JWT middleware","Token validation","Tests"],"in_progress":[],"blockers":[]}' \
  --metadata '{"model":"your-model-id","plan":"PLAN_auth_refactor"}'

Wrapper script (non-blocking, project name resolution)

bash agent_scripts/dailybot-report.sh "Implemented notification preferences — users control which alerts they receive." \
  --metadata '{"model":"your-model-id"}'

Reporter script behavior

The official dailybot-report.sh helper resolves DAILYBOT_PROJECT_NAME, auto-injects useful metadata, applies a short timeout, and is designed not to block the agent on failure. Treat it as the default in repos that already include it.

dailybot agent inbox — receive instructions

Humans queue context and tasks in Dailybot’s agent inbox. Agents pull those items so they can align with priorities without hunting through chat threads.

dailybot agent inbox --name "Agent Name"

Exact subcommands or filters may vary by CLI version; use dailybot agent inbox --help for the current surface. Conceptually you are listing pending human-to-agent messages scoped to the named agent identity.

Related messaging commands (when enabled for your workspace) may include listing or sending agent messages; prefer agent inbox when your workflow is inbox-first.

Exit codes and automation

  • Direct dailybot agent update — Non-zero exits usually mean auth failure, validation errors, or network issues. Retry with exponential backoff; avoid tight loops.
  • dailybot-report.sh — Designed to exit zero even when the API call fails, so agents never stall; check logs if you need hard failures in CI.

Parse stderr when debugging; it is the fastest path to malformed JSON or missing --name.

Troubleshooting

SymptomLikely cause
“Not authenticated”Run dailybot login or set DAILYBOT_API_KEY.
Reports missing in the feedWrong --name, wrong org, or permissions.
JSON rejectedInvalid --json-data string; validate quoting in shell scripts.
Empty inboxNo queued items, wrong agent label, or auth scoped to a different workspace.
TimeoutsTransient network; retry; for bulk jobs, rate-limit your calls.

Quality reminders

Good CLI usage matches Dailybot reporting rules: English messages, outcome-focused text, no file-path dumps, and metadata that helps managers filter signal. The CLI is the transport; discipline in the message is what makes the timeline useful.

FAQ

Which CLI command sends an agent progress report?
Use dailybot agent update with your summary as the main argument, plus optional flags such as --name, --milestone, --json-data, --metadata, and --co-authors when applicable.
How does an agent fetch queued human instructions?
Use dailybot agent inbox to read items people left for the agent through Dailybot’s agent inbox flow, typically scoped with --name to the agent identity.
How should I authenticate the CLI in CI or on a headless agent?
Prefer DAILYBOT_API_KEY for non-interactive environments; use dailybot login (email and verification code) for interactive setups, and verify with dailybot status --auth.