send-email

Sends Gmail messages only after explicit user approval of the exact final email.

Updated Sep 1, 2026
One-click install
npx skills add https://github.com/jpmoya/claude-agents --skill send-email-jpmoya
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: send-email
Source: https://github.com/jpmoya/claude-agents/tree/main/skills/send-email
Command: npx skills add https://github.com/jpmoya/claude-agents --skill send-email-jpmoya

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Sending an email on behalf of a user is irreversible, and implied consent or stale approvals lead to costly mistakes. This Skill enforces a strict approval gate so that every outbound email is shown verbatim and explicitly confirmed immediately before sending. ## Core Features & Use Cases - Mandatory approval gate: Presents the complete final email (From, To, Cc, Subject, full body, attachments) and requires an explicit "Send" answer via AskUserQuestion before any send command runs. - Hook-enforced single-use marker: Writes a timestamped marker file that the email-send-guard PreToolUse hook checks; the marker expires in 5 minutes and is consumed by one send, preventing replay or batch sends. - Multi-account routing: Routes sends across [email protected] (gws CLI), [email protected], [email protected], and [email protected] (googleapis via Bash), with correct reply threading via In-Reply-To/References and threadId. - Use Case: When asked to "follow up with the vendor thread," the Skill composes the reply, shows the exact final message, asks for confirmation, and only then writes the marker and sends. ## Quick Start Ask the assistant to send or reply to an email from one of JP's accounts, review the exact final message shown in chat, and answer "Send" when prompted to approve it.

Frequently Asked Questions about send-email

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send an email through Gmail with approval before sending?

Compose the email, present the complete final version (From, To, Subject, full body, attachments) in chat, then ask for explicit confirmation via AskUserQuestion. Only after a "Send" answer, write the approval marker and run the send command in a separate call.

Why does the email-send-guard hook block my Gmail send command?

The hook blocks any send command unless a fresh approval marker exists at ~/.claude/.email-send-approved. The marker is single-use, expires in 5 minutes, and must be written in its own Bash call after an explicit approval in the same turn.

Can I send follow-up replies on an existing email thread?

Yes, replies are supported by setting In-Reply-To and References headers plus the threadId so the message threads correctly. However, replies require the same approval flow as new emails—every send needs fresh explicit confirmation.

Does creating a Gmail draft require the approval workflow?

No, creating drafts with drafts create never requires this approval flow because nothing is sent. The approval gate and marker only apply to actual send, reply, or forward commands.

What happens if the email content changes after approval?

Any content change invalidates the prior approval. The workflow restarts by presenting the new final email in full and asking for confirmation again, since one approval covers exactly one exact message.