OpenCode WorkbenchBring your existing OpenCode coding agent into VS Code. OpenCode Workbench gives you a native place to chat, review changes, answer permission requests, plan work, and compare approaches without replacing the OpenCode runtime you already use. OpenCode still owns the models, agents, tools, sessions, permissions, and transcripts. Workbench makes those capabilities comfortable to use alongside your editor, source control, terminal, and debugger. What you can do
Workbench does not add another model loop, provider configuration, transcript database, terminal emulator, or browser. The normal OpenCode TUI remains available whenever you want it. Before you startYou need:
If OpenCode is new to you, install and configure it from the
OpenCode website, then confirm that InstallInstall OpenCode Workbench from the Visual Studio Marketplace, or install the VSIX from the latest GitHub release. The extension ID is Five-minute start
Workbench starts in managed mode. It finds your installed Open OpenCode: Open Chat in Editor when you want a wider conversation with the session and run rail. Your sidebar and editor surfaces stay synchronized. The header switches sessions and opens Needs Attention or the Inspector. The conversation stays in the center, while the composer at the bottom owns the exact draft, model, agent, permission mode, and attachments for that session. Editor mode adds a rail for sessions and model runs; the Inspector is a separate panel for activity, changes, context receipts, goals, runs, and walkthroughs. Everyday workflowsAsk, build, and follow upStart with ordinary prompts such as:
If a session is already working, the send menu lets you decide what the new instruction means:
Workbench keeps each session's draft and pending context separate. Background status, unread indicators, and Needs Attention help you move between active sessions without losing your place. Give OpenCode the right contextUse the paperclip, Run OpenCode: Attach Browser/Debug Context when you explicitly want to add a repository diagnostic summary, bounded VS Code debug metadata, a screenshot, one approved HTTP(S) URL, or one clipboard excerpt that you identify as console output, element metadata, or terminal/task text. Workbench sends the full approved URL to OpenCode but does not fetch it; the durable receipt keeps only a sanitized URL identity, without credentials, query, or fragment. The composer shows what will be sent. After admission, the conversation keeps a compact receipt describing the context—not a hidden copy of its contents. When OpenCode asks for permission, read the exact operation and choose whether to allow it once, allow the shown scope, or reject it. Incomplete or truncated permission detail cannot be approved. Plan before implementationRun OpenCode: Plan Task or use the Plan-first action in Workbench. A read-only OpenCode session prepares an untitled Markdown plan that you can edit without writing it into the repository. When it is ready, run OpenCode: Handoff Approved Plan and choose where the work should continue:
If you start editing while OpenCode is still preparing its answer, your draft is preserved and the generated plan opens separately for comparison. Start from a GitHub issue or pull requestRun OpenCode: Handoff GitHub Issue or Pull Request and paste a canonical GitHub URL. Workbench uses VS Code's existing GitHub sign-in to read a bounded snapshot of the title, metadata, body, and—for pull requests—changed files and available patch excerpts. It does not ask for or store a separate token. The recommended choice starts the task in an isolated worktree. The attached context document states any body, file, or patch limits and any sensitive-looking values that were redacted; the context receipt marks a partial snapshot explicitly. If GitHub Pull Requests and Issues is installed, Workbench can offer its native view or PR-changes surface after the handoff. See GitHub handoff for the exact contents, limits, and privacy behavior. Compare isolated approachesUse OpenCode: Compare Models to run one prompt in separate Git worktrees. Each run has its own OpenCode session, branch, status, and diff. The comparison shows elapsed time, changed files, diff totals, recorded tasks and diagnostics, goal/verifier state, and any reliable usage data. Missing evidence is labeled rather than guessed. Run OpenCode: Fuse Run Approaches when you want OpenCode to synthesize the recorded approaches. Fusion starts in a fresh isolated worktree with bounded source records; it does not merge, cherry-pick, push, or publish a result. If an isolated run opens in another VS Code window, its compact context receipt goes with it and recorded evidence can return to the original comparison. This continuity uses private, bounded metadata in the repository's Git data; it does not copy the prompt, attachments, task output, or source files. You decide which result to keep. Workbench never merges, cherry-picks, pushes, or publishes a run automatically. Dirty worktrees are retained until you deal with their changes explicitly. Understand and review changesUse these commands from the Command Palette:
Walkthrough and review links are tied to an exact diff and hunk. Workbench asks you to regenerate them when the repository changes instead of navigating with stale locations. Untracked files are included in working-tree reviews. Keep a goal movingCreate a goal with Use the Goal inspector or Managed and external serversManaged mode is recommended for most people. Every VS Code window gets its own loopback server and temporary credentials, and the process stops with the window. Choose Plain HTTP is accepted only for numeric loopback addresses. Remote servers must use HTTPS. Companion-plugin features are shown as unavailable when an external server does not advertise them. Useful settings
Privacy and safety
TroubleshootingWorkbench cannot find OpenCode Run The server takes too long to start Increase Models are missing OpenCode supplies the model catalog. Confirm the provider works in the normal OpenCode TUI, then run OpenCode: Refresh. Workbench does not infer provider subscriptions or invent unavailable models. A session or run needs input Open Needs Attention and select the permission, question, failed run, or connection problem. OpenCode: Show Health Center reports the current server, plugin, protocol, event-stream, and queue state. The sanitized trace command is available when a bug report needs lifecycle detail without prompt contents. An isolated worktree will not delete Workbench retains dirty worktrees deliberately. Commit, move, or discard the changes yourself, then run OpenCode: Remove Worktree. After removal, run OpenCode: Delete Removed Worktree Branch if you also want to delete its branch. More documentation
Development requires Deno 2.9 or newer. Contributors can start with
|