# Send Email

Compose and send a one-off email to a named recipient via Resend - written in the...

- Repository: https://github.com/aeonfun/aeon (787 stars)
- Category: Media
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add aeonfun/aeon --skill send-email -g -a claude-code -y`
Codex: `npx skills add aeonfun/aeon --skill send-email -g -a codex -y`
Cursor: `npx skills add aeonfun/aeon --skill send-email -g -a cursor -y`
Gemini CLI: `npx skills add aeonfun/aeon --skill send-email -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add aeonfun/aeon`

## Description

Compose and send a one-off email to a named recipient via Resend - written in the operator's voice, then sent in-run through the shared send caps with an operator audit copy

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

> **${var}**, who to email and why, e.g. `to=jane@acme.com | subject=Intro | about=propose a 20-min call on X`. Freeform also works ("email jane@acme.com to follow up on yesterday's demo"). `cc=` is optional. The reply-shape `revise:<instruction>` (Telegram force-reply, e.g. `revise:make it warmer`) refines the **last composed draft for review only, it never sends**.

Read `soul/` (for voice) and `memory/MEMORY.md` (for context) before composing.

## What this does

Composes a single, purposeful email and sends it **in-run** via Resend (`./secretcurl`), gated by the shared send caps + kill-switch and logged to the shared ledger `memory/email-log.json`. The send is irreversible, so it's the skill's **final** action, behind a set of fail-closed checks (see "Send (in-run)" below): a skipped or failed check means *do not send*, never *send anyway*. This is the general-purpose sibling of vuln-scanner's disclose arm (Arm C, `var=disclose`), same caps + audit CC, any recipient and purpose instead of only vuln maintainers.

This is **not** a bulk or cold-outreach tool. One deliberate recipient per run, with a genuine reason to write. If the request reads as mass-mailing, list-blasting, or spam, refuse and log `SEND_EMAIL_REFUSED: not a 1:1 purposeful email`.

## Steps

### Revise intercept (Telegram force-reply, re-stage for review only, NEVER auto-send)

**Before anything else**, if `${var}` starts with `revise:`, the operator replied to a "refine this email?" prompt. Handle it here and **end the run**, the normal compose/send flow below does NOT run, and **nothing is ever sent**:

The rest: https://github.com/aeonfun/aeon/blob/HEAD/skills/send-email/SKILL.md
