catch destinations, phase 2

Push that wakes an agent

This page is about mentions delivered to an agent. A catch fires and discatch calls your webhook, your Claude Code command, a Doozy todo, or a GitHub dispatch, with the post, its thread context, and a suggested action. This is not about mentions inside AI answers. Tools in the AI-visibility category track when ChatGPT or Gemini mention your brand; discatch watches the open web and delivers what it finds to your agent.

What a firing carries

Every destination receives the same payload. The webhook version includes an HMAC-SHA256 signature in the X-Discatch-Signature header.

Webhook payload

{
  "event": "catch.fired",
  "catch_id": "cat_01J...",
  "delivery_id": "dlv_01J...",
  "fired_at": "2026-09-09T14:17:00Z",
  "results": [
    {
      "source": "hackernews",
      "url": "https://news.ycombinator.com/item?id=42345678",
      "title": "Show HN: ...",
      "prescore": 0.82,
      "thread": { "replies": 47, "score": 312 },
      "matched": { "terms": ["your product"] }
    }
  ],
  "suggested_action": "A user is comparing tools and asked for agent-native options. Consider a reply that answers the question.",
  "quote": { "amount_usd": 0.003, "units": { "alert": 1, "result": 1 } }
}

Every destination

TypeWhat you configureWhat wakes the agent
webhookA URL and a secretA signed POST with the results, the suggested action, and a cursor to replay from
claude_codeA slash command and a working directoryThe coding agent picks up the mention as work
codexA slash command and a working directorySame as claude_code, for Codex
doozyA list and optionally an agentA Doozy todo with the results; the named agent runs it
github_dispatchA repositoryA repository_dispatch event; a workflow files the issue or runs triage
paneA RunPane endpointPane Chat picks up the mention as work
emailAn addressA digest for a human
slackA webhook URL or OAuth tokenA channel post for a human
From docs/events.md and docs/catches.md. Webhook and agent commands ship first in phase 2; email and Slack are phase 5.

Retries and dead letter

Webhook delivery is at-least-once. The event stays in the log regardless, so a replay from the cursor recovers anything a failed delivery missed.

  • 5 attempts over about 6 hours with exponential backoff.
  • After the last attempt, the delivery moves to a dead letter visible at GET /v1/catches/{id}/deliveries with the last error.
  • The catch keeps running. One email per dead-lettered catch per day tells you something is wrong.
  • Every payload carries a delivery_id. Consumers deduplicate on it.
  • POST /v1/catches/{id}/test sends a sample payload so the destination can be verified before a real mention fires it.

Why not just MCP

MCP is a request and a response. A server cannot start the conversation. Products that ship only MCP say so in their own docs and point you at webhooks. discatch ships the MCP server for reading and control, and ships push so a catch that fires at 3am starts the agent instead of waiting for it. The two surfaces complement each other: MCP to set up the catch, the destination to deliver it.

What discatch never does

  • Post on your behalf. The suggested action is a note, not an action.
  • Run your agent. The destination starts it; discatch calls out and stops.
  • Charge for a catch that fires nothing.

Questions

Is this about alerts inside ChatGPT or Gemini answers?

No. AI-visibility tools track when an AI model mentions your brand. discatch delivers public posts from forums, Hacker News, GitHub, and the web to your agent. Different category, different data.

Which destinations ship first?

The signed webhook and the Claude Code and Codex commands, in phase 2. Doozy and GitHub dispatch follow. Email and Slack for humans are phase 5.

What if my destination is down?

Webhooks retry 5 times over about 6 hours with exponential backoff, then land in a dead letter visible at /v1/catches/{id}/deliveries. The event stays in the log; a replay from the cursor recovers it.

Does the agent get the whole thread?

Every result carries the parent URL, reply count, and score. The capture call fetches the full thread body when the agent wants it. The result shape is the same across search, capture, and catch deliveries.

How is push billed?

One alert unit per firing, plus one result unit per result delivered, plus classify units if the flag is on. A catch that fires nothing costs nothing. The quote on each delivery says what was charged.

Can one catch feed multiple destinations?

Yes. A catch appends events to the account log. Subscriptions with filters route those events to any number of targets. One catch can feed a webhook, a Doozy todo, and an email at the same time.

Can I test the destination before it goes live?

POST /v1/catches/{id}/test sends a sample payload so the destination can be verified without waiting for a real mention.

Does discatch run my agent?

No. The destination starts the agent; discatch calls out and stops. Claude Code, Codex, and Doozy are where the agent runs, not part of discatch.

How is push billed differently from search?

A search costs search and result units, paid once. A catch costs alert and result units per firing, for as long as it runs. A catch that fires nothing costs nothing. The pricing page has the placeholder rates.

Does discatch ever post on my behalf?

No. The suggested action in every firing is a note for the agent, not an instruction discatch executes. Reply drafting is done by the agent from a playbook. discatch never publishes anything on any platform.

Last reviewed by , founder, dcouple. Copy from docs/events.md, docs/catches.md, docs/api.md, docs/roadmap.md.