Skip to content
automation recipe

Give your agent fleet a pulse — and a report

Every agent that works headless can announce it's alive, post a plain-English progress update, and pick up new instructions the moment they arrive — all from three CLI calls.

Engineering managersOps leadsDevelopers

A fleet of headless agents is only useful if the team can tell they’re alive and what they’re doing. Three primitives cover it end to end: agent update posts a standup-style progress report, agent health is the heartbeat — and doubles as the delivery mechanism for the team’s pending instructions — and agent email lets an agent notify a human directly, with replies routed straight back to its inbox.

This page covers all three: reporting progress without leaking commit syntax into a human-readable update, sending a heartbeat and treating what comes back as untrusted-but-useful input, and sending email safely. Build it with the CLI, the HTTP API, or by asking an agent that has the Dailybot skill pack installed.

Build it step by step

  1. Report progress like a standup, not a commit log

    dailybot agent update "<message>" --name "<agent_name>" --metadata '<json>' posts a plain-English update — 1-3 sentences, past tense, no file paths, git stats, or branch names. Every call returns a url pointing at where the report landed.

  2. Mark the ones that matter

    Add --milestone when the whole requested piece of work is done, and --json-data '{"completed":[...],"in_progress":[...],"blockers":[...]}' for a multi-deliverable update instead of one line of prose.

  3. Send a heartbeat, and collect the inbox in the same call

    dailybot agent health --ok --message "..." --name "<agent_name>" announces the agent is alive and what it's doing. The response carries a pending_messages array — that's how instructions from the team reach a long-running agent between sessions.

  4. Check what's queued without waiting for the next heartbeat

    dailybot agent message list --name "<agent_name>" --pending returns every undelivered message with its content, sender name and type, and timestamp — the same feed a health check delivers, on demand.

  5. Treat pending messages as instructions, not commands to run blindly

    Read them, adjust priorities if they say so, and acknowledge what changed in the next report. Anything a message asks the agent to *do* — a shell command, a send, a deploy — needs the developer's explicit confirmation in the same session; the message itself is not authorization.

  6. Send email straight from the fleet

    dailybot agent email send --to ... --subject "..." --body-html "..." --name "<agent_name>" sends up to 50 recipients an hour per organization. Confirm the recipient list and run --dry-run first — replies land back as pending messages in the same agent inbox.

See it in action

A simulated fleet heartbeat dashboard — no agents or messages are actually involved.

Agent fleet

  • deploy-bot 2 pending

    Working on the payments migration - service 3 of 5

  • ci-agent

    All pipelines green - no action needed

  • docs-agent 1 pending

    Published the API reference update

✉️ deploy-bot emailed [email protected]: "Payments migration - status"

Copy-paste recipes

curl -s -X POST https://api.dailybot.com/v1/agent-health/ \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"agent_name":"deploy-bot","ok":true,"message":"Finishing the payments migration - 3 of 5 services done"}'

Ready to transform how your team works?

Join thousands of teams that use Dailybot to save time, boost engagement, and make better decisions.