Buttondown
/install buttondown
Buttondown
Use Buttondown's API to create and manage newsletter email drafts.
Safety Defaults
- Draft-first: when creating an email, set
status: draftunless the user explicitly approves a different status in the current conversation. - Do not send, schedule, publish, delete, or send draft previews without explicit user approval in the current conversation.
- Do not put API keys in chat, command history, repo files, draft bodies, logs, or screenshots.
- Read the Buttondown API key from
BUTTONDOWN_API_KEY. Store it in your shell, launcher, runtime secret store, or OpenClaw SecretRef; never ask the user to paste the token into chat. - If using a platform account for multiple newsletters, pass the Buttondown newsletter username through
--contextorBUTTONDOWN_CONTEXT.
Configuration
The bundled CLI reads the API key from:
export BUTTONDOWN_API_KEY="..."
Prefer setting this through your runtime's secret manager or environment injection rather than typing it into a command. In OpenClaw, configure it through a SecretRef or equivalent managed environment variable.
Optional environment:
BUTTONDOWN_CONTEXT- newsletter username for theButtondown-Contextheader.BUTTONDOWN_API_BASE- defaults tohttps://api.buttondown.com/v1.
CLI
Run commands from the skill directory:
python3 scripts/buttondown.py create-draft --subject "Subject" --body-file issue.md
python3 scripts/buttondown.py create-draft --subject "Subject" --body-file issue.md --slug "issue-1" --description "SEO/archive summary"
python3 scripts/buttondown.py create-draft --subject "Subject" --body-file issue.md --editor-mode plaintext
python3 scripts/buttondown.py update-draft \x3Cemail_id> --subject "New subject" --body-file issue.md
python3 scripts/buttondown.py list --status draft
python3 scripts/buttondown.py get \x3Cemail_id>
python3 scripts/buttondown.py render \x3Cemail_id>
python3 scripts/buttondown.py send-draft \x3Cemail_id> --recipient [email protected]
Use --dry-run on write commands to inspect the request without calling Buttondown:
python3 scripts/buttondown.py create-draft --subject "Subject" --body-file issue.md --dry-run
Workflow
- Prepare clean Markdown or HTML body content in a local file.
- Remove YAML frontmatter from the body before uploading. Buttondown rejects bodies that start with frontmatter.
- Create the draft with
create-draft; confirm the response containsstatus: draft. - Share the Buttondown email ID and archive/admin URL from the response when available.
- For a preview email, show the user the target recipient(s) and get explicit approval, then run
send-draft.
Body Format
Buttondown detects Markdown versus HTML automatically. To force the editor mode, pass:
--editor-mode plaintextfor Markdown.--editor-mode fancyfor rich HTML.
The CLI prepends the official Buttondown editor-mode comment when this option is set.
API Reference
Read references/api.md when you need endpoint details, request fields, status values, error codes, or direct curl equivalents.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install buttondown - After installation, invoke the skill by name or use
/buttondown - Provide required inputs per the skill's parameter spec and get structured output
What is Buttondown?
Create, update, inspect, and send test previews of Buttondown newsletter emails through the Buttondown API. Use when Codex needs to post newsletter copy as a... It is an AI Agent Skill for Claude Code / OpenClaw, with 80 downloads so far.
How do I install Buttondown?
Run "/install buttondown" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Buttondown free?
Yes, Buttondown is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Buttondown support?
Buttondown is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Buttondown?
It is built and maintained by Ray Hollister (@rayhollister); the current version is v0.1.0.