hugo / rig-inbox-aide
AI executive assistant for Gmail - triage unread threads, draft replies for routine ones, summarize long threads, produce a morning brief. Drafts only; the human reviews and sends. Built for solopreneurs, indie founders, vibe coders losing hours to inbox.
rig use hub:hugo/rig-inbox-aideReadme
rig-inbox-aide
A Claude Code rig that runs the daily Gmail loop for solo operators: triage unread threads, draft replies for the routine ones, summarize long threads on demand, and produce a morning brief of what actually needs you. Drafts only — you review and send.
Built for solopreneurs, AI-native founders, and vibe coders losing 60–90 minutes a day to inbox triage.
What it does
Four skills on top of a shared triage/ and briefs/ folder:
| Skill | Input | Output |
|---|---|---|
/triage [N] | last N unread threads (default 20) | triage/{date}.md — classification table (reply/escalate/archive/fyi) |
/draft-reply <thread-id> | one thread | Gmail draft (visible in Gmail drafts folder) + triage/draft-{thread-id}.md audit copy |
/summarize <thread-id> | one long thread | terminal + triage/summary-{thread-id}.md (3 lines) |
/brief | the day's triage/*.md | briefs/{date}.md — counts, escalations, drafts to review |
Layout
rig-inbox-aide/
CLAUDE.md # rig orientation (read by claude on every session)
README.md # this file
rig.toml # rig manifest
.mcp.json # Gmail MCP server config
triage/ # daily classification logs + draft/summary audit copies (gitignored, local-only)
briefs/ # morning briefs (gitignored, local-only)
.claude/skills/
triage/
draft-reply/
summarize/
brief/
First run
1. Install the rig
rig use hub:hugo/rig-inbox-aide
cd ~/rigs/hugo/rig-inbox-aide # or wherever rig installed it
2. Set up the Gmail MCP
The rig ships with .mcp.json pointing at the @gongrzhe/server-gmail-autoauth-mcp npm package. On first run, npx will download and execute the server, which opens a browser to authenticate against your Google account.
One-time setup steps:
- The first time Claude starts in this rig, the Gmail MCP server will launch via
npx -y @gongrzhe/server-gmail-autoauth-mcp. Follow the auth flow it prints — it opens a browser, you grant Gmail read + draft scopes, the OAuth tokens are saved locally. - After auth, the Gmail tools become available in this session as
mcp__gmail__search_threads,mcp__gmail__get_thread,mcp__gmail__create_draft,mcp__gmail__list_labels.
Don't want to run that server? Edit .mcp.json and replace the gmail block with your preferred Gmail MCP (e.g. a Google Workspace connector, your own self-hosted server, etc.). The skills only require:
- The server is registered under the
gmailkey in.mcp.json(so tool names start withmcp__gmail__). - The server exposes Gmail-standard tools:
search_threads,get_thread,create_draft,list_labels.
3. Launch claude
claude
4. Run the daily loop
/triage
This pulls your last 20 unread threads, classifies each, writes triage/{today}.md.
Read the table. For threads classified reply:
/draft-reply <thread-id>
Claude reads the full thread, drafts a reply, saves it as a Gmail draft (it'll show up in your Gmail drafts folder). A local copy lands at triage/draft-{thread-id}.md for audit. You open Gmail, review, edit if needed, hit send.
For long threads you need to catch up on without reading:
/summarize <thread-id>
3-line summary in your terminal + triage/summary-{thread-id}.md.
End of the morning loop:
/brief
Rolled-up view: total counts by class, top escalations that need you, drafts already waiting for review. Lands at briefs/{today}.md.
Tools required
claude(Claude Code CLI)- A Gmail MCP server registered under the
gmailalias in.mcp.json(default:@gongrzhe/server-gmail-autoauth-mcpvia npx).
Boundaries
- Drafts only. Every reply lives in Gmail's drafts folder until you send it.
- No auto-archive, no auto-label. The rig reads and drafts; it never mutates inbox state on your behalf.
- No invented content. Quotes and facts come from
get_thread. If a detail isn't in the thread, the draft leaves it out. - Append-only on
triage/andbriefs/. Re-running/triageon the same day appends a timestamped section. /draft-replyrespects the triage classification. If the latest/triagetable classified a thread asescalate,/draft-replyrefuses until you edit the table row toreply. Prevents accidentally drafting a tricky reply Claude shouldn't write.