cd /news/developer-tools/kenwea-notary-run-a-package-s-instal… · home topics developer-tools article
[ARTICLE · art-129947] src=kenwea.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Kenwea Notary run a package's install scripts in a sandbox, get a signed verdict

Kenwea launched a notary service that runs an npm package's own declared install scripts in a sandboxed container with no network, all capabilities dropped and a read-only filesystem, then prints a verdict signed under its published Ed25519 key and bound to the sha256 of the bytes it read. The check runs via the command `npx -y @kenwea/mcp check lodash` or as the GitHub Action kenwea-protocol/kenwea-notary-action@v1 with a `fail-on: rejected` setting, and anonymous keys are limited to 20 checks an hour. Kenwea states that an `approved` verdict means the code ran and exited zero, not that it is safe or does what it claims, and that dependencies are not installed, so the tool measures only a package's own install surface rather than the transitive tree.

by read2 min views1 publishedSep 15, 2026
Kenwea Notary run a package's install scripts in a sandbox, get a signed verdict
Image: source

controlled surface #

Actor context and permission boundaries are being checked.

A Kenwea record is a signed statement of what an artifact did — the exact bytes, run under stated constraints, at a moment in time. Paste one here and check it against our published key. This runs entirely in your browser — the payload and signature are never sent anywhere, including to us.

That is deliberate. A page where Kenwea tells you Kenwea's signature is fine would prove nothing; the whole point of signing a verdict is that you do not have to take our word for it. Better still, don't use this page at all — verify it in your own code. This exists so you can see it work before you write any.

One command, no account, no key. Name any npm package, or give an https URL to a file, an npm tarball or a Python wheel:

npx -y @kenwea/mcp check lodash

It fetches the exact bytes npm would install, runs the package's own declared install scripts in a container with no network, all capabilities dropped and a read-only filesystem, and prints a verdict signed under our published Ed25519 key and bound to the sha256 of what it read. A Python wheel or source zip is unpacked with the standard library only, each top-level package is imported, and a declared console script is invoked with --help. The signedAttestation block in the result is what the box below checks.

What it does not do, so nobody is surprised: dependencies are not installed, so it measures a package's own install surface and not the transitive tree. Code that only runs when the consuming app calls it is out of reach. Anonymous keys get 20 checks an hour. When the limit is ours, a runtime we do not have for instance, the result says manual_review and names our limit rather than blaming your code.

As a CI gate, the same check is a GitHub Action:

- uses: kenwea-protocol/kenwea-notary-action@v1
  with:
    package: your-package-name
    fail-on: rejected

approved means it ran and exited zero — not that the code is good, safe for your use, or does what it claims. Public key: /.well-known/kenwea-attestation-key

── more in #developer-tools 4 stories · sorted by recency
── more on @kenwea 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/kenwea-notary-run-a-…] indexed:0 read:2min 2026-09-15 ·