Get started / Try it, no account
Get started

Try it without an account

The try app gives you a webhook URL that wakes your agent. Each POST to the URL reaches the agent as an event. It takes about two minutes, and you don't sign up for anything.

You need: Claude Code, Codex, ChatGPT (a Work chat), Cursor, Antigravity, opencode, Copilot CLI, OpenClaw or Hermes Agent. Any other MCP client that speaks Streamable HTTP can connect too.

Open the try app and get a link. The page's address is your link, so bookmark it. Anyone with it can connect an agent to your webhook and see what's posted.

2. Connect your agent

The page has a tab for each agent, with your link's URL filled in. It looks like this:

Claude Code
claude mcp add --transport http webhooks https://try.staging.wakeshift.ai/t/<code>/mcp
Codex
codex mcp add webhooks --url https://try.staging.wakeshift.ai/t/<code>/mcp
ChatGPT
https://try.staging.wakeshift.ai/t/<code>/mcp
Cursor
{
  "mcpServers": {
    "webhooks": {
      "url": "https://try.staging.wakeshift.ai/t/<code>/mcp"
    }
  }
}
Antigravity
agy mcp add webhooks https://try.staging.wakeshift.ai/t/<code>/mcp
opencode
opencode mcp add webhooks --url https://try.staging.wakeshift.ai/t/<code>/mcp
Copilot CLI
copilot mcp add --transport http webhooks https://try.staging.wakeshift.ai/t/<code>/mcp
OpenClaw
openclaw mcp add webhooks --url https://try.staging.wakeshift.ai/t/<code>/mcp --transport streamable-http
Hermes Agent
mcp_servers:
  webhooks:
    url: https://try.staging.wakeshift.ai/t/<code>/mcp
Other MCP clients
https://try.staging.wakeshift.ai/t/<code>/mcp

For ChatGPT, open Settings, then Apps & Connectors, then Advanced settings, and turn on Developer mode; back in Apps & Connectors, choose Create, paste the URL and choose No authentication. For Cursor, the JSON goes in ~/.cursor/mcp.json, which the IDE and cursor-agent both read; the page also has an Add to Cursor button that opens Cursor's MCP settings with the server filled in. For OpenClaw, run the command where its gateway runs (in Docker, docker exec into its container); new MCP servers are used from the next turn. For Hermes Agent, the YAML goes in $HERMES_HOME/config.yaml (~/.hermes/config.yaml unless HERMES_HOME is set), or run hermes mcp add webhooks --url https://try.staging.wakeshift.ai/t/<code>/mcp where Hermes runs and answer no when it asks about authentication; /reload-mcp picks it up in a running chat. Other clients take the URL as a Streamable HTTP server.

There's no sign-in: the code in the URL is the credential. Then ask your agent:

Prompt
Watch for webhooks and tell me when one arrives.

What happens next depends on the agent:

  • Claude Code asks you to approve a background monitor. Approve it, and each post wakes the agent within seconds, even when it's idle. Nothing to install. If it offers to install Wakeshift's hooks, you can decline: they're optional.
  • Codex: the first time, the agent tells you it needs a one-time install, and asks before it runs it. Afterwards, type /hooks in Codex and press t to trust the new hook. Then each post wakes the agent within seconds.
  • ChatGPT: in a Work chat (ChatGPT Business or Enterprise; on desktop, choose Cloud), turn on the connector and say "Watch this webhook." ChatGPT subscribes to it, and each post starts a new run that sees what was sent; a run takes longer to start than other agents' wakes. In personal chats ChatGPT isn't woken: posts arrive the next time it uses the webhook's tools.
  • Cursor (the IDE and cursor-agent): the agent starts a background command that waits for posts (Cursor may ask you to allow it). Each post wakes the agent within seconds, even when it's idle. Nothing to install; Wakeshift's hooks are optional. Cursor's cloud agents aren't woken: posts arrive with their next tool call.
  • Antigravity: the agent starts a background command that waits for posts (agy may ask you to allow it). Each post wakes the agent within seconds, even when it's idle. Nothing to install; Wakeshift's hooks are optional.
  • opencode: the agent offers a one-time install of Wakeshift's plugin. Say yes, and restart opencode. Then each post wakes the agent, even when it's idle.
  • Copilot CLI: the agent starts a background command that waits for posts. Each post wakes the agent within seconds, even when it's idle. Nothing to install. Copilot asks you to approve that command each time the agent goes back to waiting, so each wake needs one "Yes"; running copilot with --allow-all-tools skips that, and approves every tool.
  • OpenClaw: the agent offers a one-time install of Wakeshift's plugin for OpenClaw. Say yes. The plugin starts with the next turn, so send any reply once it's installed. After that, each post wakes the agent within seconds, even when it's idle, as long as the gateway runs.
  • Hermes Agent: the agent offers a one-time install of Wakeshift's plugin for Hermes (Hermes may ask you to approve the command once). Say yes. The plugin starts with the next turn, so send any reply once it's installed. After that, each post wakes the agent within seconds, even when it's idle, as long as Hermes runs (its API server or CLI).
  • Other MCP clients: posts are held, and arrive with the agent's next call to the webhook's tools.

3. Post to your webhook

The page shows your webhook URL and a curl line for it, which sends JSON. To send plain text:

Terminal
curl -H 'Content-Type: text/plain' --data-binary 'CI failed on main' <your webhook URL>

Your agent wakes with a line that says what came and how much, then as much of the body as fits. JSON, forms and text all work; the agent gets the parsed body as the event's data. GitHub, Stripe and Linear events get a line of their own, such as GitHub workflow_run completed: failure on main (tests) in acme/api or Stripe invoice.payment_failed: in_…, USD 20.00, open (evt_…). The page lists each post as it arrives, how many watching conversations it reached, and whether an agent is connected right now.

If a sender retries, send the same Idempotency-Key header and your agent is woken once. GitHub's, Stripe's and Linear's own retries of an event are recognised without it.

Check who can post

The webhook URL is open by default: anyone who has it can post. Before you give it to a service, pick a check on the page. Each check gives you a different URL:

  • GitHub. Requests must carry X-Hub-Signature-256. In GitHub, open Settings, then Webhooks, and add one with this URL, content type application/json and the page's secret.
  • Stripe. Requests must carry Stripe-Signature, made with your endpoint's signing secret, from the last 5 minutes. Stripe makes the secret, so add the endpoint in Stripe first (with the open URL), copy its signing secret (whsec_…) into the page, and change the endpoint's URL to the one the page gives you.
  • Linear. Requests must carry Linear-Signature, made with your webhook's signing secret, and a webhookTimestamp from the last minute. As with Stripe: add the webhook in Linear, paste its signing secret into the page, then change the webhook's URL to the one you get.
  • Bearer token. Requests must carry Authorization: Bearer <secret>.

The open URL keeps working for anyone who has it. If you've shared it, get a new link.

What the agent can do

The try app gives your agent watch and unwatch, recent_posts (the last 10 posts in full) and webhook_info (the URL, and how to test it), plus subscribe_events, unsubscribe_events and list_subscriptions. Each post is a webhook.received event, so clients that speak MCP Events can subscribe to it natively.

Limits

  • 60 posts an hour and 500 a day for each URL. Refused posts and retries don't count. These are lower than an app's publish URLs, which take 60 a minute.
  • Bodies up to 64 KB.
  • A link expires after a week without use.
  • The page keeps the last 50 lines of its live view and the last 10 posts in full. A webhook's posts are deleted after a day without use when no agent is watching, or after 7 days without use.

Next steps

The try app is for trying Wakeshift. A lasting webhook takes code: to build your own app, you need an invite (see the quickstart). In your own app, emit an event from your webhook handler, or point the sender at a publish URL. The try app is built on the same SDK.