recoup-platform-email-helper — Claude Code skill
Sends mail through the Recoup API from a Node script: the body gets serialized properly, and an empty body stops the send instead of going out.
npx skills add recoupable/skills --skill recoup-platform-email-helper -a claude-codeWhat recoup-platform-email-helper does
Reach for this skill when a task calls for mailing a report, summary or notification to the account owner or another recipient. It ships one Node script, scripts/send-email.mjs, which handles body serialization on its own. Building the JSON by hand with curl and inline jq is the fragile path: bad quoting lets a footer-only message titled “Message from Recoup” go out while the API still answers success:true. The script drops shell serialization entirely.
Writing the body to a file is the safer route, especially for HTML, since escaping stops being a concern. The script takes --subject, --html-file or --html, --text-file or --text, --to, --cc and --chat-id. With --dry-run it validates the payload and prints it without sending, which works as a preview. Leave --to out and the message goes to the account's own address.
A body is mandatory and there must be exactly one: with no non-empty --html or --text the script exits with code 2 and sends nothing. A non-zero code means the mail did not leave — read stderr and fix it rather than reporting success. Credentials come from the environment as RECOUP_API_KEY or RECOUP_ACCESS_TOKEN plus RECOUP_API_BASE; never print them. Node only, no dependencies, and python3 is not guaranteed in the sandbox.
What it helps with
- mail a daily report to the account owner
- notify several recipients at once with
--to - preview the message body before sending via
--dry-run - stop hand-assembling JSON in the shell
- catch a failed send by its exit code
Example prompts for the agent
- Build the daily summary and email it to the account owner with recoup-platform-email-helper
- Send a message with the subject “Weekly report” and the body from
report.htmlto two addresses - Preview the email with
--dry-runand don't send anything
How to install recoup-platform-email-helper
1Skills CLI (Vercel)
npx skills add recoupable/skills --skill recoup-platform-email-helper -a claude-code2Manually: put the files in place
~/.claude/skills/recoup-platform-email-helper/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/recoup-platform-email-helper/
1Skills CLI (Vercel)
npx skills add recoupable/skills --skill recoup-platform-email-helper -a codex2Manually: put the files in place
.agents/skills/recoup-platform-email-helper/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add recoupable/skills --skill recoup-platform-email-helper -a cursor2Manually: put the files in place
.cursor/skills/recoup-platform-email-helper/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install recoupable/skills recoup-platform-email-helper2Manually: put the files in place
.github/skills/recoup-platform-email-helper/SKILL.md1Skills CLI (Vercel)
npx skills add recoupable/skills --skill recoup-platform-email-helper -a gemini-cli2Platform CLI
gemini skills install https://github.com/recoupable/skills --path skills/recoup-platform-email-helperManually: put the files in place
.devin/skills/recoup-platform-email-helper/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add recoupable/skills --skill recoup-platform-email-helper -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about recoup-platform-email-helper
How do I install recoup-platform-email-helper in Claude Code?
Run npx skills add recoupable/skills --skill recoup-platform-email-helper -a claude-code. The skill lands at ~/.claude/skills/recoup-platform-email-helper/SKILL.md.
What does recoup-platform-email-helper do?
It sends mail through the Recoup API by running the bundled Node script scripts/send-email.mjs. Serialization happens inside the script, so a footer-only empty message never goes out.
What does the skill need to work?
Node, plus RECOUP_API_KEY or RECOUP_ACCESS_TOKEN and RECOUP_API_BASE in the environment. Sending goes through recoup-platform-api-access.