secutils-dev/secutils/deno-runtime
Claude Code and agent skill by secutils-dev/secutils
- community
Checking that the SKILL.md file is still in the repository.
Reference for the restricted Deno runtime that hosts Secutils.dev responder scripts and API tracker configurator/extractor scripts. Documents what is and is not available inside the sandbox, the `context` global shape per script kind, the `Deno.core` utility namespace (encode/decode, binary string helpers, base64 building blocks, type checks), the body auto-conversion table, and the `Deno.core.ops.op_proxy_request()` API used to safely forward HTTP requests upstream. Load this skill whenever an…
Install
npx vskill@latest install secutils-dev/secutils/deno-runtimeSKILL.md
Secutils.dev: Deno Sandbox Runtime (reference)
This skill is reference material only. It does not invoke any Secutils.dev HTTP endpoint. Use it as a companion skill to secutils-webhooks, secutils-web-scraping-api, secutils-web-scraping-page, and secutils-user-scripts whenever an agent is producing the JS body that those endpoints accept.
Full human-readable reference: <https://secutils.dev/docs/guides/platform/deno_runtime>. The complete list of Deno.core members exposed in the sandbox is published live at <https://demo.webhooks.dev.secutils.dev/deno-apis>.
Where the sandbox runs
| Surface | Wrapper | context global shape | |
|---|---|---|---|
| Responder script (webhooks) | Wrapped with an outer IIFE; the script body may begin directly with statements or with its own (async () => { ... })(). | { clientAddress?, method, headers, path, rawQuery?, query, body: Uint8Array, secrets } | |
| API tracker configurator | Must be a self-invoking IIFE: (() => { ... })(); | { requests, params: { secrets } }; return { requests } | |
| API tracker extractor | Must be a self-invoking IIFE | { responses, params: { secrets, previousContent? } }; return { body } | |
| Page tracker extractor | Must export async function execute(page, context) | context = { params: { secrets }, previousContent? }; page is a Playwright Page |
The IIFE-wrapped sandboxes accept a returned value that auto-converts to bytes (see Body auto-conversion below). The page tracker's execute() may return any JSON-serialisable value or a Uint8Array.
What is NOT available inside the sandbox
The sandbox is intentionally locked down. Do not generate code that relies on the following:
fetch,XMLHttpRequest, WebSocket, EventSource. For outbound HTTP
from a responder script, use Deno.core.ops.op_proxy_request() (below). For API trackers, declare the requests in target.requests and let the runtime issue them; the configurator can only mutate them, not perform them.
btoa,atob. See the base64 recipe below for pure-JS replacements.setTimeout,setInterval,queueMicrotask. Use
await Promise.resolve() for microtask yields.
- File system, child process, OS, FFI.
WebCrypto(crypto.subtle). Cryptographic primitives must be
implemented in pure JS or done outside the sandbox (e.g. the certificate template endpoint or the JWT debugger tool).
What IS available: every standard ECMAScript built-in (JSON, Math, Date, Map, Set, Promise, TextEncoder, TextDecoder, Array, typed arrays, Intl, regex), the Deno.core namespace documented below, and the script-specific context global.
Deno.core namespace
| Member | Purpose | |
|---|---|---|
Deno.core.encode(text: string): Uint8Array | UTF-8 encode a string. | |
Deno.core.decode(buf: Uint8Array): string | UTF-8 decode a buffer. | |
Deno.core.encodeBinaryString(buf: Uint8Array): string | Latin-1 binary string (one byte per char). Useful as input to a pure-JS base64 encoder. | |
Deno.core.ops.op_proxy_request(req): Promise<Response> | Forward an HTTP request through the Secutils edge with built-in SSRF protection. Responder scripts only. |
The full list of Deno.core symbols is enumerable at runtime:
Drop that script into a responder to print the live API surface.
context shape per script kind
Responder script
API tracker configurator
API tracker extractor
Page tracker extractor
Body auto-conversion
Every sandbox that accepts a body (responder ScriptResult.body, API tracker extractor ExtractorResult.body, page tracker execute() return value) accepts these input types and converts to bytes:
| Input type | Converted to | |
|---|---|---|
Uint8Array | as-is | |
string | UTF-8 bytes (Deno.core.encode) | |
| plain object or array | JSON.stringify then UTF-8 bytes | |
number or boolean | String(x) then UTF-8 bytes | |
null or undefined | empty body (and, for responders, the static default body is preserved) |
For binary responses (PNG, PDF, etc.) build the Uint8Array explicitly; the auto-converter never tries to interpret string content as base64.
Base64 without btoa / atob
Encode (replaces btoa):
Decode (replaces atob):
For URL-safe base64 (used by JWT, etc.), replace the alphabet's last two chars with -_ and strip trailing =.
op_proxy_request (responder scripts only)
Forward an HTTP request through the Secutils edge proxy. Built-in SSRF protection blocks RFC 1918 ranges, link-local addresses, and loopback.
Errors (non-2xx are NOT errors; only network/timeout/SSRF failures throw) bubble out as exceptions; the responder script can catch them and return a custom error response.
Recipes catalogue (where to find them)
- Pure proxy / response-mutating proxy / conditional proxy:
<https://secutils.dev/docs/guides/webhooks#proxy-requests-to-an-upstream-service-mitm>
- HTTP Basic auth gate:
<https://secutils.dev/docs/guides/webhooks#protect-a-responder-with-http-basic-auth>
- Cookie-session login form:
<https://secutils.dev/docs/guides/webhooks#protect-a-responder-with-a-login-form-cookie-session>
- Selective tracking / response tracking:
<https://secutils.dev/docs/guides/webhooks#selectively-track-requests>
- PNG generation (binary body):
<https://secutils.dev/docs/guides/webhooks#generate-images-and-other-binary-content>
See also
- Human-readable reference: <https://secutils.dev/docs/guides/platform/deno_runtime>
- Consumers:
secutils-webhooks,secutils-web-scraping-page,
secutils-web-scraping-api, secutils-user-scripts
- Live API surface: <https://demo.webhooks.dev.secutils.dev/deno-apis>
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/platform/deno_runtime/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/deno-runtime)