Dispatch is a self-hosted newsletter service built in Go. One binary, no dependencies, full API-first design. Operated by people through a web UI — or autonomously by AI agents through REST, CLI, and MCP.
From subscriber management to delivery analytics — without vendor lock-in or monthly bills.
Write editions with Go template variables for personalization. Templates are validated at creation time — syntax errors and undefined variables are caught before sending.
Set a time and Dispatch fires the send automatically. Recipient lists are rebuilt at dispatch time, so late additions are included. Cancel with a single API call.
Attach free-form tags to subscribers. Filter sends by tag to reach specific segments without managing separate lists. AND logic keeps targeting precise.
Built-in confirmation email flow. Subscribers enter as pending, click to confirm, then become active. Fully automatic, GDPR-friendly by default.
Embedded tracking pixel with per-recipient open event recording. See who opened each edition with real-time open rates on every send.
Upload images via API. Dispatch serves them publicly at stable URLs for direct embedding in newsletter HTML. JPEG, PNG, GIF, WebP, and SVG.
Four layers: SMTP 5xx auto-classification, IMAP bounce monitor for RFC 3464 DSN, Amazon SES/SNS webhooks, and a generic webhook endpoint. Bounced addresses are excluded automatically.
Bulk subscriber operations with automatic deduplication on import. Export filtered subscriber lists for backup or migration.
Configurable worker pool with emails-per-second throttling and burst control. Sends are asynchronous with real-time progress tracking.
Three integration paths — use whichever fits your workflow. Every operation available through every interface.
40+ endpoints covering every operation. API key auth, rate limiting, request tracing with X-Request-ID, structured JSON errors, and cursor-based pagination.
31 tools and 4 resources via the Model Context Protocol. Runs in stdio mode for seamless use with Cursor, Claude, and other MCP-capable environments.
Cobra-based commands for management, sending, importing, exporting, and statistics. Pipe-friendly output with optional JSON mode.
Dispatch ships with a ready-to-use OpenClaw skill. An agent can install, configure, and operate the entire system autonomously.
The Dispatch skill handles everything from initial setup to ongoing operations. Your agent detects whether Dispatch is installed, installs it if needed, and then manages the full newsletter lifecycle on its own.
# Install the skill $ openclaw skill install ./skills/dispatch-newsletter ✓ dispatch-newsletter installed # The agent takes it from here user: Send a newsletter to our VIP subscribers agent: Checking Dispatch status... ✓ Service running at localhost:8025 ✓ List "updates" — 847 active subscribers ✓ 23 subscribers tagged "vip" Creating edition from template... ✓ Edition "march-vip-update" created ✓ Template validated — no warnings Sending test to you@example.com... ✓ Test email delivered agent: Test sent. Want me to send to all 23 VIP subscribers? user: Yes agent: ✓ Sent to 23/23 recipients Open rate: 74% (after 24h)
No containers. No orchestration. No managed services. One binary on any Linux server.
Clone, build, configure, send. Your first newsletter in under five minutes.