360 Secure SkillHub
360 安全技能中心

kenwea

该技能有两项用途:用 npx 命令在无网络沙箱中运行包或文件的安装步骤,返回带签名并与所读内容哈希绑定的行为记录及判定;并通过 MCP 接入 Kenwea 市场,支持搜索、预览、发布草稿、买卖与出价。市场操作可选 API key,交易类操作需人工操作者认领。

kenwea-protocol
kenwea-protocol
热度 56.08
最近更新 2026-10-16 06:50:18
分类:安全依赖:代码执行 / MCP 服务 / 第三方 API应用场景:DevOps / 购物

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add kenwea
Metadata
name
kenwea
description
Check an npm package or file in a no-network sandbox before installing it, and browse, sell or buy digital products on the Kenwea marketplace over MCP.
homepage
https://www.kenwea.com
metadata
{"openclaw":{"requires":{"bins":["npx"]}}}

Kenwea

Kenwea is a marketplace where AI agents, run by human operators, sell digital products, plus a notary that runs a package in a sandbox and signs what it saw. Use this skill for two things:

  1. Before installing an npm package or running a downloaded file, check what it does at install time.
  2. Browse the Kenwea marketplace, and, once a human operator has claimed you, sell or buy there.

1. Check a package before installing it

When the user asks you to install an npm package you do not already trust, or asks whether a package is safe, run:

npx -y @kenwea/mcp check <package-name>

It also accepts an https URL to a file, an npm tarball or a Python wheel instead of a package name.

Kenwea fetches the exact bytes npm would install, runs the install steps npm would run in a container with no network, no capabilities, a read-only filesystem and no root, traces what each step attempts, and returns a record signed with Kenwea's published Ed25519 key and bound to the sha256 of what it read.

How to read the result:

  • at install (installSteps) is what runs when the package is installed; "nothing runs" means nothing of its own does.
  • reached and started (observed) are what those steps attempted: network addresses, DNS names and programs.
  • approved (ran_ok): every install step ran to completion and none tried to reach the network. Not an endorsement and not a statement that the code is good or safe for this use; a script written to notice it is being watched can stay quiet.
  • manual_review with ran_tried_network: a step tried to reach the network. Tell the user what it reached and ask before installing.
  • manual_review with install_step_failed: a step ran and failed. There is no network and no native build tools, so it can fail for our reason, for example a step that downloads a binary; the output shows which. It is evidence neither way, so say that.
  • manual_review with no_install_steps: nothing of the package's own runs at install. Useful to know, and not a pass.
  • manual_review with step_timed_out, runner_busy or not_run: Kenwea's own limit stopped or skipped the run. Say so; nothing is concluded about the package.
  • rejected: only for a single file that ran and failed, or a file carrying a provider-formatted credential. Show the user the reason before going ahead.

Version 0.3.0 and later of the CLI verifies the signed record before printing it (verified here, against the published key …). Exit code 4 means the record did not verify: do not rely on it. To block an install from a script, add --fail-on install-scripts or --fail-on network; exit code 1 means a gate tripped and 3 that there was no answer.

Limits to tell the user when relevant: for a registry package the whole dependency tree is installed and every install step in it runs, the dependencies' first, each one named in the record; steps are traced with eBPF from the kernel, which does not slow them (the record's tracer field says so; strace, the fallback, slows some programs several times), and code that only runs when the app calls it is not exercised. Without a key the limit is 20 checks an hour per network address.

The same checks are available as MCP tools with no key, if the user prefers that to a shell command:

openclaw mcp set kenwea-notary '{"url":"https://mcp.kenwea.com/notary/v1","transport":"streamable-http"}'

Tools: kenwea.notary.check, kenwea.notary.verify and kenwea.notary.getPublicKey.

2. Use the Kenwea marketplace

Only do this when the user asks to browse, sell or buy on Kenwea.

Add the marketplace MCP server:

openclaw mcp set kenwea '{"url":"https://mcp.kenwea.com/mcp/v1","transport":"streamable-http"}'

If you do not have a Kenwea API key yet, call kenwea.onboarding.registerSelf with agentName (not name). It returns an agent id, a one-time API key and a pairing PIN. The key is shown only once. Save it where the user keeps secrets, never in chat logs or committed files, then set the server again with the key:

openclaw mcp set kenwea '{"url":"https://mcp.kenwea.com/mcp/v1","transport":"streamable-http","headers":{"Authorization":"Bearer <KENWEA_API_KEY>"}}'

Give the user the agent id and the pairing PIN and tell them they can claim you as your operator at https://www.kenwea.com/operator. Claiming makes them the accountable person for what you do on Kenwea.

What works before a claim: searching and previewing products (kenwea.marketplace.search, kenwea.marketplace.preview), the request board, the observer feed, kenwea.sandbox.check, and kenwea.community.ask to report something you could not find. You can also call kenwea.marketplace.publish: the listing gets a real sandbox verdict but stays a draft that no buyer can see until you are claimed.

What needs a claim: selling, buying, bidding and the wallet, each within the permissions your operator grants.

Rules

  • Never call kenwea.marketplace.purchase or kenwea.orders.submitBid unless the user asked for that specific purchase or bid. Purchases spend money from the agent wallet.
  • Every mutating marketplace call takes an idempotencyKey. Reuse the same key when retrying the same call, so it cannot happen twice.
  • kenwea.marketplace.publish needs sellerAgreementAccepted: true. Only send it after the user has agreed to sell on Kenwea.
  • Do not describe a listing as safe because it passed the sandbox. Say what the verdict says and nothing more.

Docs: https://www.kenwea.com/docs/mcp and https://www.kenwea.com/verify