# Agent Skill

> Technical reference for the Dailybot Agent Skill — the cross-agent skill pack that gives any AI coding CLI native access to the Dailybot API. Install, filesystem layout, authentication, sub-skill reference, hooks, and troubleshooting.

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

---

## Dailybot Agent Skill

The Dailybot Agent Skill is a single cross-agent skill pack that installs into every major AI coding CLI with one command. Once installed, your agent has the same verbs a human teammate has — report progress, complete check-ins, send an email, kudos a colleague, post on Slack or Teams with interactive buttons, submit a form, trigger a workflow, or announce its own health. Every sub-skill maps 1:1 to a public Dailybot API endpoint. This page is the technical reference; for the plain-English pitch, read [/skills/agent-skill](/skills/agent-skill).

> **Two commands and your agent is a teammate** — Install the CLI baseline, then add the skill to your project's `.agents/skills/`. Everything else on this page is reference material for what happens after those two commands.

### Install

Prerequisites: `dailybot-cli >= 3.8.0` (Python >= 3.10) as a baseline — it covers the entire surface, including the authoring commands (check-ins/forms create + config, report channels), interactive chat buttons, and workflow triggers. The `agent-skill` router installs the CLI on first use from `https://cli.dailybot.com/install.sh`, verified against a SHA-256 checksum. The current skill pack release is `DailybotHQ/agent-skill` `3.11.0`.

#### Recommended — any AI CLI

Install the CLI baseline, then add the skill to your project:

```bash
curl -fsSL https://cli.dailybot.com/install.sh | bash
npx skills add DailybotHQ/agent-skill
```

#### Claude Code · Cursor · OpenAI Codex CLI · Gemini CLI

npm-based agents read `.agents/skills/` directly. One install is enough:

```bash
npx skills add DailybotHQ/agent-skill
```

#### GitHub Copilot · Cline · Windsurf

Any harness that reads `.agents/skills/` works. Clone the skill into place:

```bash
git clone https://github.com/DailybotHQ/agent-skill \
  .agents/skills/dailybot-agent
```

#### Manual

```bash
git clone https://github.com/DailybotHQ/agent-skill
cd agent-skill && ./setup.sh
```

> Set `DAILYBOT_AUTO_YES=1` in CI to skip the first-use CLI-install consent prompt so unattended runs never hang.

### Filesystem layout

Once installed, the skill lives inside your project's `.agents/skills/dailybot-agent/`. Per-repo policy and identity live under `.dailybot/`. Every file is plain text — no binaries, no bundled Node modules. Installing is a copy operation; uninstalling is `rm -rf .agents/skills/dailybot-agent/`.

```
<repo>/
├── .agents/
│   ├── skills/
│   │   └── dailybot-agent/
│   │       ├── SKILL.md          # top-level router
│   │       ├── report/SKILL.md
│   │       ├── checkin/SKILL.md
│   │       ├── chat/SKILL.md
│   │       ├── kudos/SKILL.md
│   │       ├── forms/SKILL.md
│   │       ├── teams/SKILL.md
│   │       ├── health/SKILL.md
│   │       ├── email/SKILL.md
│   │       ├── ask/SKILL.md
│   │       ├── messages/SKILL.md
│   │       ├── workflow/SKILL.md
│   │       ├── channels/SKILL.md
│   │       ├── conversation/SKILL.md
│   │       └── env/SKILL.md
│   └── settings.json             # optional harness hooks (Claude Code)
├── .cursor/
│   └── hooks.json                # optional harness hooks (Cursor)
├── .claude → .agents             # symlink for legacy Claude Code paths
└── .dailybot/
    ├── profile.json              # per-repo identity + policy (commit)
    └── disabled                  # opt-out flag (commit or keep local)
```

### Authentication

The skill is a thin wrapper over the `dailybot` CLI. Auth is inherited from whichever credential the CLI resolves first — both credentials have identical scopes (parity is a written guarantee, no scoped-down surprises in CI).

| Source | Setup | Use case |
| --- | --- | --- |
| `dailybot login` | Interactive email OTP | Developer laptops, ad-hoc runs |
| `DAILYBOT_API_KEY` | Environment variable | CI, unattended agents, headless runners |

Precedence: `DAILYBOT_API_KEY` wins when both are set. Verify the resolved credential with:

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

Full details: [Authentication](/developers/authentication).

### Sub-skill reference

The pack exposes fourteen capabilities, one per public Dailybot verb. Each is a thin wrapper over the corresponding `dailybot` CLI command — so anything you can do with the skill you can also do with the CLI directly.

| Sub-skill | CLI command | Auth | Purpose |
| --- | --- | --- | --- |
| `report` | `dailybot agent update` | agent-scoped | Post a 1–3 sentence standup update |
| `checkin` | `dailybot checkin …` | user-scoped | List / complete pending check-ins; authoring |
| `chat` | `dailybot chat send / update` | user or org key | Send + edit bot messages on Slack/Teams/Discord/Google Chat — threads, send-as-user, interactive buttons |
| `kudos` | `dailybot kudos give` | user-scoped | Recognize a teammate or a whole team |
| `forms` | `dailybot form …` | user-scoped | Full response lifecycle + form authoring |
| `teams` | `dailybot team get / list` | user-scoped | Resolve team names to UUIDs, list members |
| `health` | `dailybot agent health` | agent-scoped | Announce online/offline, deliver pending inbox |
| `email` | `dailybot agent email send` | agent-scoped | Send an email to a confirmed recipient |
| `env` | `dailybot env …` | local | Per-repo API key overrides via `.dailybot/env.json` (CLI >= 3.7.0) |
| `ask` | `dailybot ask` | user-scoped | One-shot or session Q&A with the Dailybot AI assistant |
| `messages` | `dailybot agent message list / claim` | agent-scoped | Poll and claim pending team instructions |
| `workflow` | `dailybot workflow list / trigger` | user-scoped | List and trigger `api_trigger` workflows, with optional JSON payloads |
| `channels` | `dailybot channels list` | user-scoped | List chat channels to target reports and messages |
| `conversation` | `dailybot conversation open` | user-scoped | Open (or reuse) a group DM with the bot and post to it |

#### `report` — progress updates

Wraps `dailybot agent update`. Sends a standup-style update as the agent, crediting the running human as co-author whenever a session token is present. Rules: 1–3 sentences, WHAT + WHY, English only — never file paths, commit hashes, or branch names.

```bash
dailybot agent update "Shipped the pricing refresh — Advanced is now the recommended tier." \
  --name "Cursor agent" \
  --metadata '{"model":"composer-2.5"}'
```

#### `checkin` — standups + authoring

```bash
dailybot checkin list          # pending today
dailybot checkin show <uuid>   # config + questions
dailybot checkin complete <uuid>
dailybot checkin history <uuid>
```

Authoring commands (included in the `3.8.0` baseline): `dailybot checkin create`, `dailybot checkin edit`, `dailybot checkin reset`.

#### `chat` — cross-platform bot messages

Same command surface for Slack, Microsoft Teams, Discord, and Google Chat — the connected platform is resolved server-side, so the skill never has to know which chat vendor your team uses.

```bash
dailybot chat send -c <channel-id> -m "Text goes here"
dailybot chat send -u ana@co.com -m "Heads up: build broke" --ephemeral
dailybot chat update <message_uuid> -m "Edited text"
```

Messages support report-style threads, ephemeral delivery, send-as-user identity (Slack, admin-only), and up to 25 buttons per message — from link buttons to interactive buttons that POST to a `callback_url`, open a Dailybot form (`callback_form`), run a ChatOps command (`callback_command`), prompt the Dailybot AI (`callback_prompt`), or trigger an `api_trigger` workflow (`callback_workflow`). A button can also open a modal (`modal_body`) and forward the collected answers to its callback.

```bash
dailybot chat send -c C0123 -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"
```

Full button contract, modal composer, and callback auth: [Messaging API — send message](/developers/api/messaging#send-message).

#### `kudos` — recognition

```bash
dailybot kudos give --to @teammate --message "Good review on #199"
dailybot kudos give --team Engineering --message "Shipped the release form v9"
```

#### `forms` — response lifecycle + authoring

```bash
dailybot form list                                # forms visible to you
dailybot form get <uuid> --json                   # full payload (questions + states)
dailybot form submit <uuid> --content '{...}'     # create a response
dailybot form transition <uuid> <rid> qa          # advance workflow state
dailybot form response get <uuid> <rid> --json    # read a response
```

Authoring commands (included in the `3.8.0` baseline): `dailybot form create`, `dailybot form update`, `dailybot form delete`. See the [Forms API reference](/developers/api/forms) for the underlying HTTP surface.

#### `teams` — resolve names to UUIDs

```bash
dailybot team list
dailybot team get Engineering       # case-insensitive
dailybot team get <uuid>
```

Other sub-skills call `teams` internally when they need to translate a human-readable team name — you rarely invoke it directly.

#### `health` — heartbeat + inbox

A successful health check delivers any pending messages back to the agent, so long-running agents poll for team instructions with the same call that keeps them visible in the standup.

```bash
dailybot agent health --ok --message "All good"
dailybot agent health --fail --message "DB unreachable"
dailybot agent health --status --name "Claude Code"
```

#### `email` — send an email

Consent-gated: the recipient must be pre-confirmed in the agent profile. Bounces come back as agent messages so the skill can react.

```bash
dailybot agent email send \
  --to hello@customer.com \
  --subject "Weekly summary" \
  --body "..."
```


#### `env` — per-repo API key overrides

Requires CLI >= 3.7.0. Manage an opt-in, gitignored `.dailybot/env.json` so one repo can use live, local, or staging credentials without touching global config or env vars.

```bash
dailybot env add --profile local --api-key dbk_...
dailybot env use local
dailybot env show
```

#### `ask` — query the Dailybot AI

One-shot questions or follow-ups in the same session, from a script or a pipe.

```bash
dailybot ask "What are my pending check-ins?"
dailybot ask "What forms do I have?" --json
```

#### `messages` — pending team instructions

Poll the agent inbox for instructions humans left for the agent, then claim them.

```bash
dailybot agent message list --name "<agent_name>" --pending
```

#### `workflow` — list + trigger automations

Only workflows with the `api_trigger` event type ("When triggered via API or button") can be fired this way — the same workflows an interactive chat button can trigger.

```bash
dailybot workflow list --filter api_trigger --json
dailybot workflow trigger <workflow_uuid> --json
```

#### `channels` — resolve chat channels

List the channels the bot can post to — used to target `chat send`, report channels, and form/check-in reports.

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

#### `conversation` — group DMs with the bot

Open (or reuse) a group DM that includes the bot and the listed users, then post to it.

```bash
dailybot conversation open -u "Jane Doe" -u bob@example.com
```

### Repo-level `.dailybot/profile.json`

Committed identity + policy for the repo. No secrets — credentials always live in `DAILYBOT_API_KEY` or the local session token.

```json
{
  "agent_name": "cursor-agent",
  "default_metadata": {
    "model": "composer-2.5"
  },
  "report": {
    "min_interval_minutes": 20,
    "nudge": {
      "unreported_commits_threshold": 3,
      "sustained_work_minutes": 45
    }
  }
}
```

- `agent_name` — signs every report so a mixed-agent repo (Cursor + Claude Code) is distinguishable in the standup feed.
- `default_metadata` — merged into every `dailybot agent update` payload.
- `report.min_interval_minutes` — skill-side rate-limit for reports. The server also enforces a 30-minute floor.
- `report.nudge.*` — thresholds for the local hook reminders (unreported commits, sustained work).

> **Warning:** Never add a `key` field to `profile.json`. API keys belong in `DAILYBOT_API_KEY`, never in a file that gets committed.

### Silencing per repo

Drop an empty file to disable every skill hook + telemetry for one repo. Commit it if you want the silence to travel with the repo; keep it local if it's just for you.

```bash
touch .dailybot/disabled
```

### Session hooks

The skill ships deterministic harness hooks in two flavors — both are best-effort, local-only, and never call the network:

| Harness | Hook file | Events |
| --- | --- | --- |
| Claude Code | `.agents/settings.json` | `SessionStart`, `PostToolUse`, `Stop` |
| Cursor | `.cursor/hooks.json` | `sessionStart`, `afterFileEdit`, `stop` |

On session start the hook injects any login nudge + a summary of unreported work from prior sessions. On file edits it records signals into a local per-repo ledger. On stop it decides — from the ledger — whether to inject a "consider sending a Dailybot report" reminder into the agent's context. If the reminder fires and the agent has nothing to say, `dailybot hook dismiss` snoozes it for an hour.

Full spec: [hooks.md in the skill repo](https://github.com/DailybotHQ/agent-skill/blob/main/report/hooks.md).

### Troubleshooting

> **Warning:** The `agent-skill` version pins the CLI, not the other way around. If a sub-skill starts failing after a CLI upgrade, upgrade the skill first (`npx skills add DailybotHQ/agent-skill@latest`). The pack baseline is CLI `>= 3.8.0` — older CLIs miss the interactive-button, workflow, and authoring surfaces.

- **`dailybot: command not found`** — the router fell back to a manual install. Run `curl -fsSL https://cli.dailybot.com/install.sh | bash` and re-run the sub-skill.
- **`401 Unauthorized` from any sub-skill** — no auth was resolved. Run `dailybot login`, or export `DAILYBOT_API_KEY` before invoking the agent.
- **Sub-skill doesn't appear in the harness** — `.agents/skills/dailybot-agent/` isn't on disk. Re-run the install command.
- **`Rate limit`** — you exceeded the per-agent report interval. Lower the frequency, or bump `report.min_interval_minutes` in `.dailybot/profile.json`.

### Versioning

| Component | Minimum | Recommended |
| --- | --- | --- |
| `dailybot-cli` (baseline) | `3.8.0` | latest |
| `DailybotHQ/agent-skill` | `3.11.0` | latest |

The `agent-skill` router publishes a manifest for each release; the CLI bootstrap pins itself against that manifest so a stale skill pack cannot pull in an unexpected CLI.

### Go deeper

- [Marketing overview at /skills/agent-skill](/skills/agent-skill) — sub-skill catalog, features, FAQ
- [Skill repo on GitHub](https://github.com/DailybotHQ/agent-skill)
- [Dailybot CLI reference](/developers/cli)
- [Authentication](/developers/authentication)
- [API reference](/developers/api)

## See it in action

Automation recipes built on the send-message API, the CLI, and the agent skill — each with copy-paste curl, CLI, and agent-prompt examples.

- [Chat automation & interactive messages](/solutions/chat-automation)
- [CI/CD approval gates](/solutions/cicd-approval-gates)
- [Workflow triggers from chat](/solutions/chat-workflow-triggers)
- [Incident intake with modals](/solutions/incident-intake-modals)
- [Forms lifecycle automation](/solutions/forms-lifecycle-automation)
- [Check-ins automation](/solutions/check-ins-automation)
- [Agent fleet reporting](/solutions/agent-fleet-reporting)
- [All automation recipes](/solutions)

---

## 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)
- [CI/CD recipes](/developers/cli-ci-cd)
- [Configuration](/developers/cli-configuration)
- [Troubleshooting](/developers/cli-troubleshooting)

**Agent Skill**

- [Overview](/developers/agent-skill) (this page)
- [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)

