Odel
skill

skill

Local
@useotterkitUpdated 3w ago

Tunnels and webhooks for AI agents: capture, await, verify, replay, and send signed test events.

OtterKit Agent Skills

Skills that teach AI coding agents (Claude Code, Cursor, Copilot — anything that reads the Agent Skills format) to drive OtterKit: tunnels and serverless webhook endpoints with capture, signature verification, and replay.

SkillWhat the agent learns
otterkitCore: tunnels, webhook endpoints, capture, inspect, replay, daemons, pricing
stripe-webhooksStripe: signed synthetic events, Stripe-Signature verification, re-signed replay
github-webhooksGitHub Apps: persistent capture endpoint, X-Hub-Signature-256 verification, replay
shopify-webhooksShopify: stable --tunnel-url for the CLI, HMAC verification, standby endpoints
slack-webhooksSlack: Events API via capture tunnel, signing-secret verification, re-signed replay

Install (Claude Code)

Copy any skill directory into .claude/skills/ in your project (or ~/.claude/skills/ for all projects):

git clone https://github.com/useotterkit/skill && cp -r skill/stripe-webhooks .claude/skills/

Or add the OtterKit MCP server, which exposes the same capabilities as tools:

claude mcp add otterkit -- npx otterkit mcp

What's different from a plain tunnel

Every skill leans on three things ngrok-class tools don't do:

  • otterkit send — synthetic provider events signed with real signature headers (stripe:payment_intent.succeeded, github:pull_request.opened, …) against a local handler, free, no provider account interaction.
  • otterkit verify — check captured deliveries against a signing secret, per request, with the failure reason.
  • otterkit replay --resign — re-deliver a captured event to local code, re-signed with a current timestamp so timestamp-tolerant handlers (Stripe, Slack) still accept it.

Skills are generated from the CLI's actual implementation and updated alongside it.