Getting started
Install and update
wb is the open source reference engine and command-line client for the Workbench standard. It is installed as workbench with wb as an alias. Native binaries are available for macOS and Linux on arm64 and x64. There is no Windows build.
Install#
curl -fsSL https://workbenches.dev/install.sh | shThe installer:
- verifies the release's published SHA-256 checksum,
- installs
workbenchto$XDG_BIN_HOMEwhen it is set, else~/.local/bin, and creates thewbalias, - never invokes
sudoand never edits shell startup files.
To read the installer before running it:
curl -fsSLO https://workbenches.dev/install.sh
less install.sh
sh install.sh
rm install.shInstaller options#
| Option | Effect |
|---|---|
--version <version> |
Install a specific release, prereleases included. |
--bin-dir <dir> |
Install somewhere else. WORKBENCH_INSTALL_DIR does the same. |
Flags passed through a pipe need sh -s --:
curl -fsSL https://workbenches.dev/install.sh | sh -s -- --version 1.0.0
curl -fsSL https://workbenches.dev/install.sh | sh -s -- --bin-dir ~/binThe default, latest, is the newest stable release by version among the 100 newest GitHub release records, which matches what wb update picks on a stable build.
Put it on PATH#
~/.local/bin is often not on PATH. If wb is not found after installing, add it for the current shell:
export PATH="$HOME/.local/bin:$PATH"Add the same line to your shell profile, such as ~/.zshrc or ~/.bashrc, to make it permanent.
Install the skills instead#
A coding agent can install and drive wb itself. Give it the four Workbench skills:
npx skills add pompeii-labs/workbenches| Skill | What it teaches |
|---|---|
wb-cli |
Install wb, connect credentials, and run, resume, and supervise Workbenches. |
wb-subagents |
Delegate bounded, checkable work to a Workbench and collect the result. |
wb-authoring |
Author, review, and trial a spec 1 Workbench package, gate first. |
wb-publishing |
Push a Workbench to your organization and submit it for public review. |
Install one skill globally with --skill and -g:
npx skills add pompeii-labs/workbenches --skill wb-subagents -gInstall a runner#
wb does not ship a model harness. Every Workbench names a runner, and the runner must be installed where the run happens: on the host for the local runtime, inside the image for docker, e2b, and daytona.
| Runner | Manifest name | CLI on PATH | Install |
|---|---|---|---|
| OpenCode | opencode |
opencode |
npm install -g opencode-ai |
| Pi | pi |
pi |
npm install -g @earendil-works/pi-coding-agent |
| Claude Code | claude-code |
claude |
npm install -g @anthropic-ai/claude-code |
As a non-root user, a global npm install can fail on the global prefix. Install to ~/.local instead and keep ~/.local/bin on PATH:
npm install -g --prefix ~/.local opencode-aiA missing runner fails before any model request:
Runner CLI is unavailable: opencode. Install opencode and rerun this command.The verified runner versions and what each supports are on Models and connections.
Check the install#
wb --version
wb update --checkBare wb prints command help. wb <command> --help prints the flags of your installed version.
Update#
wb update --check # report a newer release
wb update # replace the binary in placewb update updates the CLI. wb upgrade is a different command: it refreshes saved Workbench packages from their sources. See Find and inspect.
Anonymous counts#
The CLI reports anonymous save and run counts only for registry Workbenches published by an organization you hold no login for. Saves and runs of your own organizations' packages, local paths, GitHub sources, and private versions are never reported. A report carries the immutable version ID, the kind (save or run), the CLI version, and a timestamp, and no execution content.
Before the first report, the CLI prints once:
Workbench reports anonymous save and run counts for registry Workbenches published by other organizations. Set DO_NOT_TRACK=1 to disable.Set DO_NOT_TRACK to any non-empty value other than 0 to suppress every report and the notice.
Stability#
Within 1.x these do not change incompatibly: the spec 1 manifest, the --json event stream of run, resume, and attach, the wait --json result, the send, answer, and detached run and resume --json receipts, smoke --json, the documented exit codes, install.sh, and wb update. Everything else, including human-readable output and piped tab-separated output, may change in a minor version. Parse --json, never the human renderer. See JSON output.