Announcr Docs

AI agents — let your AI speak to you

Last updated September 10, 2026

Your AI can talk to you through your speakers. Ask Grok, ChatGPT, Claude, or any agent to research something, watch something, or finish a job — and instead of you checking back, it announces the result out loud through Announcr.

Setup is the same three steps for every tool:

  1. Create a webhook under WebhooksCreate. It comes ready to speak everything it receives.
  2. On that screen, under Connect an AI or app, pick your tool. Copy what it shows you — for most tools that is a single block of instructions or one URL.
  3. Paste it into your AI and say: "Announce that the setup worked." You should hear it out loud.

Keep Announcr open (a browser tab or the desktop app) with audio enabled so announcements can play. Everything below is also available, pre-filled with your real URL and secret, on the webhook's own page.

Any AI agent (the universal way)

If your AI can make web requests (most coding agents and assistants can), paste the Instructions for your agent block from the webhook's page into its chat, custom instructions, project notes, or memory. The block tells the agent:

  • how to send an announcement (one small web request with the webhook's secret),
  • when to announce (when you ask, or when an assigned task finishes),
  • and to keep spoken text short and free of secrets. Pass an http(s) URL on link (optional caption) so Spotlight can show a CTA; do not put URLs in the spoken message.

No plugin, no connector, no code of your own.

Coding agents — install it as a skill

Claude Code, Cursor, Codex, and other agents that run in your terminal can learn Announcr once per project instead of being told each time:

npx skills add BloxxOnline/announcr-mcp-plugin

Then set two environment variables where the agent runs (both values are on the webhook's page; a shell profile or local .env keeps the secret out of chat and out of version control):

export ANNOUNCR_WEBHOOK_URL='https://announcr.fm/hooks/in/YOUR_ID'
export ANNOUNCR_WEBHOOK_SECRET='YOUR_SECRET'

Ask the agent to "announce that the setup worked". The skill teaches it when to announce, the spoken style, and to never print the secret; it sends through the signed say command, which also works on its own from any script, cron job, or CI step:

npx -y @announcr/mcp say "The overnight build finished — all tests passing."

The webhook's Coding agents tool shows all three snippets pre-filled with your real values.

Grok

Grok connects through a custom connector — one URL, no code. On the webhook's page pick the Grok tool and follow the steps (grok.com → Settings → Connectors → New Connector → Custom, paste the MCP server URL, and optionally paste the custom instructions). Full walkthrough: Grok and Grok Bot.

Grok Bot

Grok Bot has no settings field for a server URL. In the hub bot chat say:

Add a custom MCP server called announcr at https://announcr.fm/api/mcp

Say “custom server.” No Cursor plugin. No webhook secret. One consent: announce, queue, reminders. Crawlable steps plus the hub and sibling bot templates: announcr.fm/grok-bot.html. Full walkthrough: Grok and Grok Bot.

ChatGPT

Two paths, both on the webhook's ChatGPT tool:

  • Custom connector (plans with MCP connector support): Settings → Connectors → Add custom connector, paste https://announcr.fm/api/mcp, and approve the sign-in prompt.
  • Custom GPT with an Action: Create a GPT → Configure → Create new action, paste the provided schema, set Authentication to API Key → Bearer, and paste your webhook secret. Name the GPT something like "My Announcer" and tell it in its instructions when to announce.

Claude

  • claude.ai: Settings → Connectors → Add custom connector, paste https://announcr.fm/api/mcp, and approve the sign-in prompt.
  • Claude Code: run the one-line claude mcp add … command from the same place — or install the skill above.
  • Claude Desktop: paste the ready-made claude_desktop_config.json block from the webhook's Claude tool — it runs npx -y @announcr/mcp with your values in env, no clone or build.
  • Other MCP hosts: any host that takes a streamable-HTTP MCP server can use https://announcr.fm/api/mcp — OAuth sign-in where supported, or the secret as a bearer header (?secret= URLs still work but are deprecated); stdio-only hosts run npx -y @announcr/mcp.
  • Or skip MCP entirely and paste the universal agent instructions into a project or CLAUDE.md.

Cursor

Install the announcr plugin from the Cursor Marketplace (or click Add to Cursor on your webhook's page). After install, Cursor shows Needs login next to the announcr server — click it, sign in at announcr.fm, and pick which webhook speaks for it (or create a new voice just for Cursor). The marketplace plugin requests one bundled grant (announce queue reminders): speak, pull this voice's agent queue, and manage your reminders. No webhook set up yet? One is created for you automatically. The plugin includes skills, so the agent knows when to announce, when to save a note, when to pull the queue, and when to write a reminder.

Manual alternative: add an MCP server with URL https://announcr.fm/api/mcp (for hosts without OAuth sign-in, add the header Authorization: Bearer YOUR_WEBHOOK_SECRET). A webhook-secret bearer can call send_announcement, send_to_notes, list_channels, and create_private_channel. Queue and reminder tools need the OAuth sign-in.

Windsurf and other MCP editors

Add an MCP server with URL https://announcr.fm/api/mcp and header Authorization: Bearer YOUR_WEBHOOK_SECRET (each tool's MCP settings accept custom headers). A secret-only connection exposes send_announcement, send_to_notes, list_channels, and create_private_channel so the agent can speak build results, save notes, and find or mint a private room. Queue and reminder tools stay off until you sign in with OAuth.

Zapier, Make, n8n, and no-code

One HTTP step: POST to your webhook URL, header Authorization: Bearer YOUR_SECRET, JSON body {"message": "…"}. The webhook's Zapier & no-code tool has each value ready to copy. Now any trigger those platforms support — a form submission, a sale, a calendar event — can be spoken.

Good instructions to give your agent

The paste-in blocks already include these rules; keep them if you write your own:

  • Announce outcomes, not progress. "Deploy finished" is worth an interruption; step 3 of 12 is not.
  • Speakable text only. Short natural sentences; no URLs, code, markdown, or emoji in spoken text. Pass an http(s) URL on link (optional caption) so Spotlight can show a CTA.
  • Never speak or print the secret. The webhook URL + secret let anyone talk through your speakers (and, if you allowlisted rooms, publish only to those rooms); the instructions tell the agent to keep them out of every message and reply.

Publishing to a channel you own

On the webhook page, Publish to my channels lets this voice post into feed channels you can already send from the composer. Hosted MCP can also list_channels and create_private_channel (same announce grant): list first, mint a private feed if you need a series and no matching publishable slug, then pass that slug as channel on send_announcement. A short room line is max 500 characters; longer channel copy (up to 8000) is packed into a Spotlight series, or send parts (2–8 strings or {text, link} objects). Optional link is an http(s) CTA for the first card. An empty allowlist keeps today's device-only speak. This is not a public write API. Full rules: Webhooks → Publish to my channels.

Keeping it safe

  • The secret is the key. Anyone holding it can make your speakers talk, list channels you belong to, mint a private feed room (plan-capped) and allowlist it, and publish only to rooms on that webhook's Publish to my channels list. It cannot read your agent queue or your reminders.
  • Paste it only into the tools you are connecting. Legacy ?secret= connector URLs contain the secret, so treat that whole URL like a password.
  • Leaked it (screenshot, shared chat, public repo)? Open the webhook and rotate the secret — the URL and setup stay, every old paste stops working.
  • One webhook per tool is a good habit: the label tells you who spoke, and you can rotate or revoke one tool without silencing the rest.

If nothing plays

  1. Check the webhook page's Recent deliveries — if the request landed, the sending side is fine.
  2. Delivery accepted but silent? Set listening to Everything (or match the filter) — see Webhooks → What gets spoken.
  3. No delivery at all? The agent never sent it — check it kept the URL and secret, and re-paste the instructions.
  4. Sound-side: audio enabled, not muted, not quiet hours (Spoken alerts).

Next: Webhooks reference · Grok and Grok Bot · Spoken alerts