AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Send Email

skill-jonathanmalkin-jules-send-email · by jonathanmalkin

Send email to [Your Name] via Resend API. Use when user says "email me", "send me an email", "send to my inbox", "email this to me", "send this to my email", or wants something delivered to email. Locked to [Your Name]'s gmail. NOT for Slack messages, DMs, or any other messaging. Do NOT use for "message me", "DM me", or "send to Slack".

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add skill-jonathanmalkin-jules-send-email

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-jonathanmalkin-jules-send-email)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Send Email? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Critical Constraints

  • Recipient is hardcoded. [your-email]. Cannot be changed. Cannot email anyone else.
  • Rate limit: 3 emails per calendar day. Exit code 2 = rate limit hit. Do not retry.
  • From address: Jules (verified Resend sender, still active post-rebrand).

Sending Email

Two paths: HTML (rich formatting via markdown pipeline) and plain text (quick notifications).

HTML email (structured content, reports, summaries)

Pipe markdown through build-digest-email.sh into jules-send-email.sh:

echo "## Summary\n\n- Point one\n- Point two\n\n**Key takeaway:** Thing." \
  | bash .claude/scripts/build-digest-email.sh "Report Title" \
  | bash .claude/scripts/jules-send-email.sh --subject "Subject Line" --html -

build-digest-email.sh converts markdown to branded HTML with the caramel/cream template. Pass the report title as the first argument (appears in the header bar). Reads markdown from stdin, outputs HTML to stdout.

Plain text email (quick notes, reminders, notifications)

bash .claude/scripts/jules-send-email.sh --subject "Reminder" --body "Follow up with Michael from AITX this week."

HTML from a file

bash .claude/scripts/jules-send-email.sh --subject "Subject" --html /path/to/body.html

Dry run (preview without sending)

bash .claude/scripts/jules-send-email.sh --subject "Test" --body "anything" --dry-run

Shows recipient, from address, subject, and today's send count. Does not consume a send.

When to Use HTML vs Plain Text

| Content | Path | |---------|------| | Session notes, briefings, reports, summaries | HTML (markdown pipeline) | | Simple reminders, quick notifications, one-liners | Plain text (--body) | | Anything with headers, lists, tables, or code blocks | HTML (markdown pipeline) |

Rate Limit Check

Before sending, check how many emails have been sent today:

grep -c "\"date\":\"$(date +%Y-%m-%d)\"" ~/.claude/email-send-log.jsonl 2>/dev/null || echo 0

Report to user: "X/3 emails sent today."

If at 3/3, inform the user the limit is hit and suggest Slack as an alternative.

Composing Guidance

  • Subject lines: Specific and scannable. "Session Notes: Quiz Migration" not "Update". [Your Name] filters by subject.
  • Markdown content: Write clean markdown. build-digest-email.sh handles conversion. Tables, code blocks, headers, lists all work.
  • Length: No hard limit, but emails should be scannable. Use headers to break up long content.
  • When writing raw HTML (not using the markdown pipeline): consult references/html-best-practices.md for email client CSS constraints.

Error Handling

| Exit Code | Meaning | Action | |-----------|---------|--------| | 0 | Sent successfully | Report the email ID and today's count | | 1 | Missing args, API key not found, or HTTP error | Check the error message. API key: container has RESEND_API_KEY in env; Mac uses 1Password (op://Dev Secrets/Quiz App - All Env/RESEND_API_KEY) | | 2 | Daily rate limit (3/day) reached | Inform user. Suggest Slack. Do not retry. |

API Key Resolution

The send script uses RESEND_API_KEY from the environment. The overnight batch injects it via op read at startup. For manual runs, the service account token in the shell environment handles it automatically.

No manual key handling needed.

Send Log

Every send (success or failure) is logged to ~/.claude/email-send-log.jsonl. Each entry includes date, time, subject, HTTP status, and today's count. This is the rate limiter's data source.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.