Worktree Tools
OpenCode plugin: git worktree tools for the agent, in the same place Claude Code puts worktrees. No terminals, no prompt injection.
0
162
16 in 7 days
33.0
Multi-signal model
17 days ago
2026-10-04
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-worktree-tools@0.1.0"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-worktree-tools@0.1.0"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencode-worktree-toolsOpenCode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
Gives the agent three tools to make, list and remove git worktrees, so parallel or risky work happens in its own checkout instead of your working tree. It's the OpenCode counterpart of Claude Code's worktrees, and it puts them in the same place: <repo>/.claude/worktrees/<name>.
It stays out of the way:
- Tools only. Nothing is added to the system prompt, so the model reaches for a worktree when isolation actually helps, not on every task.
- No new terminals or sessions. The session keeps running where it is and works in the worktree by using its absolute path as the shell
workdirand in file paths. - Your repo isn't edited.
.claude/worktrees/is ignored through.git/info/exclude, not.gitignore. - Nothing is lost on cleanup. Removing a worktree refuses when it has uncommitted changes (unless
forceis set), and its branch is only deleted when it's fully merged.
Tools
| Tool | What it does |
|---|---|
worktree_create |
Creates .claude/worktrees/<name> on branch <name>, from the current HEAD or a given base. |
worktree_list |
Lists those worktrees with their branch and whether they have uncommitted changes. |
worktree_remove |
Removes one, and deletes its branch only if it's merged. |
Dependencies such as node_modules aren't copied into a new worktree; the agent is told to install them there if needed.
Install
opencode plugin opencode-worktree-tools -g
Drop -g for the current project only. Restart OpenCode afterwards; plugins load at startup.
Without npm
mkdir -p ~/.config/opencode/plugins
curl -fsSL https://raw.githubusercontent.com/moritzWa/opencode-worktree-tools/main/index.js \
-o ~/.config/opencode/plugins/worktree-tools.js
Files in ~/.config/opencode/plugins/ load automatically. The plugin imports @opencode-ai/plugin, which OpenCode installs into that config folder.
License
MIT
Similar plugins
Scionwood
scionwood
Worktrees for opencode that pull down code you didn't write — each with its own index
Branch Guard
opencode-branch-guard
OpenCode plugin: allows, asks, or blocks git mutations (commit, push, merge, rebase, ...) based on the current branch or repository, so protected branches stay clean.
Cd
opencode-cd
OpenCode TUI plugin for changing the current session directory