inbox-zero · git:20261016.bb9a49f · 2026-10-16 · sha256 f5e6e9dc5a9f4ddd

inbox-zero git:20261016.bb9a49fA

Immutable. This exact content never changes and is served at /api/v1/blob/f5e6e9dc5a9f4ddd.

---
name: inbox-zero
description: Summarizes your daily.dev notifications in one short briefing, grouped by what needs you (replies, mentions, squad reviews) versus what's just news, and marks them read when you say so.
---

# Inbox Zero

Notifications pile up faster than you read them. Inbox Zero turns the backlog into one briefing and clears it on your command.

## Requirements

One of:

- The daily.dev MCP server (`https://api.daily.dev/mcp`) connected to your agent (add the `write` scope to mark notifications read), or
- A daily.dev personal access token in `DAILY_DEV_TOKEN` (https://daily.dev/settings/api). Base URL `https://api.daily.dev/public/v1`, header `Authorization: Bearer $DAILY_DEV_TOKEN`. Never send the token anywhere except `api.daily.dev`.

Each step lists the MCP tool first and the REST call after it.

## Steps

1. **Count first.** `getNotificationsUnreadCount` (`GET /notifications/unread/count`). If it's zero, say so and stop.
2. **Fetch.** `getNotifications` with `limit` 50 (`GET /notifications?limit=50`); page with `cursor` while `readAt` is null and the count isn't covered yet. Each notification has `type`, `title` (may contain HTML tags, strip them), `description`, `targetUrl`, `avatars` and `attachments`.
3. **Triage by `type`** into three buckets:
   - **Needs you**: replies and mentions (`comment_reply`, `comment_mention`, `post_mention`), squad moderation (`source_post_submitted`, member requests), anything addressed to you personally.
   - **Social**: upvotes, awards, milestones, new followers.
   - **Content**: new posts in sources and squads you follow (`source_post_added`), agent and briefing digests (`interest_content_batch`), announcements.
   Unknown types go to **Other** with their raw `type` shown.
4. **Write the briefing.** Needs-you items one per line with a link (`targetUrl`) and who it's from. Social collapsed into one sentence with counts. Content as a short list of the most relevant titles (use `attachments[].title` when present), max 8, link each. Lead with the needs-you count.
5. **Offer to clear.** Ask: "Mark all N as read?" Only on a yes, call `postNotificationsRead` (`POST /notifications/read`). It marks every notification read; there is no per-item variant, so never call it before the user has seen the needs-you list.

## Output

Under 200 words for a typical backlog. Three headers, links on everything actionable, then the clear prompt.

## Guardrails

- Never mark read without an explicit yes in the same conversation.
- Don't act on notifications (no replying, approving or following); link them so the user can.
- Two or three requests to read, one to clear.