Can a 3-line Claude skill actually run your inbox?
Yes. The skill below is 3 lines of plain-English instruction (plus a frontmatter header), runs every morning at 7am, drafts replies for every email that needs one, summarizes what’s urgent, and gives me a list of items to review. I haven’t manually triaged my inbox at 7am in 4 weeks. The time saved is roughly 90 minutes per day. The cost is $0 — it runs inside the Claude Code Max subscription I’m already paying $100/month for. This article shows the exact SKILL.md, how to wire it to a scheduled run, what the morning report looks like, and what failed before this version worked.
What does the SKILL.md actually look like?
Here’s the entire skill, copy-pasteable:
---
name: respond-to-emails
description: Respond to emails
---
What I want is that every morning you go look at all my emails, you reply to each
email according to the request, and you make me a summary of everything that has
been replied to and everything that needs to be sent and is urgent. Make me a list.
That’s it. Three lines of body text. One name, one description. The skill file lives at ~/.claude/skills/respond-to-emails/SKILL.md (or your project equivalent). When invoked, Claude Code reads it and executes the instruction with whatever email tools you have wired up via MCP.
“If you can describe the task to a smart intern in 3 sentences, you can describe it to Claude in 3 sentences. The structure people add on top — the YAMLs, the ten-step checklists, the JSON schemas — almost always makes the result worse.” — A Claude Code peer who runs $30K/mo of solo SaaS
What does the skill need to actually work?
The 3-line skill is the brain. It needs three things wired up around it:
| Component | What it does | Cost |
|---|---|---|
| Claude Code Max | Runs the skill, drafts the replies | $100/mo (already paying) |
| Gmail MCP server (or Outlook MCP) | Lets Claude read and reply to emails | $0 |
| Scheduled run (cron / launchd / GitHub Action) | Triggers the skill at 7am daily | $0 |
The Gmail MCP is the load-bearing piece. There are 3-4 community-maintained ones on GitHub right now; I use the one that supports OAuth + read + draft + send. The skill file expects “go look at all my emails” to mean “the Gmail MCP returns the inbox”. Without the MCP, the skill has nothing to look at.
What does the morning report look like?
7:02am. iMessage notification. The summary lands like this:
Inbox triage — 2026-04-30, 47 emails processed
REPLIED (38):
- 24 newsletter / promo / no-reply: archived
- 8 admin (calendar, billing, doola): replied with confirm/deny
- 6 client check-ins: replied with status update from project notes
DRAFTED — needs your eye (5):
- Dan Busch (Modernize): proposing $35 CPL test on FL bathroom — draft below
- Jack: budget review for Q2 ads — draft below, needs your numbers
- [Privacy lawyer EU]: contract draft attached — draft requesting 2 changes
- [Skool moderator]: workshop scheduling for May 14
- Anastasia: nothing urgent, draft saying "yes, dinner Tuesday"
URGENT — needs you to write (4):
- Sharon @ Re-Bath: she's asking about exclusivity terms, this is sensitive
- IRS letter: scanned and attached, you need to call the accountant
- Server alert: Cloudflare flagged a 500 error spike at 3am
- Synaps member: payment failed 3x, escalation
Awaiting your reply on the 5 drafts. Click "send" or edit. Reply "go" and
I'll send all 5.
Three categories: replied (handled), drafted (review-and-send), urgent (needs me). I open the drafts in Gmail, edit the 1-2 that need editing, hit send. The whole interaction takes 6-8 minutes. Versus the 60-90 minutes I used to spend triaging.
What does it actually save you (the honest math)?
Before the skill: 60-90 minutes of inbox triage in the morning. Some days closer to 2 hours when the queue had built up overnight. Decision fatigue compounded — I’d often start the day in defense mode.
After the skill: 6-10 minutes of “review the 5 drafts and the 4 urgent items.” That’s it.
The honest math:
| Metric | Before | After | Delta |
|---|---|---|---|
| Daily inbox time | 75 min avg | 8 min avg | -67 min |
| Emails handled before 9am | ~15 | 47 | +32 |
| ”Forgot to reply” debt accrued weekly | 12-18 emails | 0-2 emails | -90% |
| Brain energy spent | High | Low | qualitative |
90 minutes a day × 22 work days = 33 hours a month. At a $200/hr opportunity cost, that’s $6,600/month of recovered time on a $100/month Claude Code subscription. The numbers are absurd. Anyone who’s tried this for 30 days has the same numbers.
How to wire the scheduled run on macOS
Three ways to schedule it. Pick one.
Option A — launchd (macOS native)
Create ~/Library/LaunchAgents/com.maxime.email-skill.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.maxime.email-skill</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/claude</string>
<string>--skill</string>
<string>respond-to-emails</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer>7</integer>
<key>Minute</key><integer>0</integer>
</dict>
</dict>
</plist>
Then launchctl load ~/Library/LaunchAgents/com.maxime.email-skill.plist. Done.
Option B — cron
Add to crontab (crontab -e):
0 7 * * * /usr/local/bin/claude --skill respond-to-emails
Same result. Slightly less native on macOS but works everywhere.
Option C — GitHub Action
If you don’t want it tied to your laptop being on, run it on GitHub Actions:
on:
schedule:
- cron: '0 6 * * *' # 6am UTC = 7am Lisbon
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: claude --skill respond-to-emails
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GMAIL_OAUTH_TOKEN: ${{ secrets.GMAIL_OAUTH_TOKEN }}
Cloud-based, runs even if my laptop is closed. This is what I use now.
What failed before this version worked?
Three earlier versions didn’t ship. Worth flagging the failures because the temptation to over-engineer is strong.
- Version 1 (10 lines, with categories). I wrote a careful skill with 7 categories — “client emails,” “admin,” “newsletters,” etc. It mis-categorized 30% of emails. The 3-line version trusts Claude’s judgement and gets ~95% right. Less is more.
- Version 2 (with a separate “urgent” detection skill). Two skills, one to triage, one to score urgency. Latency went up; outputs disagreed. Merged into one. Single skill is more robust.
- Version 3 (auto-send everything). Disastrous. Sent a “yes, that works” reply to a vendor I should have negotiated harder with. Now: nothing sends without my “go.” The 6 minutes of human review is the right tradeoff.
The current version is the one that shipped. The earlier versions taught me what not to add.
What you cannot do with a 3-line skill
Honest limits:
- Cannot draft long sales-call follow-ups — those need context the skill doesn’t have. I write those manually.
- Cannot handle attachments well — invoices, contracts, scanned letters. The skill flags them as “urgent — needs you” rather than trying to draft a response.
- Cannot detect tone landmines — if a client is angry, the skill might draft a too-cheerful reply. I caught this once in week 2. Now any email with words like “disappointed,” “concerned,” “frustrated” gets escalated to “urgent” instead of drafted.
- Cannot handle multi-language threads gracefully — French and English mix in some threads; the skill picks one and runs with it. Usually correct, occasionally jarring.
The fix for all four: tweak the SKILL.md by adding one line — “Flag any email mentioning ‘disappointed’, ‘frustrated’, ‘concerned’ as urgent instead of drafting.” Three lines becomes four.
Frequently asked questions
Does this work with Outlook / Gmail / Hey / Superhuman? Gmail and Outlook have community MCP servers that work today. Hey and Superhuman don’t have official MCPs as of writing — you’d need to scrape the web UI, which I don’t recommend. Stick with Gmail or Outlook.
Is it safe to give Claude access to my inbox?
The Gmail MCP runs locally on your machine (or in your GitHub Action) using your OAuth token. Anthropic doesn’t see the email contents. The privacy boundary is the same as any IMAP client. Read the MCP’s README before installing — pin a specific version, not latest.
What’s the failure mode if the MCP returns nothing? Skill returns “no emails to triage.” No false sends. I’ve had the MCP return empty 2-3 times in 4 weeks (network glitches). Worst case: I open Gmail myself that morning. Cost: 3 minutes.
Can I do this without Claude Code Max — using the Anthropic API directly? Yes, but more expensive. Pay-per-token pricing on a 50-email morning runs $0.50-1.50 per day, or $15-45/month. The Claude Code Max $100/month flat rate is cheaper at any volume above ~20 emails/day. See the Claude Code Max pricing breakdown for context.
Why isn’t this a Make.com or Zapier flow instead? Zapier/Make are great for if-this-then-that. They’re terrible at judgement. The skill’s value is that it judges which emails get auto-replied vs. drafted vs. escalated. Zapier can’t do that without a Claude API call inside it — at which point you’ve reinvented this skill, badly.
How is this different from Gmail’s “Smart Reply” or “Smart Compose”? Smart Reply offers 3 generic options (“Thanks!”, “Got it”, “Will do”). The skill writes a specific reply based on the thread context, my project notes, and my voice. The quality gap is enormous.
What’s the next skill I should build after this one? A “morning brief” skill that summarizes the inbox triage + my Linear / Notion / GitHub activity overnight + my calendar for the day, in one paragraph. I’ll write that one up next month. For now, the Claude plugin format is the next step up if your skill becomes complex enough that 3 lines aren’t enough.
Where to start tomorrow
Three steps, 30 minutes total:
- Install the Gmail MCP (
npm install -g @gmail-mcp/serveror the equivalent for your client) and authenticate. - Create
~/.claude/skills/respond-to-emails/SKILL.mdwith the 3 lines above. - Run it manually once:
claude --skill respond-to-emails. Read the report. Adjust the SKILL.md if needed.
Schedule it tomorrow morning. By Friday, you’ll have your 90 minutes back.
For the next step up — building a plugin instead of a skill, when the workflow gets complex enough — see how to build a Claude plugin. For the full set of skills I run daily, see the $500K AI Stack.