The official Inngest plugin for Claude Code. One install, and Claude Code knows how to build reliable durable functions, design event-driven workflows, configure flow control, stream realtime updates, build durable AI agents, run the Inngest CLI and Dev Server, debug runs with inngest api, audit existing codebases for durability gaps, and migrate from SDK v3 to v4 with Inngest.
Beta: v0.3.0 is the current public beta. We’d love your feedback — open an issue, drop into our Discord, or ping @inngest on socials.
inngest-api-cli skill teaches the agent the inngest api surface — runs, traces, invocation, syncs, Insights SQL — including how to bootstrap auth and discover run/app/function IDs on its own. inngest-api is reserved for raw REST API v2/OpenAPI fallback. The only human step is creating an API key./inngest:debug-run command — hand Claude Code a run ID and it pulls the trace, finds the failing step, fixes the code, and verifies with a local invoke./inngest:audit command — point Claude Code at an existing codebase and it finds durability gaps (polling loops, manual retries, fire-and-forget promises, queue libraries), prioritizes them, and proposes Inngest refactors./plugin marketplace add inngest/inngest-claude-code-plugin
/plugin install inngest@inngest-claude-code-plugin
git clone https://github.com/inngest/inngest-claude-code-plugin.git
cd your-project/
claude --plugin-dir /path/to/inngest-claude-code-plugin
Install the plugin (above).
Start your Inngest dev server in your project:
npx inngest-cli@latest dev
Open Claude Code in your project and ask it something Inngest-shaped:
"Add a durable function that sends a welcome email when a user signs up,
retries on failure, and waits 24 hours before sending the second email."
Claude Code picks up the relevant skill (inngest-durable-functions,
inngest-steps, etc.), writes the function, registers it on your dev
server’s /api/inngest route, and triggers a test event through the MCP
server so you can watch it run.
| Skill | What it covers | When it triggers |
|---|---|---|
inngest-setup |
SDK install, client config, serve endpoints (Next.js, Express, Hono, Fastify), connect-as-worker, dev server | Adding Inngest to a TypeScript project |
inngest-durable-functions |
Function config, triggers, step execution, idempotency, cancellation, error handling, retries, observability | Building functions that survive crashes, retry, run on schedule |
inngest-steps |
step.run, step.sleep, step.waitForEvent, step.invoke, step.ai, parallel + loops |
Durable delays, human-in-the-loop, polling, memoization |
inngest-events |
Event schema, IDs for idempotency, fan-out patterns, system events | Designing event-driven workflows, decoupling services |
inngest-flow-control |
Concurrency, throttle, rate limit, debounce, priority, singleton, batching | Handling rate limits, deduping bursts, per-tenant fairness |
inngest-middleware |
Lifecycle, dependency injection, Sentry + encryption middleware, custom middleware | Cross-cutting concerns: logging, tracing, DI, encryption |
inngest-realtime |
v4 native realtime, channels, subscription tokens, useRealtime hook, SSE |
Streaming workflow updates to a UI in real time |
inngest-cli |
CLI and Dev Server workflows: inngest dev, local testing, Docker, MCP setup, deployment checks, self-hosted inngest start |
Local development, testing, self-hosted server operations |
inngest-api-cli |
inngest api commands, API keys, run traces, direct invocation, app syncs, Insights SQL |
Debugging failed runs, scripting against Inngest, CI/CD |
inngest-api |
REST API v2 and OpenAPI fallback | Raw HTTP, OpenAPI, endpoint request shapes |
inngest-agents |
AgentKit, step.ai, tool calls, multi-agent networks, human approval, realtime progress |
Building durable AI agents and agentic workflows |
inngest-brownfield-audit |
Repo discovery, durability anti-pattern detection, incremental integration planning | Introducing Inngest to an existing codebase |
inngest-v3-v4-migration |
Usage detection, trigger/schema/serve/realtime API changes, verification | Upgrading from SDK v3 to v4, fixing mixed v3/v4 usage |
The inngest-api-cli skill gives the agent programmatic access to real execution data through the Inngest CLI’s api commands. The inngest-api skill covers raw REST API v2 and OpenAPI fallback.
# Run summary
npx inngest-cli@latest api --prod get-function-run 01KTCTWT8XDEGWDMVX3Q9M69ND
# Full step trace, with outputs
npx inngest-cli@latest api --prod get-function-trace 01KTCTWT8XDEGWDMVX3Q9M69ND --include-output
# Runs triggered by an event
npx inngest-cli@latest api --prod get-event-runs 01KTCTWSZJEKAFEDA4F9GYHFQW --limit 5
# Invoke a function directly
npx inngest-cli@latest api invoke-function my-app my-function --data '{"message": "hello"}'
The CLI targets the local dev server by default (no API key needed); --prod targets Inngest Cloud with an API key from $INNGEST_API_KEY. The skills ship complete references for every CLI command and every v2 endpoint, so the agent can work the whole surface — including finding run IDs itself via Insights SQL — without a human driving.
Or just run the command:
/inngest:debug-run 01KTCTWT8XDEGWDMVX3Q9M69ND --prod
Claude Code pulls the trace, isolates the failed step, reads the actual error, fixes the code, and verifies the fix by invoking the function on your dev server.
The plugin ships an .mcp.json that registers the local Inngest dev server’s MCP endpoint with Claude Code:
{
"mcpServers": {
"inngest-dev": {
"type": "http",
"url": "http://127.0.0.1:8288/mcp"
}
}
}
This lets the agent inspect runs, events, and function state on your local dev server while you’re working.
Port note: the URL is hardcoded to 8288, the dev server’s default. If 8288 is already in use, the dev server falls back to 8289+ — in that case, edit the url in .mcp.json to point at the active port. Run lsof -i :8288 (or check the dev server’s startup output) to find which port it bound to.
"I'm getting Stripe webhooks. Wrap the handler in an Inngest function that
retries on failure and dedupes on event ID."
→ Plugin generates the serve endpoint, the function with id set as the idempotency key, and the step.run blocks for each side effect.
"This function calls OpenAI on every event. Add concurrency: max 5 in
flight per user, throttle the org to 100/min."
→ Plugin writes the concurrency and throttle config keyed by user/org.
"Run this LLM agent as an Inngest function and stream its tokens to a
React component."
→ Plugin sets up a typed channel, publishes from inside step.run, mints a subscription token via a server action, and writes the client component using the useRealtime hook.
"This run failed in production: 01KTCTWT8XDEGWDMVX3Q9M69ND. Figure out why
and fix it."
→ Plugin pulls the run summary and full step trace via inngest api, isolates the FAILED span, reads the real error output, fixes the step code, and verifies by invoking the function locally.
/inngest:audit
→ Plugin maps the repo, flags polling loops, manual retries, setTimeout scheduling, fire-and-forget promises, and queue libraries, then produces a prioritized report with a specific Inngest refactor per hotspot. Add --apply to refactor highest-severity first, with tests.
"We're on inngest v3. Upgrade us to v4."
→ Plugin detects current usage, moves triggers into createFunction options, replaces EventSchemas, updates serve options and realtime imports, rewrites step.invoke string IDs, and verifies the result.
The skills in this plugin are mirrored from inngest/inngest-skills — that’s where they’re authored and where skills.sh users install them. This plugin pulls them in via scripts/sync-skills.sh so the Claude Code experience stays in lockstep with the skills.sh experience.
Inside eval/ is a prompt catalog and runner you can use to verify the plugin is actually steering Claude Code on real Inngest-shaped tasks.
cd eval/runner
./run.sh
See eval/README.md for prompt format, judge config, and how to add your own.
This is v0.3.0. We’re shipping early to learn from real usage:
#claude-code-plugin channel.See ROADMAP.md for the v0.x → v1.0 plan: more skills, slash commands, agents, migrators between SDK majors, and the path to the official Anthropic plugin marketplace.
Apache 2.0. See LICENSE.