# Command reference

> Every Dailybot CLI command, argument, and flag.

Language: en
Canonical: https://www.dailybot.com/developers/cli-reference
Markdown: send header `Accept: text/markdown` on any URL to receive Markdown instead of HTML.
Last Updated: 2026-07-02

---

## CLI Command Reference

Every Dailybot CLI command, argument, and flag.

Interactive page with tables, code samples, and links: [/developers/cli-reference](/developers/cli-reference).

## CLI command reference

Every Dailybot CLI command, with its arguments, flags, and copy-paste examples.

| Command | Summary |
|---------|---------|
| `dailybot login` | Authenticate the CLI with your Dailybot user account (OTP) |
| `dailybot status` | Show pending check-ins, or probe the active credential |
| `dailybot agent update` | Post an activity or progress report as the agent |
| `dailybot channels list` | List available report channels |
| `dailybot chat send` | Send a bot message to users, channels, or teams |
| `dailybot chat update` | Edit a previously-sent bot message |
| `dailybot form create` | dailybot form create |
| `dailybot form config` | dailybot form config |
| `dailybot form archive` | dailybot form archive |
| `dailybot checkin create` | dailybot checkin create |
| `dailybot checkin show` | dailybot checkin show |
| `dailybot checkin config` | dailybot checkin config |
| `dailybot checkin archive` | dailybot checkin archive |
| `dailybot ask` | Ask the Dailybot AI assistant — one-shot or interactive |
| `dailybot hook` | Lifecycle hooks for the agent harness — local ledger only, no network |
| `dailybot upgrade` | Upgrade the CLI in place using the detected install method |
| `dailybot uninstall` | Uninstall the CLI using the detected install method |
| `dailybot version` | Print CLI version and optionally check PyPI for a newer release |

### `dailybot login`

**Authenticate the CLI with your Dailybot user account (OTP)**

Sends a one-time code to your email, verifies it, and stores a session token in `~/.config/dailybot/credentials.json`. If the account belongs to multiple organizations, prompts you to pick one (or use `--org=<UUID>`).

- **Auth:** No authentication required

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `--email` | string | No | Email to send the code to. |
| `--code` | string | No | OTP code to skip the interactive prompt. |
| `--org` | UUID | No | Preselect an organization when the user belongs to more than one. |

#### Examples

```bash
dailybot login
```

```bash
dailybot login --email you@company.com
```

#### See also

- `dailybot logout`
- `dailybot status`

### `dailybot status`

**Show pending check-ins, or probe the active credential**

Default: lists pending check-ins for the authenticated user (calls `GET /v1/cli/status/`). With `--auth`: probes both the session and API-key paths and prints which credential wins — replaces the old (never-shipped) `dailybot me` idea.

- **Auth:** API key or CLI Bearer

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `--auth` | boolean | No | Credential probe mode: show which credential (session or API key) is active. |
| `--json` | boolean | No | Machine-readable output. |

#### Examples

```bash
dailybot status              # pending check-ins
```

```bash
dailybot status --auth       # which credential is active
```

```bash
dailybot status --auth --json
```

#### See also

- `dailybot login`
- `dailybot checkin list`

### `dailybot agent update`

**Post an activity or progress report as the agent**

Sends a progress report to Dailybot from the current session. Shows in team dashboards and chat. Since CLI v1.11.0 the response includes a `url` — the CLI prints a direct link to where the report landed. Non-blocking: never halts the primary work if reporting fails.

- **Auth:** API key or CLI Bearer

#### Arguments

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `summary` | string | Yes | The standup-style message describing what was done and why it matters. |

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `--milestone` | boolean | No | Mark this report as a plan-completion milestone. |
| `--metadata` | json | No | JSON blob with model, plan, or other structured metadata. |
| `--json-data` | json | No | Structured completed/in_progress/blockers deliverables. |

#### Examples

```bash
dailybot agent update "Shipped the notification preferences UI — users can now control which alerts they receive."
```

```bash
dailybot agent update --milestone "Finished the auth refactor." --metadata '{"model":"claude-opus-4.7"}'
```

#### See also

- `dailybot agent health`
- `dailybot agent messages`

### `dailybot channels list`

**List available report channels**

Lists chat channels for report_channels on forms and check-ins. Maps to GET /v1/report-channels/.

- **Auth:** API key or CLI Bearer

#### Examples

```bash
dailybot channels list --json
```

```bash
dailybot channels list --name general
```

### `dailybot chat send`

**Send a bot message to users, channels, or teams**

Wraps `POST /v1/send-message/`. Supports thread replies (up to 10 per parent, one level deep), bot impersonation via `platform_settings` (Slack only), ephemeral messages, image URLs, and interactive/link buttons. Delivers on Slack, Microsoft Teams, Discord, and Google Chat.

- **Auth:** API key or CLI Bearer

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-u/--user` | string (repeat) | No | Target user by UUID, email, or external id. |
| `-c/--channel` | string (repeat) | No | Target channel id. |
| `-t/--team` | string (repeat) | No | Target team UUID (all members). |
| `-m/--text` | string | No | Message body. |
| `--thread` | string | No | Parent timestamp/id to reply in an existing thread. |
| `--thread-message` | string (repeat, max 10) | No | Reply text to post under the same parent in one call (max 10). |
| `--bot-name` | string | No | Custom bot username for this message (Slack only, max 80 chars). |
| `--bot-icon-url` | string | No | HTTPS avatar URL (Slack only). Mutually exclusive with `--bot-icon-emoji`. |
| `--bot-icon-emoji` | string | No | Emoji avatar, e.g. `:rocket:` (Slack only). |
| `--ephemeral` | boolean | No | Slack-only: post visible only to `--user` targets in the specified channel. |
| `-i/--image-url` | string | No | HTTPS image URL to attach. |
| `--link-button` | label|url (repeat) | No | Attach a link button. |
| `--button` | label|value (repeat) | No | Attach an interactive button (returns `value` via webhook). |
| `--approve-button` | Label=value | No | Approval-styled interactive button (`"Label=value"`, equals-sign separator). Pair with `--callback-url`. Requires CLI >= 3.8.0. |
| `--reject-button` | Label=value | No | Rejection-styled interactive button (`"Label=value"`). Pair with `--callback-url`. Requires CLI >= 3.8.0. |
| `--callback-url` | url | No | Callback URL for `--approve-button`/`--reject-button` clicks — Dailybot POSTs the click payload to it (`callback_url` on both buttons). |
| `--callback-bearer` | token | No | Optional bearer token for `--callback-url` — each button gets `callback_auth: {"type": "bearer", "token": ...}`. Only valid with `--callback-url`. |
| `--workflow-button` | Label=<workflow-uuid> (repeat) | No | Button that triggers a workflow on click (`callback_workflow`). Only workflows with the `api_trigger` trigger type are eligible. Requires CLI >= 3.8.0. |
| `--buttons` | JSON array | No | Raw button JSON pass-through — the full button contract (link, interactive, `callback_url`, `callback_form`, `callback_command`, `callback_prompt`, `callback_workflow`, `modal_body`, `response`). Max 25 buttons, exactly one callback type per button, `callback_auth` only with `callback_url`. |
| `--skip-time-off` | boolean | No | Skip users flagged as OOO / on-leave. |
| `-d/--metadata` | json (repeat) | No | Free-form metadata merged with repo-level `default_metadata`. |
| `--payload-json` | json | No | Raw JSON body override (advanced). Merges repo metadata if missing. |
| `-p/--profile` | string | No | Named agent profile for auth resolution. |
| `--json` | boolean | No | Output machine-readable JSON. |

#### Examples

```bash
dailybot chat send -c C0123456789 -m "Deploy 4.12.0 shipped ✅"
```

```bash
dailybot chat send -c C0123456789 -m "Release status" --thread-message "Frontend OK" --thread-message "Backend OK"
```

```bash
dailybot chat send -c C0123456789 -m "Rollout complete" --bot-name "Release Bot" --bot-icon-emoji ":rocket:"
```

```bash
dailybot chat send -c C0123456789 -u <user-uuid> --ephemeral -m "You are on-call in 10 minutes"
```

```bash
dailybot chat send -c C0123456789 -m "Release v2.5 ready for approval" --approve-button "Approve=approved" --reject-button "Reject=rejected" --callback-url "https://ci.example.com/hooks/release" --callback-bearer "$CI_TOKEN"
```

```bash
dailybot chat send -c C0123456789 -m "Nightly cleanup available" --workflow-button "Run cleanup=<workflow-uuid>"
```

#### See also

- `dailybot chat update`
- `dailybot agent update`

### `dailybot chat update`

**Edit a previously-sent bot message**

Re-issues `POST /v1/send-message/` with the same `bot_message_id`, editing the original within the 72h edit window. Also works on thread reply IDs returned by `dailybot chat send`. Identity flags (`--bot-name`, `--bot-icon-*`) are ignored on edit — the platform keeps the original bot appearance.

- **Auth:** API key or CLI Bearer

#### Arguments

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `bot_message_id` | string | Yes | The ID returned by `dailybot chat send` (or a client-provided one). |

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-c/--channel` | string (repeat) | No | Target channel id (same as the original message). |
| `-u/--user` | string (repeat) | No | Target user (same as original). |
| `-m/--text` | string | No | New message body. |
| `-i/--image-url` | string | No | New image URL. |
| `--payload-json` | json | No | Raw JSON body override. |
| `-p/--profile` | string | No | Named agent profile. |
| `--json` | boolean | No | Output machine-readable JSON. |

#### Examples

```bash
dailybot chat update release-4.12.0 -c C0123456789 -m "Deploy 4.12.0 — rollback in progress ⚠️"
```

```bash
dailybot chat update "$db/thread-1" -c C0123456789 -m "Frontend: build failed, investigating"
```

#### See also

- `dailybot chat send`

### `dailybot form create`

**dailybot form create**

dailybot form create — see API reference.

- **Auth:** API key or CLI Bearer

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-n, --name` | string | Yes | — |
| `--questions-file` | path | No | — |
| `--interactive` | flag | No | — |
| `--report-channel` | uuid | No | — |
| `--ai-short-question` | flag | No | — |

#### Examples

```bash
dailybot form create --json
```

#### See also

- `/developers/api/forms#create-form-create`

### `dailybot form config`

**dailybot form config**

Update form configuration (PATCH /v1/forms/{uuid}/config/). Partial update; unknown fields rejected.

- **Auth:** API key or CLI Bearer

#### Examples

```bash
dailybot form config --json
```

### `dailybot form archive`

**dailybot form archive**

Archive a form (DELETE /v1/forms/{uuid}/archive/).

- **Auth:** API key or CLI Bearer

#### Examples

```bash
dailybot form archive --json
```

### `dailybot checkin create`

**dailybot checkin create**

Create a check-in with schedule, questions, and participants (POST /v1/checkins/create/). Requires CLI ≥1.17.0.

- **Auth:** API key or CLI Bearer

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-n, --name` | string | Yes | — |
| `--user` | uuid/email | No | — |
| `--team` | uuid/name | No | — |
| `--questions-file` | path | No | — |
| `--time` | HH:MM | No | — |
| `--days` | int list | No | — |

#### Examples

```bash
dailybot checkin create --json
```

### `dailybot checkin show`

**dailybot checkin show**

Canonical check-in detail (GET /v1/checkins/{uuid}/detail/).

- **Auth:** API key or CLI Bearer

#### Examples

```bash
dailybot checkin show --json
```

### `dailybot checkin config`

**dailybot checkin config**

Update check-in configuration (PATCH /v1/checkins/{uuid}/config/).

- **Auth:** API key or CLI Bearer

#### Examples

```bash
dailybot checkin config --json
```

### `dailybot checkin archive`

**dailybot checkin archive**

Archive a check-in.

- **Auth:** API key or CLI Bearer

#### Examples

```bash
dailybot checkin archive --json
```

### `dailybot ask`

**Ask the Dailybot AI assistant — one-shot or interactive**

Runs a chat completion against `POST /v1/cli/chat/completions/`. With a message argument (or stdin pipe): one-shot. Without arguments in a TTY: launches a full-screen Textual TUI (added in v1.14.0) with slash commands `/help`, `/clear`, `/status`, `/checkins`, `/report`, `/exit`.

- **Auth:** CLI Bearer only

#### Arguments

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `message` | string | No | Optional message. When omitted in a TTY, opens the interactive TUI. |

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-s/--session-id` | string | No | Continue a previous session id. |
| `--json` | boolean | No | One-shot JSON output. |

#### Examples

```bash
dailybot ask "Summarize my open standup responses"
```

```bash
echo "Explain the last agent report" | dailybot ask --json
```

```bash
dailybot ask   # opens the full-screen TUI
```

#### See also

- `dailybot status`
- `dailybot checkin list`

### `dailybot hook`

**Lifecycle hooks for the agent harness — local ledger only, no network**

Deterministic hooks the agent harness calls at session-start, post-commit, on file-edit activity, on stop, and on user-driven dismissal. All hooks read and write only the local ledger under `~/.config/dailybot/ledger/`. Added in v1.12.0. See the [Agent Hooks doc](https://github.com/DailybotHQ/cli/blob/main/docs/AGENT_HOOKS.md) for full wiring.

- **Auth:** No authentication required

#### Arguments

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `subcommand` | session-start | post-commit | activity | stop | dismiss | Yes | Which hook to invoke. |

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-f/--format` | claude | cursor | generic | No | Output format for the harness (session-start / stop). |
| `-m/--minutes` | int | No | For `hook dismiss`: snooze duration in minutes (default 60). |

#### Examples

```bash
dailybot hook session-start -f cursor
```

```bash
dailybot hook dismiss -m 120
```

#### See also

- `dailybot agent update`

### `dailybot upgrade`

**Upgrade the CLI in place using the detected install method**

Detects how the CLI was installed (pipx / pip / uv / Homebrew / installer / prebuilt binary) and upgrades using the matching tool. Verifies the new version after install. Added in v1.4.0.

- **Auth:** No authentication required

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `--dry-run` | boolean | No | Print what would happen without changing anything. |
| `--force` | boolean | No | Skip the interactive confirmation. |

#### Examples

```bash
dailybot upgrade
```

```bash
dailybot upgrade --dry-run
```

#### See also

- `dailybot version`
- `dailybot uninstall`

### `dailybot uninstall`

**Uninstall the CLI using the detected install method**

Removes the CLI cleanly, matching the install source (pipx / pip / uv / Homebrew / installer). By default keeps `~/.config/dailybot/` (sessions, ledger, agent profiles); pass `--purge` to remove it as well. Added in v1.6.0.

- **Auth:** No authentication required

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-y/--yes` | boolean | No | Skip the confirmation prompt. |
| `--purge` | boolean | No | Also delete `~/.config/dailybot/` (sessions, ledger, profiles). |
| `--dry-run` | boolean | No | Print what would happen without changing anything. |

#### Examples

```bash
dailybot uninstall
```

```bash
dailybot uninstall --purge -y
```

#### See also

- `dailybot upgrade`

### `dailybot version`

**Print CLI version and optionally check PyPI for a newer release**

Rich panel with version, Python runtime, and a GitHub release link. With `--check`, queries PyPI to compare against the latest release.

- **Auth:** No authentication required

#### Flags

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `-c/--check` | boolean | No | Query PyPI and compare. |

#### Examples

```bash
dailybot version
```

```bash
dailybot version --check
```

#### See also

- `dailybot upgrade`

---

## Developer portal navigation

**Getting Started**

- [Overview](/developers)
- [Quick start](/developers/getting-started)
- [Authentication](/developers/authentication)

**API Reference**

- [API Overview](/developers/api)
- [Users](/developers/api/users)
- [Organization](/developers/api/organization)
- [Teams](/developers/api/teams)
- [Invitations](/developers/api/invitations)
- [Check-ins](/developers/api/check-ins)
- [Forms](/developers/api/forms)
- [Report channels](/developers/api/report-channels)
- [Templates](/developers/api/templates)
- [Kudos](/developers/api/kudos)
- [Mood tracking](/developers/api/mood)
- [Important dates](/developers/api/important-dates)
- [Messaging](/developers/api/messaging)
- [Automations](/developers/api/workflows)
- [Webhooks](/developers/api/webhooks)
- [Commands platform](/developers/api/commands-platform)
- [Agents](/developers/api/agents)
- [OAuth2](/developers/api/oauth2)
- [Integrations](/developers/api/integrations)
- [CLI](/developers/api/cli)

**API guides**

- [Errors & Status Codes](/developers/errors)
- [Rate Limits](/developers/rate-limits)
- [Conventions](/developers/conventions)
- [API Changelog](/developers/api-changelog)
- [Recipes](/developers/recipes)

**Developer Features**

- [Custom commands](/developers/custom-commands)
- [Serverless commands](/developers/serverless)
- [Webhooks & events](/developers/webhooks)
- [Automation API trigger](/developers/workflow-trigger)
- [Activity API](/developers/activity-api)

**CLI**

- [Overview](/developers/cli)
- [Authentication](/developers/cli-authentication)
- [Command reference](/developers/cli-reference) (this page)
- [CI/CD recipes](/developers/cli-ci-cd)
- [Configuration](/developers/cli-configuration)
- [Troubleshooting](/developers/cli-troubleshooting)

**Agent Skill**

- [Overview](/developers/agent-skill)
- [Skills catalog](/skills)

---

## Site navigation

**Product:**
- [Home](/)
- [Product](/product)
- [Pricing](/pricing)
- [Enterprise](/enterprise)
- [Integrations](/integrations)
- [Templates](/templates)

**Resources:**
- [Blog](/blog)
- [Academy](/academy)
- [Changelog](/changelog)
- [Help Center](/help)
- [Developers](/developers)
- [Agents](/agents)

**Company:**
- [About](/about)
- [Careers](/careers)
- [Security](/security)
- [Contact Sales](/demo)

**Connect:**
- [LinkedIn](https://www.linkedin.com/company/dailybot/)
- [X/Twitter](https://twitter.com/dailybot)
- [GitHub](https://github.com/Dailybot-Inc)
- [YouTube](https://www.youtube.com/channel/UC3uM9V52vwX7e3vQpCc4qvA)

