TackRoom
A full chat GUI for AI coding agents, right inside VS Code. TackRoom currently runs OpenCode, the open-source coding agent, and more agent backends are planned.
Chat in editor tabs, attach files with @, review every change in VS Code's diff editor, switch models in one click, and keep using your Claude Code skills, plugins, MCP servers and CLAUDE.md.

Features
- Chat in editor tabs. Open as many sessions as you like, side by side. Responses stream in with Markdown, file edits show an inline diff, and commands show their output. Tabs come back after a reload.
- Context with
@. The current file is attached automatically. Type @ to add files, folders, symbols, your selection or the Problems list, or press Ctrl+Alt+K (Cmd+Alt+K on Mac) to attach the selection.
- Skills and commands with
/. Skills, custom commands and MCP prompts in one searchable menu.
- Review every change. Each file the agent touches can be opened in the diff editor and kept or undone, one at a time or all at once.
- Any model. Searchable model picker with favorites. Sign in with ChatGPT Plus/Pro or GitHub Copilot, use API keys (OpenAI, Anthropic, OpenRouter, …) or your company's LiteLLM endpoint.
- Session history. Sessions are grouped by day with live status. Resume any conversation where you left off.
- Permissions inline. When the agent wants to run something like
git push, answer right in the chat: allow once, always, or reject.
- Claude Code compatibility. One checkbox each for your Claude Code plugins, skills, MCP servers, instruction files, permission rules and hooks. Details
- Plan limits (optional). See how much of your ChatGPT, Claude, Copilot, LiteLLM or OpenRouter allowance you've used, right in the status bar.
Requirements
Getting started
- Open a folder and click the OpenCode icon in the activity bar. TackRoom starts OpenCode for the workspace in the background.
- Connect a model with OpenCode: Connect Provider / Login from the command palette:
- ChatGPT Plus/Pro: choose OpenAI → ChatGPT Pro/Plus (browser) and sign in.
- API key: choose the provider, then Manually enter API Key. Keys are kept in OpenCode's own store, not in VS Code settings.
- Company LiteLLM: run OpenCode: Add LiteLLM Provider and enter the URL and key.
- Pick a model under the input box (star it to pin it to Favorites), type a message and press Enter.
- When the agent edits files, a "N files changed" bar appears. Click a file to see the diff, then keep or undo it.
New to OpenCode? The illustrated guide walks through installing it and connecting ChatGPT, API keys, LiteLLM and MCP servers. For offline or work-PC installs, see INSTALL.md.
Settings
| Setting |
Default |
Description |
opencode.server.mode |
spawn |
spawn starts OpenCode for you; connect uses a server you already run at opencode.server.url. |
opencode.server.url |
http://127.0.0.1:4096 |
Server for connect mode. Set its password with OpenCode: Set Password for External Server. |
opencode.server.binaryPath |
opencode |
Path to the OpenCode CLI if it isn't on your PATH. |
opencode.server.env |
{} |
Extra environment variables for OpenCode, e.g. HTTPS_PROXY. |
opencode.server.autoStart |
true |
Start OpenCode when VS Code starts. |
opencode.chat.defaultModel / defaultAgent |
– |
Defaults for new sessions (provider/model, agent name). |
opencode.chat.skillsAsSlashCommands |
true |
Offer skills in the / menu. |
opencode.sessions.scope |
folder |
folder shows sessions from this folder only; project shows every session of the repository. |
opencode.sessions.showUsage |
true |
Show tokens, cost and size in the Sessions view. |
opencode.litellm.baseUrl |
– |
Pre-fills Add LiteLLM Provider. |
opencode.limits.enabled |
false |
Show plan limits in the status bar and the chat's details column. |
opencode.limits.refreshMinutes |
5 |
How often plan limits refresh. |
opencode.compat.configTarget |
managed |
Where Claude Code compatibility settings are saved. managed keeps your repository untouched. |
More settings (server port, username, Claude Code auto-loading) are listed in VS Code's Settings editor under OpenCode.
Commands
Open the command palette and type OpenCode:
- Sessions: New Chat (
Ctrl+Alt+N in a chat), Open Session, Search Sessions…, Resume Last Session, Rename Session, Delete Session
- Chat: Focus Chat (
Ctrl+Alt+O), Open Chat to the Side, Add Selection (or File) to OpenCode Chat (Ctrl+Alt+K)
- Models: Select Model, Select Agent, Connect Provider / Login, Add LiteLLM Provider, Update LiteLLM Model Prices
- Changes: Accept All OpenCode Changes, Reject All OpenCode Changes
- Plan limits: Show Plan Limits, Refresh Plan Limits
- Server: Start / Connect Server, Stop Server, Restart Server, Show Server Log
On macOS, use Cmd+Alt instead of Ctrl+Alt.
Privacy and security
- OpenCode runs locally on
127.0.0.1 with a random password per session, so other programs on your machine can't drive it.
- Your prompts go only to the model provider you connect. TackRoom has no telemetry.
- Undo only restores content it has seen, so it never deletes a file it didn't see being created.
- Plan limits are off by default. When on, each stored token or key is sent only to the provider it belongs to.
- Hooks from your Claude Code settings run real commands. Only enable hooks you trust.
Using this at work? Check your company's policy before using a personal ChatGPT subscription with company code. A company LiteLLM endpoint is usually the right choice.
Troubleshooting
- "Could not start opencode": install the OpenCode CLI (see Requirements) or set
opencode.server.binaryPath.
- No models in the picker: connect a provider (Getting started, step 2), or run
opencode models in a terminal.
- Compatibility toggles seem ignored with an external server: set
opencode.compat.configTarget to project.
- Anything else: run OpenCode: Show Server Log, and see INSTALL.md § Troubleshooting.
Feedback
Found a bug or have an idea? Open an issue. Want to help build it? See CONTRIBUTING.md.
TackRoom is a community project and is not affiliated with the OpenCode team. MIT licensed.
| |