Zero to a working feed pipeline with Claude Code (or any agent)
emit was built to be operated by coding agents: everything is an API, there's a hosted MCP server with no package to install, and the docs are machine-readable. Which means the setup guide for humans is one paragraph long — you paste a prompt, your agent does the rest. This post is that prompt, plus what happens underneath so you can trust it.
Step 0: point your agent at emit
For Claude Code, register the MCP server in ~/.claude/mcp.json (your API key
goes in after step 1 — the agent can create the account first and tell you the key):
{
"mcpServers": {
"emit": {
"type": "http",
"url": "https://api.rssemit.com/mcp",
"headers": { "Authorization": "Bearer emit_live_…" }
}
}
}
No MCP? Any agent that can run curl works identically — the MCP tools are 1:1
wrappers over the REST API (OpenAPI 3.1 spec). Agents can also read skill.md (a Claude Code skill) and
llms.txt for orientation.
Step 1: paste this
Set up emit (rssemit.com) for me. Read https://rssemit.com/skill.md first.
1. Create an account named "Ops feeds" with my email, and save the API key
it returns (shown once) to my environment as EMIT_KEY.
2. Create a watcher with the prompt "security advisories and breaking
changes affecting Postgres, Redis, and nginx", hourly cadence,
balanced threshold.
3. Give me its Atom feed URL so I can subscribe in my reader.
4. Verify my sending domain (walk me through the DNS records), then pipe
the watcher into a daily email digest from digest@<my domain>.
5. Top up $10 so filtering and sending are funded, then run the
watcher's first check with POST /v1/watchers/{id}/poll and show
me the result.
That's the whole tutorial. The agent creates the account (create_account), the
feed (create_watcher — the API calls these feeds watchers; sources are
auto-discovered when discovery is enabled, and you can always add sources by URL), reads
back the durable atom_url, registers your domain (verify_domain
returns the exact DKIM/SPF/DMARC records to add), sets the feed to broadcast by email
(pipe_watcher), and starts a Stripe top-up (top_up returns a
Checkout URL — the one step that's yours).
What you end up with
- A live RSS/Atom feed of only the items that match your prompt — each carrying its relevance score and a one-line reason, with everything filtered out kept in an auditable "why didn't I see X" view.
- A daily email digest of the same, sent from your own domain.
-
A pipeline you can extend by prompt: push items to Slack (
create_sink), receive signed webhooks, or filter feeds you already read.
The same thing in four curl calls
curl -sX POST https://api.rssemit.com/v1/accounts \
-d '{"name":"Ops feeds","email":"you@yourdomain.dev"}'
# → save .api_key as EMIT_KEY (shown once)
curl -sX POST https://api.rssemit.com/v1/watchers \
-H "Authorization: Bearer $EMIT_KEY" \
-d '{"prompt":"security advisories and breaking changes affecting
Postgres, Redis, and nginx","cadence":"hourly"}'
# → .atom_url is your feed; .id is $WATCHER
curl -sX POST https://api.rssemit.com/v1/domains \
-H "Authorization: Bearer $EMIT_KEY" -d '{"domain":"yourdomain.dev"}'
# → add the returned DNS records, then POST /v1/domains/{id}/verify
curl -sX POST https://api.rssemit.com/v1/watchers/$WATCHER/pipe \
-H "Authorization: Bearer $EMIT_KEY" \
-d '{"from_email":"digest@yourdomain.dev","schedule":"daily"}'
What it costs
Creating everything above is free. The meter runs when work happens: 1 credit per 5 items the filter judges, 1 credit per email sent ($1.60 per 1,000 credits). A feed filtering ~40 new items a day plus a daily digest to one inbox is roughly $0.43 a month. The whole price list is five lines.