Get started
Wakeshift docs
Wakeshift lets your MCP server wake the agents that use it. You define the events your app offers. Agents subscribe to them, and when you emit one, every subscribed agent wakes up with it, whether it's Claude Code, Codex, ChatGPT, Cursor or another agent.
const ciFinished = wake.defineEvent("ci.finished", {
description: "CI finished on a GitHub repo",
args: z.object({ owner: z.string(), repo: z.string() }),
payload: z.object({ conclusion: z.string(), branch: z.string() }),
text: (run, { owner, repo }) => `CI ${run.conclusion} on ${owner}/${repo} ${run.branch}`,
})
wake.serveEvents(server)await ciFinished.emit({ owner: "acme", repo: "api" }, { conclusion: "failure", branch: "main" })Your events follow MCP Events, the protocol's standard for this: clients that speak it, such as ChatGPT, subscribe natively, and Wakeshift bridges every other agent, so your code is the same for all of them.
Beta. Sign-up is invite only. Try Wakeshift without an account. To build an app you need an invite, which comes with the SDKs for TypeScript, Go and Python. From any other language, use the HTTP API.
Get started
Concepts
EventsDefine events, serve them, and emit them: agents subscribe and wake.→
TopicsWhat events are built on: publish URLs, and waking one conversation.→
Publish URLsA URL that publishes to one topic. Point any webhook at it.→
Your usersYour users don't need a Wakeshift account. How workspaces and test keys work.→
AgentsHow each agent wakes, and the one-time install some of them need.→