Choose to install the CLI from the package manager or the source code.
For example:
npm install -g @workbench-codes/workbenchIf you have cloned the repo and you don't want to install the package from npm (or other sources) then this is how you install the package.
cd packages/workbench-cli
bun install
bun linkSee packages/workbench-cli/README.md for full CLI documentation.
Important
Run the following command in a folder where workbench folder should be created.
workbench --initThis launches an interactive flow to fork, clone, and wire up your repositories.
A generic development workbench for setting up and maintaining multiple projects from a single repository.
The repository acts as a hub: engineers fork it, configure their code and resource repositories as submodules, and get a consistent environment across the team.
| Folder | Purpose |
|---|---|
.opencode/ |
Slash commands, workflow sub-agents, skills, and MCP configuration |
packages/workbench-cli/ |
The workbench CLI tool (TypeScript, Bun) |
projects/ |
Git submodules for code repositories |
resources/ |
Git submodules for documentation/resource repositories |
scripts/ |
Placeholder for helper scripts |
thoughts/ |
Planning notes, research, and ticket documentation (Not checked in) |
Note
At the moment only OpenCode is supported. Support for ClaudeCode will be added soon.
Once your workbench is set up, the primary way to work on issues is through OpenCode using the built-in slash commands. These commands implement a structured flow from issue analysis through to review.
- OpenCode installed
- A configured project management tool (see Project Management below)
/implement
/implement is the end-to-end orchestrator. It resumes from the issue's
current status label and runs the remaining commands automatically.
Each /implement run also creates a PM document with an implementation report.
Manual flow remains available:
/ticket → /research → /plan → /execute → /review → /commit
Each command takes an issue ID as its argument and is best run in a fresh OpenCode session:
| Command | What it does |
|---|---|
/ticket {issue-id} |
Structures an issue for development |
/research {issue-id} |
Researches the codebase in context of the issue |
/plan {issue-id} |
Creates a detailed implementation plan |
/execute {issue-id} |
Implements the plan |
/review {issue-id} |
Reviews the execution against the plan |
/implement {issue-id} [ticket|research|plan|execute|review|commit] |
Orchestrates all remaining workflow steps, optionally bounded to a stop-step |
/commit |
Commits the changes in atomic commits, ready for review |
Under the hood, each slash command is powered by a dedicated sub-agent:
- ticketer — powered by
/ticket. Handles interactive Q&A, scope boundary exploration, and ticket writing. - researcher — powered by
/research. Runs a multi-phase pipeline to locate, pattern-match, and analyze relevant code in the codebase. - planner — powered by
/plan. Interacts on design decisions and writes detailed phased implementation plans. - executer — powered by
/execute. Implements phases sequentially, tracks deviations from the plan, and writes execution notes. - reviewer — powered by
/review. Validates the implementation against plan specifications and writes review reports. - committer — powered by
/commit. Creates atomic git commits with conventional messages and issue trailers.
/implement orchestrates these sub-agents automatically, advancing through the workflow based on the issue's current status label.
# Manual flow
/ticket PAP-1234
/research PAP-1234
/plan PAP-1234
/execute PAP-1234
/review PAP-1234
/commit
# Orchestrated flow
/implement PAP-1234
# ONLY for GitHub Issues we also need to pass the {owner}/{repo}
# Thisis needed because GitHub issues are unique in scope of a repository
/implement 54 workbench-codes/workbench
# or up to a stage
/implement 54 plan workbench-codes/workbench
# Orchestrated flow with optional stop-step bound
/implement PAP-1234 research/implement accepts an optional stop-step (ticket|research|plan|execute|review|commit).
Input is case-insensitive, normalized to lowercase, and must not be earlier than the issue's current status progression.
The commands are defined in .opencode/command/ and can be customised for your own workflow.
The workbench supports multiple project management backends. The active backend is configured in .workbench/settings.yml via the project_management field:
project_management: github-issuesSupported PM tools are:
- Linear (
linear) - GitHub Issues (
github-issues)
Authentication and setup instructions vary by backend — refer to the relevant PM tool's documentation for authentication steps.
The setup wizard optionally indexes your repositories with ck — a hybrid code search tool by BeaconBay that fuses lexical (BM25/grep) precision with embedding-based recall, so you can find the right code even when the exact keywords aren't there.
The workbench is periodically updated with improvements to slash commands, skills, schemas, and documentation. To fetch the latest managed files from the source repository, run workbench --sync from your workbench root:
workbench --syncSync clones the source, applies the configured file paths (.opencode/, .workbench/schemas/, README.md), and auto-commits changes with a chore message. An interactive confirmation prompt lets you review and abort before any files are overwritten.
Sync requires an initialized workbench (created via workbench --init) and a clean working tree. Run periodically to stay updated.
See packages/workbench-cli/README.md for full flag documentation and troubleshooting.
To set up the workbench CLI for local development:
cd packages/workbench-cli
bun install
bun tsc --noEmitThis installs dependencies and runs the TypeScript type checker. See CONTRIBUTING.md for the full development workflow, build commands, and PR submission guide.
workbench is inspired by Cluster444/agentic, which pioneered the idea of a structured agentic development workflow using slash commands.
Contributions are welcome. See CONTRIBUTING.md for setup instructions, the development workflow, and how to submit a PR.
Please read our Code of Conduct before participating.
MIT — see LICENSE.