* Install ClawHub packages for new Claw agents * test(claws): cover skill and plugin installation * docs(claws): document package artifacts * fix(claws): bind package trust preflight * fix(claws): bind package capability consent * fix(claws): satisfy package type guards * test(claws): update package installer fixtures * test(claws): complete package plan fixtures * test(claws): model complete ClawHub results * fix(claws): serialize plugin ownership changes * fix(claws): cover legacy plugin lifecycle updates * fix(claws): preserve legacy ClawHub update selectors * test(claws): type lifecycle lease mock * refactor(claws): isolate plugin update lifecycle * fix(claws): declare managed installer coordination * test(claws): preserve partial collision result * test(claws): clean installer temp dirs --------- Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
4.2 KiB
summary, read_when, title
| summary | read_when | title | ||
|---|---|---|---|---|
| Validate, preview, and add experimental Claw agent packages |
|
Claws |
openclaw claws
A Claw is a versioned setup for one new OpenClaw agent. It can describe the agent configuration, workspace files, skills, plugins, MCP servers, and cron jobs that agent needs. A Claw does not replace or modify an existing agent.
Claws are experimental. Their schema, command output, and lifecycle may change. Enable the command surface explicitly:
export OPENCLAW_EXPERIMENTAL_CLAWS=1
The current CLI reads a local package directory or grouped JSON manifest. Publishing, searching, and installing whole Claws through ClawHub are a separate registry track and are not part of this command surface yet.
Create a grouped manifest
Start with a version 1 JSON manifest:
{
"schemaVersion": 1,
"agent": {
"id": "incident-triage",
"name": "Incident triage",
"tools": { "deny": ["exec"] }
},
"workspace": { "bootstrapFiles": {} },
"packages": [],
"mcpServers": {},
"cronJobs": []
}
Package and workspace paths must remain inside the package root. Manifests are limited to 1 MiB, package metadata to 256 KiB, and workspace sources enforce separate per-file and aggregate limits. Workspace sources also reject symlinked parents.
Workspace files are declared by path and read from package sidecars. Bootstrap
files such as SOUL.md use named entries; additional files use package-relative
sources and workspace-relative targets:
{
"workspace": {
"bootstrapFiles": {
"SOUL.md": { "source": "workspace/SOUL.md" }
},
"files": [
{
"source": "workspace/reference/policy.md",
"path": "reference/policy.md"
}
]
}
}
Skills and plugins use exact ClawHub versions:
{
"packages": [
{
"kind": "skill",
"source": "clawhub",
"ref": "incident-triage",
"version": "1.0.0"
},
{
"kind": "plugin",
"source": "clawhub",
"ref": "@acme/audit-plugin",
"version": "2.0.0"
}
]
}
The dry run uses the existing skill and plugin preflight paths to resolve the exact artifact, integrity, and any ClawHub trust warning before consent. The warning remains visible in the integrity-bound plan. Apply installs missing artifacts or reuses matching ones and records whether the Claw introduced or referenced each resource. Plugins remain process-wide OpenClaw capabilities rather than per-agent installations.
Inspect and preview
Validate the source without planning local changes:
openclaw claws inspect ./incident-triage.claw.json
Preview all proposed lifecycle actions:
openclaw claws add ./incident-triage.claw.json --dry-run --json
The plan reports the derived agent and workspace, every proposed action,
prerequisites, blockers, distinct capability escalations, and a planIntegrity
digest. Capability records show the exact package, MCP, scheduled-work, sandbox,
tool, or heartbeat effect. Review the plan before creating the agent:
openclaw claws add ./incident-triage.claw.json \
--yes \
--plan-integrity <SHA256_FROM_DRY_RUN>
--yes alone is insufficient. OpenClaw rebuilds the plan and rejects consent
when the source, destination, or live configuration changed after preview. Use
--agent-id or --workspace during both preview and apply when package
defaults collide with local state.
Adding a Claw creates the new agent and workspace configuration, writes declared workspace files, installs or reuses declared skill and plugin artifacts, and records provenance. Existing files are not overwritten, and retries fail closed when owned content drifted. Later Claws stages add other declared resources.
Command reference
| Command | Purpose |
|---|---|
claws inspect <source> |
Validate a package directory or JSON manifest. |
claws add <source> |
Preview or create one new agent and workspace. |
Use --json for experimental machine-readable output.