Show HN: Webhook Skills – Agent skills for webhook providers and best practices
Show HN (score: 8)Description
PostHog's research on LLM code generation (https://posthog.com/blog/correct-llm-code-generation) found that agents produce more reliable code when referencing known-working examples rather than reconstructing from training data. That's the approach here.
`webhook-skills` is a collection of provider-specific webhook implementations and best practices guides built on the Agent Skills spec (agentskills.io):
- Runnable examples (currently Express, Next.js, FastAPI, with more frameworks coming)
- Signature verification with provider-specific gotchas documented
- Best-practice patterns: idempotency, error handling, retry logic
- 11 providers at launch (Stripe, Shopify, GitHub, OpenAI, Clerk, Paddle, others), expanding based on my needs or requests.
Example: # list skills
npx skills add hookdeck/webhook-skills --list
# install skills
npx skills add hookdeck/webhook-skills --skill stripe-webhooks --skill webhook-handler-patterns
Works with Claude Code, Cursor, Copilot. The examples are useful even without an agent: minimal, tested handlers you can copy directly.PRs welcome for new providers and frameworks. I also built an AI-powered generator that automatically creates new provider skills. Point it at webhook docs, and it researches the signature scheme, generates verification code for each framework, writes tests, and opens a PR.
More from Show
Show HN: A small programming language where everything is a value
Show HN: A small programming language where everything is a value This is a hobby project of mine that I started a few years ago to learn about programming language implementation. It was created 95% without AI, although a few recent commits include code from Gemini CLI.<p>I started out following Crafting Interpreters, but gradually branched off that until I had almost nothing left in common.<p>Tech stack: Rust, Cranelift (JIT compilation), LALRPOP (parser).
Show HN: Fence – Sandbox CLI commands with network/filesystem restrictions
Show HN: Fence – Sandbox CLI commands with network/filesystem restrictions Hi HN!<p>Fence wraps any command in a sandbox that blocks network by default and restricts filesystem writes. Useful for running semi-trusted code (package installs, build scripts, unfamiliar repos) with controlled side effects, or even just blocking tools that phone home.<p>> fence curl <a href="https://example.com" rel="nofollow">https://example.com</a> # -> blocked<p>> fence -t code -- npm install # -> template with registries allowed<p>> fence -m -- npm install # -> monitor mode: see what gets blocked<p>One use-case is to use it with AI coding agents to reduce the risk of running agents with fewer interactive permission prompts:<p>> fence -t code -- claude --dangerously-skip-permissions<p>You can import existing Claude Code permissions with `fence import --claude`.<p>Fence uses OS-native sandboxing (macOS sandbox-exec, Linux bubblewrap) + local HTTP/SOCKS proxies for domain filtering.<p>Why I built this: I work on Tusk Drift, a system to record and replay real traffic as API tests (<a href="https://github.com/Use-Tusk/tusk-drift-cli" rel="nofollow">https://github.com/Use-Tusk/tusk-drift-cli</a>). I needed a way to sandbox the service under test during replays to block localhost outbound connections (Postgres, Redis) and force the app to use mocks instead of real services. I quickly realized that this could be a general purpose tool that would also be useful as a permission manager across CLI agents.<p>Limitations: Not strong containment against malware. Proxy-based filtering requires programs to respect `HTTP_PROXY`.<p>Curious if others have run into similar needs, and happy to answer any questions!
Show HN: Txt2plotter – True centerline vectors from Flux.2 for pen plotters
Show HN: Txt2plotter – True centerline vectors from Flux.2 for pen plotters I’ve been working on a project to bridge the gap between AI generation and my AxiDraw, and I think I finally have a workflow that avoids the usual headaches.<p>If you’ve tried plotting AI-generated images, you probably know the struggle: generic tracing tools (like Potrace) trace the <i>outline</i> of a line, resulting in double-strokes that ruin the look and take twice as long to plot.<p>What I tried previously:<p>- Potrace / Inkscape Trace: Great for filled shapes, but results in "hollow" lines for line art.<p>- Canny Edge Detection: Often too messy; it picks up noise and creates jittery paths.<p>- Standard SDXL: Struggled with geometric coherence, often breaking lines or hallucinating perspective.<p>- A bunch of projects that claimed to be txt2svg but which produced extremely poor results, at least for pen plotting. (Chat2SVG, StarVector, OmniSVG, DeepSVG, SVG-VAE, VectorFusion, DiffSketcher, SVGDreamer, SVGDreamer++, NeuralSVG, SVGFusion, VectorWeaver, SwiftSketch, CLIPasso, CLIPDraw, InternSVG)<p>My Approach:<p>I ended up writing a Python tool that combines a few specific technologies to get a true "centerline" vector:<p>1. Prompt Engineering: An LLM rewrites the prompt to enforce a "Technical Drawing" style optimized for the generator.<p>2. Generation: I'm using Flux.2-dev (4-bit). It seems significantly better than SDXL at maintaining straight lines and coherent geometry.<p>3. Skeletonization: This is the key part. Instead of tracing contours, I use Lee’s Method (via scikit-image) to erode the image down to a 1-pixel wide skeleton. This recovers the actual stroke path.<p>4. Graph Conversion: The pixel skeleton is converted into a graph to identify nodes and edges, pruning out small artifacts/noise.<p>5. Optimization: Finally, I feed it into vpype to merge segments and sort the paths (TSP) so the plotter isn't jumping around constantly.<p>You can see the results in the examples inside the Github repo.<p>The project is currently quite barebones, but it produces better results than other options I've tested so I'm publishing it. I'm interested in implementing better pre/post processing, API-based generation, and identifying shapes for cross-hatching.
Show HN: ccrider - Search and Resume Your Claude Code Sessions – TUI / MCP / CLI
Show HN: ccrider - Search and Resume Your Claude Code Sessions – TUI / MCP / CLI I built a tool that stores your full Claude Code history to let you easily find and resume sessions. It has TUI, CLI and MCP interfaces. It's a single Go binary, and the session history is synced to SQLite each time you use it.<p>Default mode is the TUI with a session browser and full-text search. Once a session is selected you can browse and search within it, resume it or export to markdown.<p>The MCP server provides tools to let Claude search back through the session for pre-compact context or pull from prior sessions. I use this constantly.<p>I've seen elaborate continuity systems to give Claude Code access to history but this simple approach has been very effective.<p>Installation:<p>macOS: brew install neilberkman/tap/ccrider<p>Linux/other: git clone <a href="https://github.com/neilberkman/ccrider" rel="nofollow">https://github.com/neilberkman/ccrider</a> && cd ccrider && go build<p>MCP server: claude mcp add --scope user ccrider $(which ccrider) serve-mcp<p>Source: <a href="https://github.com/neilberkman/ccrider" rel="nofollow">https://github.com/neilberkman/ccrider</a>
No other tools from this source yet.