openclaw-full
| Version | 2026.200.1600 |
| Repo | superproject |
Maximal headless OpenClaw deployment — gateway plus all feasible CLI tools/skills, no system Chrome/CDP openclaw-full is a pure meta-composition candy: it installs nothing of its own and instead composes 27 candies — the openclaw gateway, the claude-code CLI, and 25 tool candies (codex, gemini, clawhub, mcporter, oracle, xurl, summarize, playwright, ripgrep, sqlite, tmux, ffmpeg, gh, uv, himalaya, …). The observable effect of the composition is that every composed tool’s key artifact lands in ONE image: the openclaw / mcporter binaries under ~/.npm-global/bin, the claude binary under /usr/local/bin (native installer, relocated at build time so it survives the deploy-time home-volume mount), uv under /usr/local/bin, and rg / sqlite3 / tmux / ffmpeg / gh under /usr/bin. The scenarios and check block assert that cross-section — they FAIL if any composed candy is dropped from the metalayer. The gateway’s own port reachability is already checked by the composed openclaw candy and rides along.
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
check |
the claude-code CLI is composed into the image under the native install location |
check |
claude –version exits cleanly and prints the Claude Code banner |
check |
the mcporter MCP CLI is composed into the image |
check |
ripgrep’s rg binary is present from the composed ripgrep candy |
check |
the sqlite3 shell is present from the composed sqlite candy |
check |
tmux is present from the composed tmux candy |
check |
ffmpeg is present from the composed ffmpeg candy |
check |
the GitHub CLI gh is present from the composed gh candy |
check |
the uv Python package manager is composed into the image at /usr/local/bin/uv |
agent-check |
the running OpenClaw gateway exposes the bundled CLI tools to agent requests without relying on a system browser |
check |
package=ripgrep |
check |
file=/usr/bin/git |
check |
file=/usr/local/bin/uvx |