بنقرة واحدة
Search, read, triage, and organize email via Maildir and notmuch
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Search, read, triage, and organize email via Maildir and notmuch
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Run the self-improvement pipeline to analyze usage, plan, and apply Claude Code configuration improvements
Create, schedule, and manage autonomous AI-agent tasks with systemd timers
Create and manipulate Obsidian Canvas (.canvas) files using the JSON Canvas spec
Create a git commit with proper conventional commit message
Code generation, exploration, and image analysis via Codex CLI
Query Gemini CLI for quick lookups, deep research, and approach comparison
| name | |
| description | Search, read, triage, and organize email via Maildir and notmuch |
| user_invocable | true |
| argument_hint | [inbox [account]|search <query>|read <id|query>|triage [account]|sync] |
Interactive and agentic email workflows backed by notmuch search/tag and Maildir access.
~/Mail/<account>/ — one directory per account, synced by mbsyncmbsync -a && notmuch new~/.notmuch/Constraint: notmuch flag sync is disabled. Tags applied in notmuch do NOT propagate back to IMAP. This is by design — tags are local metadata.
Accounts are discovered at runtime — do not hardcode them.
ls ~/Mail/ # List accounts
ls ~/Mail/<account>/ # List folders for an account
notmuch search --output=tags '*' # Discover tag vocabulary (including emma's tags)
Each folder contains cur/, new/, tmp/ subdirectories. Filename flags: :2,S (seen), :2,R (replied), :2,F (flagged).
/email inbox [account]Review unread inbox. Always delegate to subagent (batch email reads).
Workflow:
mbsync -a && notmuch newnotmuch count tag:unread AND folder:<account>/INBOX for each discovered account[account]):
notmuch show --format=json tag:unread AND folder:<account>/INBOX
Subagent prompt should request a synthesized summary (1,000–2,000 tokens), not raw message relay.
/email search <query>Search email with notmuch. Runs directly (notmuch output is compact).
notmuch search <query> # Thread summaries
notmuch search --format=json <query> # JSON for parsing
notmuch count <query> # Count matches
For natural language queries, translate to notmuch syntax (see Query Reference below). Show results directly in compact format. If result count exceeds ~30, show count first and ask the user to narrow down.
/email read <id|query>Read a specific message or thread.
notmuch show --format=json id:<message-id> # Single message
notmuch show --format=json thread:<thread-id> # Full thread
Extract from JSON: .[0][0][0].headers for headers, .[0][0][0].body[0].content for body.
/email triage [account]Analyze unread mail, classify, tag, and summarize. Always delegate to subagent.
Workflow:
notmuch search --output=tags '*'notmuch show --format=json tag:unread (filtered by account if specified)notmuch tag +<category> +priority-<level> -- id:<msg-id>
/email syncForce mail sync. Runs directly.
mbsync -a && notmuch new
Report sync result (new message count from notmuch output).
/email (no args)Show brief help listing subcommands with one-line descriptions, then ask the user what they want to do.
from:user@example.com to:me@example.com
subject:invoice body:"keyword"
tag:inbox tag:unread
folder:account/INBOX path:**/INBOX/**
date:today date:2026-01..
date:yesterday date:2026-01-01..2026-01-31
Operators: AND (default), OR, NOT, parentheses for grouping.
notmuch tag +important -- id:<message-id>
notmuch tag +archived -inbox -- <query>
notmuch tag -unread -- tag:spam
| Subcommand | Delegation | Reason |
|---|---|---|
inbox | Always subagent | Batch email reads fill context |
triage | Always subagent | Reads + classifies many messages |
search | Direct | notmuch output is compact |
read | Direct if ≤3 msgs, subagent if >3 | Thread length determines context cost |
sync | Direct | Single command |
Subagent config: subagent_type: general-purpose. Target return: 1,000–2,000 tokens, synthesized not relayed.
Email workflows can be scheduled via /schedule for autonomous execution. Example patterns:
/email inbox, summarizes to a file or desktop notificationnotmuch count tag:unread AND tag:priority-urgent, sends desktop notification if >0/email triage to keep classifications current between emma runsThe email skill provides the capability; the schedule skill provides the execution framework.
~/.notmuch/ and do not affect IMAP statenotmuch search --output=tags '*' first to respect emma's existing tag vocabulary