Skip to content

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, submit a form, 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.

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 >= 1.10.0 as a baseline —>= 1.17.2 is required for the authoring surface (check-ins/forms create + config, report channels). Theagent-skill router installs the CLI on first use fromhttps://cli.dailybot.com/install.sh, verified against a SHA-256 checksum. The skill pack itself is pinned atDailybotHQ/agent-skill >= 1.8.3.

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

Info

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/.

text
<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
│   │       ├── conversation/SKILL.md
│   │       ├── ask/SKILL.md
│   │       ├── messages/SKILL.md
│   │       ├── workflow/SKILL.md
│   │       └── channels/SKILL.md
│   └── settings.json             # optional harness hooks (Claude Code)
├── .cursor → .agents             # symlink (Cursor reads hooks.json here)
├── .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).

SourceSetupUse case
dailybot loginInteractive email OTPDeveloper laptops, ad-hoc runs
DAILYBOT_API_KEYEnvironment variableCI, 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.

Sub-skill reference

The pack exposes thirteen sub-skills, 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-skillCLI commandAuthPurpose
reportdailybot agent updateagent-scopedPost a 1–3 sentence standup update
checkindailybot checkin …user-scopedList / complete pending check-ins; authoring
chatdailybot chat send / updateuser or org keySend + edit bot messages on Slack/Teams/Discord/Google Chat
kudosdailybot kudos giveuser-scopedRecognize a teammate or a whole team
formsdailybot form …user-scopedFull response lifecycle + form authoring
teamsdailybot team get / listuser-scopedResolve team names to UUIDs, list members
healthdailybot agent healthagent-scopedAnnounce online/offline, deliver pending inbox
emaildailybot agent email sendagent-scopedSend an email to a confirmed recipient
conversationdailybot conversation openuser-scopedOpen or resume a group DM thread
askdailybot askuser-scopedQuery the Dailybot AI assistant (one-shot or interactive)
messagesdailybot agent message listagent-scopedRetrieve pending team messages for the agent
workflowdailybot workflow list / getuser-scopedList and inspect configured workflows
channelsdailybot channels listuser-scopedDiscover available report channels

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 (CLI >= 1.17.2): 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 --to @user "Text goes here"
dailybot chat send --channel "#team" --text "Text goes here"
dailybot chat update <message_uuid> --text "Edited text"

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 (CLI >= 1.17.2): dailybot form create,dailybot form update, dailybot form delete. See the Forms API reference 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 [email protected] \
  --subject "Weekly summary" \
  --body "..."

conversation — group DMs

Opens or resumes a group DM thread on the connected chat platform. If the same participant set already has an open thread, the CLI reuses it instead of creating a duplicate.

bash
dailybot conversation open -u @jane @bob -m "Deploy report attached"
dailybot conversation open -u @jane              # reuses existing group if same people

ask — AI assistant

One-shot or interactive chat with the Dailybot AI. Supports structured JSON output for programmatic consumption, or a full-screen TUI when invoked without arguments.

bash
dailybot ask "Summarize this week's standup responses"
dailybot ask --json                               # structured output
dailybot ask                                      # interactive TUI mode

messages — agent inbox

Retrieves pending messages addressed to the agent by team members. Useful for long-running agents that need to poll for human instructions between health checks.

bash
dailybot agent message list --name "Claude Code" --pending

workflow — inspect workflows

Read-only listing and inspection of configured Dailybot workflows. Agents use this to understand what automations are already running before proposing changes.

bash
dailybot workflow list
dailybot workflow get <uuid> --json

channels — report channels

Lists the report channels (Slack, Teams, Discord, Google Chat) visible to the authenticated user. Agents call this to discover where to deliver reports and messages.

bash
dailybot channels list --json

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.

.dailybot/profile.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. The full lifecycle is: session-start → activity → post-commit → stop.

HarnessHook fileEvents
Claude Code.agents/settings.jsonSessionStart, PostToolUse, post-commit, Stop
Cursor.cursor/hooks.jsonsessionStart, afterFileEdit, post-commit, 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 post-commit it fires a stronger commit-level signal for the report nudge heuristic. 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.

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). CLI >= 1.17.2 is required for the check-ins/forms authoring surface.
  • 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

ComponentMinimumRecommended
dailybot-cli (baseline)1.10.0>=1.17.2
DailybotHQ/agent-skill1.8.3latest

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