con un clic
Read Mail.app inboxes and create Reminders for actionable items. Use for email triage.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Read Mail.app inboxes and create Reminders for actionable items. Use for email triage.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Kimi WebBridge lets AI control the user's real browser — navigate, click, type, read, screenshot, and interact with any website using the user's actual login sessions. Use this skill whenever the user wants to interact with websites, automate browser tasks, scrape web content, or perform any action requiring a real browser. Also use when the user mentions "browser", "webpage", "open URL", "screenshot", or asks to read/interact with any website. Use even for simple-sounding browser requests — the daemon handles all complexity.
Record demo GIFs/MP4s of agent TUI sessions (Claude Code, Codex CLI, other agent CLIs), synchronized via a Stop-hook sentinel so the recording knows exactly when each response finishes. Two modes - scripted (VHS tape, repeatable) and live/adaptive (tmux + asciinema, where the outer Claude reads each inner response and decides the next prompt). Use when the user wants to record, capture, or make a demo/GIF/video of a Claude Code or Codex session, create a .tape file, drive a nested agent session interactively, or asks about VHS/asciinema recording of an agent CLI.
Put a website behind a Cloudflare Access (Zero Trust) login gate, or remove one, entirely from the CLI — no dashboard GUI. Use when the user wants to password/email-protect a hostname, gate a Cloudflare Pages or Workers site, restrict a site to specific emails, set up Zero Trust Access, or asks about "cf-gate". Manages Access applications and allow-email policies via the Cloudflare API using a token in the skill's .env. Note: wrangler does NOT manage Access — this uses the Cloudflare REST API directly.
Defer execution of a slash-command or prompt until a timer elapses. Starts a background polling timer that prints "TIMER DONE" on stdout, then executes the deferred prompt.
Generate an image via Codex CLI (OpenAI gpt-image-1) and save to a local path. Use when user asks to create/draw/generate an image AND save it (e.g. "draw X, save to images/y.png", "用 codex 生圖"). Requires `codex login` + `$OPENAI_API_KEY`.
DeepSeek client via the private chat.deepseek.com API (browser-exported userToken), not the official platform.deepseek.com API. Use for personal webgui automation, `x-ds-pow-response` / DeepSeekHashV1 POW solving, or SSE THINK/TOOL_SEARCH stream parsing.
| name | |
| description | Read Mail.app inboxes and create Reminders for actionable items. Use for email triage. |
Reads macOS Mail.app, identifies actionable emails, and creates reminders in Reminders.app "Inbox" list.
/mail — process past 24 hours (default)/mail 7 days — process past 7 days/mail 14 days — process past 14 daysIssue ALL of these tool calls in a single parallel message:
Bash — Activate apps + fetch emails (combined to avoid extra round-trip):
osascript -e 'tell application "Mail" to activate' && osascript -e 'tell application "Reminders" to activate' && sleep 1 && osascript ~/.claude/skills/mail/scripts/fetch-mail.applescript <days>
<days> is 1. If user provides args like "7 days", "48h", or "14 days", extract the number.id, account, subject, from, date, read, preview.Read — Load dedup database from /tmp/mail-already-processed.json:
/tmp/mail-already-processed.json with: {"processed_ids":[],"last_run":""}Bash — Fetch existing reminders for dedup:
~/.claude/skills/mail/scripts/reminders-cli fetch
After Batch A completes, filter out emails whose id is already in processed_ids. Only analyze NEW emails.
For each new email, determine if it requires action. Classify into:
Actionable (create reminder):
Not actionable (skip):
For each actionable email, extract:
Issue ALL extract-urls.sh calls in a single parallel message — one Bash tool call per actionable email:
~/.claude/skills/mail/scripts/extract-urls.sh "<message-id>"
Returns one URL per line, filtered to remove tracking pixels, images, and social media links.
How to use extracted URLs:
Performance note: Only run this for actionable emails (typically 1-5 per batch). Each call takes ~2-3s but they run in parallel, so total wall time ≈ one call.
Before adding, check if a similar reminder already exists (from Batch A's reminders fetch) by comparing:
Skip any reminder that would be a duplicate.
Use the batch-add command to create all reminders in a single process invocation:
printf '%s' '<JSON_ARRAY>' | ~/.claude/skills/mail/scripts/reminders-cli batch-add
Where <JSON_ARRAY> is a JSON array of objects:
[
{
"name": "Task title",
"body": "Details and context",
"due": "YYYY-MM-DD HH:MM",
"priority": "1"
},
{
"name": "Another task",
"body": "More details",
"due": "YYYY-MM-DD HH:MM",
"priority": "5"
}
]
Priority values: "1" (high/urgent), "5" (medium/normal), "9" (low/FYI).
Returns OK:<count> on success.
Shell escaping: The JSON must be valid. Use printf '%s' to pipe JSON to stdin. Avoid single quotes inside the JSON — use escaped double quotes for string values.
Fallback: If batch-add fails, fall back to individual reminders-cli add calls — issue them ALL in a single parallel message:
~/.claude/skills/mail/scripts/reminders-cli add "<name>" "<body>" "<due_date>" "<priority>"
After processing, update /tmp/mail-already-processed.json:
processed_idslast_run timestampUse the Write tool (not bash heredoc/redirect) to write the updated JSON:
{
"processed_ids": ["id1", "id2", ...],
"last_run": "2026-03-10T00:00:00"
}
Important: Do NOT use cat > file << EOF — the check-file-exists hook will block the > redirect. Always use the Write tool for this file.
Present results to user in a table:
## Mail Summary (past <N> days)
**Processed**: X new emails across Y accounts
**Skipped**: Z already-processed emails
### Actionable Items Added to Reminders:
| # | Due | Reminder | Priority | Source | Link |
|---|-----|----------|----------|--------|------|
| 1 | 3/9 12:00 | Task name | HIGH | sender@email.com | [action link](url) |
### Non-Actionable (skipped):
- Newsletter from X
- Notification from Y
If no actionable URL was found for an item, show "—" in the Link column.
/tmp/mail-already-processed.json persists across reboots only if /tmp is not cleaned. This is acceptable — reprocessing is harmless since we also check existing reminders.