← 返回 Skills 市场
guyoung

Boxed Curl

作者 guyoung · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
99
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install boxed-curl
功能描述
Run curl requests safely in a sandbox, supporting GET/POST/HTTP headers, with complete network isolation.
使用说明 (SKILL.md)

Boxed Curl Skill

Run curl-like HTTP requests safely within a WASM sandbox with network access control.

Triggering Method

Use this skill when the user says:

  • "boxed curl", "boxed curl"
  • "Sandbox version of curl", "Sandbox curl", "Secure curl"
  • "Make a request using boxed-curl", "Help me with boxed-curl"
  • "Send a secure HTTP request", "Secure GET/POST request"
  • "沙箱版 curl"、"沙箱 curl"、"安全的 curl"
  • "用 boxed-curl 请求"、"帮我 boxed-curl"
  • "发一个安全的 HTTP 请求"、"安全的 GET/POST 请求"

⚠️ Required Plugin

This skill requires the openclaw-wasm-sandbox plugin version >= 0.2.0.

The wasm-sandbox-download tool was added in version 0.2.0. If the plugin is not installed or version is lower:

openclaw plugins install clawhub:openclaw-wasm-sandbox
openclaw plugins update openclaw-wasm-sandbox
openclaw gateway restart

Verify the version:

openclaw plugins inspect openclaw-wasm-sandbox

Look for Version: 0.2.0 or higher in the output.

⚠️ WASM File Required

This skill requires the WASM component file to be downloaded first.

If the WASM file does not exist locally, use the wasm-sandbox-download tool to download it:

Step 0: Download WASM File

wasm-sandbox-download({
  url: "https://raw.githubusercontent.com/guyoung/wasm-sandbox-openclaw-skills/main/boxed-curl/files/boxed_curl_component.wasm",
  output: "\x3Cskill_dir>/files/boxed_curl_component.wasm",
  resume: false,
  timeout: 60000
})

Important: Set resume: false for initial download. The download destination is github.com which supports resume.

Tool: wasm-sandbox-run

Use the wasm-sandbox-run tool to execute the WASM component after the WASM file is available.

How It Works

  1. Check for WASM file — If not found, download using wasm-sandbox-download
  2. User provides curl-like arguments (URL with optional options)
  3. AI extracts the URL and any curl options
  4. AI determines allowedOutboundHosts based on the target host
  5. AI calls wasm-sandbox-run with the arguments and network permissions

Supported Features

Option Description Status
-X, --request METHOD HTTP method (GET, POST, PUT, DELETE, etc.)
-H, --header HEADER Add request header
-d, --data DATA Request body data
-i, --include Include response headers
-L, --location Follow redirects
-v, --verbose Verbose output
-o, --output FILE Output to file ⚠️ Not supported

Usage Pattern

Step 1: Extract Arguments

Parse the user's input:

  • URL — the target endpoint
  • curl options-X, -H, -d, etc.
  • allowedOutboundHosts — if user explicitly provided it

Step 2: Determine Network Access

If user did NOT specify allowedOutboundHosts, infer from URL:

URL Pattern allowedOutboundHosts
https://api.github.com/* https://api.github.com
https://httpbin.org/* https://httpbin.org
https://raw.githubusercontent.com/* https://raw.githubusercontent.com
Any HTTPS URL https://\x3Chost> (extract host from URL)

Step 3: Call wasm-sandbox-run

wasm-sandbox-run({
  wasmFile: "\x3Cskill_dir>/files/boxed_curl_component.wasm",
  allowedOutboundHosts: ["https://\x3Ctarget-host>"],
  args: ["\x3Ccurl options>", "\x3CURL>"]
})

Examples

GET Request

User says: "fetch data from https://httpbin.org/get"

wasm-sandbox-run({
  wasmFile: "\x3Cskill_dir>/files/boxed_curl_component.wasm",
  allowedOutboundHosts: ["https://httpbin.org"],
  args: ["https://httpbin.org/get"]
})

POST with JSON Body

User says: curl -X POST https://httpbin.org/post -H "Content-Type: application/json" -d '{"name":"value"}'

wasm-sandbox-run({
  wasmFile: "\x3Cskill_dir>/files/boxed_curl_component.wasm",
  allowedOutboundHosts: ["https://httpbin.org"],
  args: ["-X", "POST", "-H", "Content-Type:application/json", "-d", "{\"name\":\"value\"}", "https://httpbin.org/post"]
})

GET with Headers

User says: "fetch with custom Authorization header"

wasm-sandbox-run({
  wasmFile: "\x3Cskill_dir>/files/boxed_curl_component.wasm",
  allowedOutboundHosts: ["https://httpbin.org"],
  args: ["-H", "Authorization:Bearer token123", "https://httpbin.org/get"]
})

GitHub API Request

User says: "get GitHub user info for 'octocat'"

wasm-sandbox-run({
  wasmFile: "\x3Cskill_dir>/files/boxed_curl_component.wasm",
  allowedOutboundHosts: ["https://api.github.com"],
  args: ["https://api.github.com/users/octocat"]
})

GET with Response Headers

User says: "fetch with -i flag to see response headers"

wasm-sandbox-run({
  wasmFile: "\x3Cskill_dir>/files/boxed_curl_component.wasm",
  allowedOutboundHosts: ["https://httpbin.org"],
  args: ["-i", "https://httpbin.org/get"]
})

Important Notes

  • Always set allowedOutboundHosts — sandbox blocks all outbound HTTP by default
  • Download WASM first if missing — use wasm-sandbox-download tool
  • Extract host from URL automatically when user doesn't specify
  • Use /post endpoint for POST/get returns 405 Method Not Allowed
  • args order: curl options first, URL last
  • JSON in -d: escape quotes properly (e.g., {\"key\":\"value\"})
安全使用建议
This skill appears to do what it says (run HTTP requests inside a WASM sandbox), but it requires downloading and executing a WASM binary from a GitHub raw URL at runtime — that binary is not included in the package and cannot be audited from the SKILL.md alone. Before installing or using this skill: 1) verify the upstream repo and author (confirm the GitHub repo owner and history); 2) request or require a pinned checksum (SHA256) for the WASM file so you can verify integrity before execution; 3) ensure the openclaw-wasm-sandbox plugin is up-to-date and that its sandboxing/network restrictions meet your security requirements; 4) avoid sending secrets or long-lived tokens via this skill unless you trust the WASM component and have pinned its checksum; and 5) if you need stronger assurance, ask the publisher to include the WASM component in the skill bundle (or provide its source and a reproducible build) so it can be inspected locally. Additional information that would raise confidence to high: a published SHA256 for the WASM file, a trusted upstream repo with history, or the WASM source + reproducible build instructions.
功能分析
Type: OpenClaw Skill Name: boxed-curl Version: 1.0.0 The 'boxed-curl' skill facilitates HTTP requests via a WASM sandbox but requires the agent to download and execute an external binary from a third-party GitHub repository (SKILL.md). It also instructs the agent to perform high-privilege system actions if dependencies are missing, such as installing plugins and restarting the gateway service. While these behaviors are documented as necessary for the skill's functionality and include security-conscious features like network host allowlisting, the combination of remote payload execution and environment modification represents a significant supply chain and execution risk.
能力评估
Purpose & Capability
Name/description (sandboxed curl) lines up with the instructions: the skill requires a WASM sandbox plugin and a WASM component to execute HTTP requests with restricted outbound hosts. The declared dependencies (openclaw-wasm-sandbox plugin) are appropriate for the stated purpose.
Instruction Scope
Instructions are focused on parsing curl-like args, deriving allowedOutboundHosts, downloading a WASM file if missing, and calling wasm-sandbox-run. They do not ask for unrelated environment variables or secrets. However, the runtime flow includes fetching a remote binary and running it, which expands the actual attack surface beyond the prose (the WASM contents are not provided for review).
Install Mechanism
This is instruction-only (no install spec), but it requires downloading an executable WASM file from a remote URL (raw.githubusercontent.com). While GitHub raw is a well-known host and the download is coherent with needing a WASM component, fetching and writing an external binary to disk and executing it (even inside a sandbox) is a higher-risk install pattern because the binary's contents are not auditable here and could change upstream.
Credentials
The skill declares no environment variables, credentials, or config paths. Example usage includes sending Authorization headers as request data (normal for an HTTP client), but the skill does not request secret storage or unrelated credentials in metadata.
Persistence & Privilege
The skill does not request always:true and does not modify other skills or system-wide configs. Autonomous invocation remains possible (platform default) but is not combined with elevated persistence.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install boxed-curl
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /boxed-curl 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
boxed_curl v1.0.0 - Initial release providing sandboxed (WASM-based) execution of curl-like HTTP requests. - Supports GET, POST, HTTP headers, and request bodies, with per-host network isolation via allowedOutboundHosts. - Requires openclaw-wasm-sandbox plugin v0.2.0+ and a local boxed_curl_component.wasm file. - Includes automatic extraction of curl arguments and outbound host restriction based on the target URL. - Provides example usage patterns and options matrix; explicit documentation for setup and key usage tips.
元数据
Slug boxed-curl
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Boxed Curl 是什么?

Run curl requests safely in a sandbox, supporting GET/POST/HTTP headers, with complete network isolation. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 99 次。

如何安装 Boxed Curl?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install boxed-curl」即可一键安装,无需额外配置。

Boxed Curl 是免费的吗?

是的,Boxed Curl 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Boxed Curl 支持哪些平台?

Boxed Curl 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Boxed Curl?

由 guyoung(@guyoung)开发并维护,当前版本 v1.0.0。

💬 留言讨论