{
  "markdown": "# OtterKit Agent Skills\n\nSkills that teach AI coding agents (Claude Code, Cursor, Copilot — anything that\nreads the [Agent Skills](https://code.claude.com/docs/en/skills) format) to drive\n[OtterKit](https://www.otterkit.com): tunnels and serverless webhook endpoints with\ncapture, signature verification, and replay.\n\n| Skill | What the agent learns |\n|---|---|\n| [`otterkit`](otterkit/SKILL.md) | Core: tunnels, webhook endpoints, capture, inspect, replay, daemons, pricing |\n| [`stripe-webhooks`](stripe-webhooks/SKILL.md) | Stripe: signed synthetic events, `Stripe-Signature` verification, re-signed replay |\n| [`github-webhooks`](github-webhooks/SKILL.md) | GitHub Apps: persistent capture endpoint, `X-Hub-Signature-256` verification, replay |\n| [`shopify-webhooks`](shopify-webhooks/SKILL.md) | Shopify: stable `--tunnel-url` for the CLI, HMAC verification, standby endpoints |\n| [`slack-webhooks`](slack-webhooks/SKILL.md) | Slack: Events API via capture tunnel, signing-secret verification, re-signed replay |\n\n## Install (Claude Code)\n\nCopy any skill directory into `.claude/skills/` in your project (or `~/.claude/skills/`\nfor all projects):\n\n```bash\ngit clone https://github.com/useotterkit/skill && cp -r skill/stripe-webhooks .claude/skills/\n```\n\nOr add the OtterKit MCP server, which exposes the same capabilities as tools:\n\n```bash\nclaude mcp add otterkit -- npx otterkit mcp\n```\n\n## What's different from a plain tunnel\n\nEvery skill leans on three things ngrok-class tools don't do:\n\n- **`otterkit send`** — synthetic provider events signed with real signature headers\n  (`stripe:payment_intent.succeeded`, `github:pull_request.opened`, …) against a local\n  handler, free, no provider account interaction.\n- **`otterkit verify`** — check captured deliveries against a signing secret, per\n  request, with the failure reason.\n- **`otterkit replay --resign`** — re-deliver a captured event to local code, re-signed\n  with a current timestamp so timestamp-tolerant handlers (Stripe, Slack) still accept it.\n\nSkills are generated from the CLI's actual implementation and updated alongside it.\n",
  "bytes": 2104,
  "sha": "8172f29c6ba836a0b61be06aea14a60e26c1bdb3a8eed30730454ad266add9d3",
  "repo_slug": "useotterkit/skill",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_useotterkit_otterkit_b8fa1622/readme"
}