How this skill is triggered — by the user, by Claude, or both
Slash command
/EmailingEssay:send-emailThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Send emails via Gmail SMTP. Frugal design with yagmail as the only dependency.
scripts/adapters/__init__.pyscripts/adapters/cli/__init__.pyscripts/adapters/cli/decorators.pyscripts/adapters/cli/handlers.pyscripts/adapters/cli/parser.pyscripts/adapters/mail/__init__.pyscripts/adapters/mail/yagmail_adapter.pyscripts/adapters/process/__init__.pyscripts/adapters/process/spawner.pyscripts/adapters/scheduler/__init__.pyscripts/adapters/scheduler/base.pyscripts/adapters/scheduler/unix.pyscripts/adapters/scheduler/windows.pyscripts/adapters/storage/__init__.pyscripts/adapters/storage/path_resolver.pyscripts/adapters/storage/process_cache.pyscripts/adapters/storage/schedule_storage.pyscripts/adapters/storage/waiter_storage.pyscripts/domain/__init__.pyscripts/domain/code_generator.pySend emails via Gmail SMTP. Frugal design with yagmail as the only dependency.
| Source | Operation |
|---|---|
/send-email | send |
essay-writer.md | send |
/essay test | test |
/essay wait | wait |
/essay schedule | schedule |
skills/send-email/scripts/main.py
yagmail
| Operation | CLI | Description |
|---|---|---|
| test | python main.py test | Send test email |
| send | python main.py send "Subject" "Body" | Send custom email |
| wait | python main.py wait TIME [OPTIONS] | One-time schedule |
| schedule | python main.py schedule FREQ TIME [OPTIONS] | Recurring schedule |
Quick test:
python main.py test
python main.py send "Test Subject" "Test Body"
For full options and examples, see commands/essay.md → Command Structure section.
| File | Location | Description |
|---|---|---|
essay_wait.log | ~/.claude/plugins/.emailingessay/ | Logs for wait/schedule operations |
schedules.json | ~/.claude/plugins/.emailingessay/ | Backup of registered schedules |
active_waiters.json | ~/.claude/plugins/.emailingessay/ | Active waiting process tracking |
runners/ | ~/.claude/plugins/.emailingessay/runners/ | Monthly schedule runner scripts |
Note: Persistent data directory is created automatically if not exists.
The wait and schedule features use --dangerously-skip-permissions when launching Claude Code.
Why it's needed:
What it does:
/essay command (read + email operation)Safeguards:
ESSAY_RECIPIENT_EMAIL~/.claude/plugins/.emailingessay/essay_wait.logBest practices:
ESSAY_RECIPIENT_EMAIL set to your own email addresscat ~/.claude/plugins/.emailingessay/essay_wait.logpython main.py schedule listEmailingEssay | GitHub
npx claudepluginhub bizuayeu/plugins-weave --plugin EmailingEssaySends Gmail emails via gws CLI: specify to/cc/bcc recipients, subject, plain/HTML body, with dry-run preview. Requires gws auth.
Automates Gmail operations like searching, reading, sending emails, managing drafts/labels via Python CLI scripts with standalone OAuth. Requires Google Workspace.