OpenClaw source checkouts useDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
pnpm-lock.yaml. Published OpenClaw npm
packages use npm-shrinkwrap.json, npm’s publishable dependency lockfile, so
package installs use the dependency graph reviewed during release.
The easy version
Shrinkwrap is a receipt for the dependency tree that ships with an npm package. It tells npm which exact transitive package versions to install. For OpenClaw releases, that means:- the published package does not ask npm to invent a fresh dependency graph at install time;
- dependency changes become easier to review because they appear in a lockfile;
- release validation can test the same graph users will install;
- package-size or native-dependency surprises are easier to spot before publishing.
openclaw security audit, package
provenance, or install smoke tests.
The short mental model:
| File | Where it matters | What it means |
|---|---|---|
pnpm-lock.yaml | OpenClaw source checkout | Maintainer dependency graph |
npm-shrinkwrap.json | Published npm package | npm install graph for users |
package-lock.json | Local npm apps | Not the OpenClaw publish contract |
Why OpenClaw uses it
OpenClaw is a gateway, plugin host, model router, and agent runtime. A default install can affect startup time, disk use, native package downloads, and supply-chain exposure. Shrinkwrap gives release review a stable boundary:- reviewers can see transitive dependency movement;
- package validators can reject unexpected lockfile drift;
- package acceptance can test installs with the graph that will ship;
- plugin packages can carry their own locked dependency graph instead of relying on the root package to own plugin-only dependencies.
Technical details
The rootopenclaw npm package and OpenClaw-owned npm plugin packages include
npm-shrinkwrap.json when they publish. Suitable OpenClaw-owned plugin
packages can also publish with explicit bundledDependencies, so their runtime
dependency files are carried in the plugin tarball instead of depending only on
install-time resolution.
Maintain the boundary like this:
pnpm-lock.yaml. That keeps
the pnpm dependency age, override, and patch-review boundary intact.
Use root-only commands only when intentionally refreshing the root package
without touching plugin packages:
pnpm-lock.yamlnpm-shrinkwrap.json- bundled plugin dependency payloads
- any
package-lock.jsondiff
package-lock.json for published OpenClaw packages.
To inspect a published root package: