secutils-dev/secutils/webhooks
Claude Code and agent skill by secutils-dev/secutils
- community
Checking that the SKILL.md file is still in the repository.
Create, list, update, and delete webhook responders on Secutils.dev. A responder is a programmable HTTP endpoint hosted on the caller's dedicated subdomain (`<handle>.webhooks.secutils.dev/<path>`) that returns either a static body or a dynamic response built by a JavaScript script running in a Deno sandbox. Trigger when the user asks to mock an HTTP endpoint, simulate a webhook callback, build a honeypot, proxy or intercept upstream HTTP traffic, capture incoming requests for inspection, gener…
Install
npx vskill@latest install secutils-dev/secutils/webhooksSKILL.md
Secutils.dev: Webhooks (Responders)
A responder is a Secutils-hosted HTTP endpoint on the user's randomly assigned subdomain (https://<handle>.webhooks.secutils.dev/<path>). Each responder owns one path, one HTTP method (or ANY), a default status code, headers, and body. Advanced settings can attach a JavaScript script that runs inside a restricted Deno sandbox for every incoming request and can override the status, headers, or body, proxy the request to a real upstream, or render dynamic HTML.
Captured request history (up to requestsToTrack) is available through the _history endpoint and the UI grid, so a responder also works as a lightweight HTTP traffic inspector. The human-readable guide lives at <https://secutils.dev/docs/guides/webhooks> and the full API reference at <https://secutils.dev/api-docs/openapi.json>.
Endpoints (tag: webhooks)
| Method | Path | Purpose | |
|---|---|---|---|
GET | /api/webhooks/responders | List responder summaries with request stats. | |
GET | /api/webhooks/responders/{responder_id} | Return a responder with all of its settings. | |
POST | /api/webhooks/responders | Create a new responder (RespondersCreateParams). | |
PUT | /api/webhooks/responders/{responder_id} | Replace responder settings (RespondersUpdateParams). | |
DELETE | /api/webhooks/responders/{responder_id} | Permanently delete the responder and its history. | |
GET | /api/webhooks/responders/{responder_id}/_history | Return the captured request history. | |
POST | /api/webhooks/responders/{responder_id}/_clear | Clear the captured request history. |
The list returns ResponderSummary items. They omit the body, headers, script, and secrets settings. Each item has settingsSize (serialized settings size in bytes) and stats (requestCount and lastRequestedAt for the retained request history). To read the full settings, use GET /api/webhooks/responders/{responder_id}.
Authentication
Two equivalent options:
- Session cookie (browser flow): authenticate through Kratos at
https://secutils.dev/signin and reuse the resulting ory_kratos_session cookie on every API call.
- API key (recommended for scripts and agents): create one in
Settings → Security → Manage API keys (see the secutils-api-keys skill), then send it as Authorization: Bearer su_ak_<token>. API keys work without cookies and can authenticate every non-API-key-management endpoint.
Create-responder payload
POST /api/webhooks/responders accepts RespondersCreateParams with the following shape (camelCase JSON):
Field notes:
location.pathTypeis"="(exact match),"^"(prefix match), or
"*" (any sub-path).
location.subdomainPrefixis optional and lets a single user own
multiple subdomains under their handle.
methodis one ofGET,POST,PUT,PATCH,DELETE,HEAD,
OPTIONS, CONNECT, TRACE, or ANY.
settings.requestsToTrackis the rolling history depth (0disables
capture).
settings.headersis an array of two-string tuples, not an object, to
preserve duplicate header names and ordering.
settings.scriptis the JS body (without an outer IIFE wrapper, the
runtime adds one). See the secutils-deno-runtime skill for the sandbox API surface and the context shape available to the script.
settings.secretsis"none","all", or{ "selected": [<secret_id>] }
and controls what context.secrets.* exposes (see the secutils-secrets skill).
The full response is the created Responder including its server-assigned id, createdAt, updatedAt, and the absolute live URL the responder serves.
Example flow (curl)
Script-powered responders
When settings.script is set, the body and headers in settings become the default response and the script can override them per request by returning a ScriptResult:
The script receives a context global with the request method, path, parsed headers, parsed query, raw body bytes, and decrypted secrets. The full context interface, body auto-conversion table, and the Deno.core.ops.op_proxy_request() API for safely forwarding requests upstream are documented in the secutils-deno-runtime skill and in https://secutils.dev/docs/guides/webhooks#annex-responder-script-examples.
Caveats
- Responder URLs are public by design. There is no built-in auth wall.
The dynamic-script section of the human guide includes self-contained HTTP Basic and cookie-session patterns that the script can apply when needed.
- The script body must not exceed roughly 50 KB. Reusable helpers should
live in a user script (see the secutils-user-scripts skill) and be imported through the Workspace UI; the API stores the inlined, fully-expanded body.
- Setting
settings.bodytogether with a script that always returns a
full ScriptResult is fine but wasteful: the static default is only used when the script returns null. Returning null keeps the default response intact, which is the pattern used by the auth-gate examples.
- Deleting a responder also deletes its captured request history. There
is no soft delete.
See also
- Human-readable guide: <https://secutils.dev/docs/guides/webhooks>
- Sandbox API reference: <https://secutils.dev/docs/guides/platform/deno_runtime>
- OpenAPI: <https://secutils.dev/api-docs/openapi.json>
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingcomponents/secutils-docs/static/guides/webhooks/SKILL.md
Popularity
- Repository stars
- 100
- Repository forks
- 3
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/secutils-dev/secutils/webhooks)