Your IDE is not a control room. It’s a filing cabinet with autocomplete. If you’ve been bouncing between terminal tabs, Cursor chats, and half-reviewed diffs hoping the agent “just ships,” you’re fighting the wrong problem – and OpenChamber is what’s getting attention right now because it treats that mess as the default, not the exception.
I installed it last week after the same stack kept showing up in power-user threads: OpenCode underneath, OpenChamber as the multi-surface workspace on top. Desktop, browser/PWA, VS Code, phone. Same sessions. Same projects. Direct the agent, review the change, ship – without re-explaining the repo every time you stand up from the desk.
Code, prompts, diffs, and session content stay on your machine by default. OpenChamber is free and MIT open source; it runs on the OpenCode SDK and agent stack. Browser access can sit behind a UI password. Private Relay pairs devices over an outbound end-to-end encrypted path with a one-time QR and no open ports – tunnels like Cloudflare or Ngrok are still there if you need a public URL (openchamber.dev privacy notes and Private Relay docs).
Get OpenChamber running in one sitting
Pick a surface. Desktop is the full workspace. As of the Aug 2026 desktop builds (v1.18.x on the download page), it bundles a matching OpenCode CLI, so you’re not juggling two installs. Web/PWA and VS Code expect OpenCode already on your PATH, plus Node.js 22+ for the web path.
- Install OpenCode first (required for CLI, web, and the extension):
curl -fsSL https://opencode.ai/install | bash - Desktop: grab the build for your OS from openchamber.dev/download or GitHub Releases. Linux AppImages need execute permission:
chmod +x OpenChamber-*.AppImage. Missing FUSE (libfuse.so.2)? Run withAPPIMAGE_EXTRACT_AND_RUN=1. - Web/PWA:
curl -fsSL https://raw.githubusercontent.com/openchamber/openchamber/main/scripts/install.sh | bash, thenopenchamber --ui-password your-strong-pass. Open the URL it prints (usuallyhttp://localhost:3000). - VS Code: install OpenChamber (publisher FedaykinDev) from the Marketplace, open the sidebar, and sign into your usual OpenCode workflow. Right-click actions cover Add to Context / Explain / Improve Code; Agent Manager handles parallel multi-model runs.
Connect a provider inside OpenCode the way you already would – API keys, GitHub Copilot login, ChatGPT Plus/Pro, or free/local options OpenCode exposes. OpenChamber does not invent a second billing layer; it drives whatever OpenCode can already reach.
Pro tip: Also use the OpenCode TUI? Start the server yourself first:
opencode serve --port 4096. OpenChamber probes127.0.0.1:4096and attaches when a server is there. If not, it quietly spawns its own – and TUI/GUI sessions stop lining up. Community power-user write-ups hammer this one for a reason.
Your first real session (not a toy prompt)
Open a project folder. Create a session. Don’t ask it to “build a todo app.” Give it a finish line you can verify.
Add integration tests for the CSV export path in src/export.
Make the full test suite pass. Do not change public API signatures.
When green, summarize what you added and which edge cases you covered.
Watch the tool cards and terminal. File paths in output should open in the editor on desktop and VS Code. When the agent stops, you get a real diff surface instead of scrolling a wall of patches. Supervision and review – not another chat box with syntax highlighting.
First multi-file refactor that lands clean still feels weirdly calm. You’re grading work, not spelunking a transcript.
Session Goals: leave the desk without babysitting
Arm the target button in the composer, type the objective, send. That message becomes the goal. After each quiet pause, a small/cheap model audits the latest turn: keep going, done, or stuck. Keep-going fires a continuation. Done notifies you. Stuck only after three consecutive stuck verdicts – a one-off snag won’t kill the run. One goal per session. Optional token budget under Settings → Chat → Goal. Your explicit stop always wins.
Docs spell out the sharp edge: the auditor sees only the objective text and the latest reply – not full chat history (Session Goals docs). Phrase it like a ticket a stranger could grade:
- Good: “Add tests for the export module and make the whole test suite pass.”
- Bad: “Fix it” or “Continue with that idea.”
The loop runs on the OpenChamber server (desktop app or openchamber process), not in the browser tab. Close the lid after pairing your phone – the agent keeps working until complete, blocked, or budget hit. Closing a tab is fine. Stopping the desktop app or CLI process is not; Goals die mid-flight with the server.
Multi-run and Fusion when one model isn’t enough
Open multi-run from the top of the session sidebar. One prompt, up to five models, each in its own session. Isolate runs gives every run its own git worktree and branch so they don’t stomp the same files – and it auto-disables on non-git folders. No repo, no isolation, no warning banner you’ll remember at 1 a.m.
| Mode | What you get | Watch-out |
|---|---|---|
| Shared folder | Fast parallel attempts | Files can collide |
| Isolated worktrees | Clean branches per model | Git repo required; silent disable otherwise |
| Fusion | Strongest pieces folded into a follow-up session | Still your review before anything merges |
If one model fails to start, the others still launch. Don’t wait on a dead provider. Keep the winner, or fuse and keep grading.
Common pitfalls (the ones that waste an evening)
Most “it’s buggy” nights map to a short list – not mysterious UI ghosts.
- Two OpenCode servers. Fix the 4096 attach order before you blame the chrome.
- Vague goals. Rewrite the objective. Spamming “continue” doesn’t feed the auditor more context.
- Exposing without a password. Localhost is default. Use
--ui-password(and only--lanon a trusted network). Prefer Private Relay for paired phones over random public tunnels when you can. - Non-git isolate. You’ll think multi-run gave you safety it silently didn’t.
- Linux AppImage + FUSE. No
libfuse.so.2means extract-and-run, or the binary just sits there looking broken.
Earlier community threads (including r/opencodeCLI) reported agent settings resetting after refresh and UI freezes that needed a hard reload. Some users said later builds fixed those; treat settings persistence as something you verify after an update, not something you assume forever.
What “good” actually feels like
After a few days the rhythm is: start a goal on a hard task, multi-run the risky design choice across two strong models, walk the winning diff, answer a blocker from your phone on Private Relay. Token and cost surfaces in the UI help you see which sessions are expensive before they surprise you.
It’s not magic latency. It’s less context loss when you switch device or tool.
When you should not use OpenChamber
Only ever want a single inline completion inside one editor? You don’t need this. Org forbids any local agent stack with shell access? OpenChamber doesn’t remove that trust boundary – it makes the boundary visible. Need a fully managed cloud agent with zero local process? This is local-first supervision of OpenCode, not a hosted Devin clone. Allergic to early-product roughness? Pin a version and read the changelog before upgrading mid-sprint.
FAQ
Is OpenChamber free, and do I still pay for models?
Yes. OpenChamber itself is free. You pay (or not) for whatever you already configured in OpenCode.
Desktop vs web vs VS Code – which should I start with?
One machine, all day: desktop. Phone on the couch or a second laptop: web/PWA with a UI password, Private Relay pairing if you can, tunnel if you must. Living in the editor with right-click context actions: VS Code extension. I started on desktop, added the extension for tight file jumps, kept web for reviews. Attach everything to one OpenCode server on 4096 if you want the sessions to stay shared.
Do Session Goals keep running if I close the browser?
Yes – with one condition people miss. The OpenChamber server process has to stay up (desktop app or openchamber CLI). Tabs can die. The process cannot. You get a completion/blocked/budget notification when the goal settles, not a ping every turn. That’s the unsupervised loop working as designed, not a missing progress spam feature.
Download the desktop build (or run the web install), point it at a real repo, and arm one Session Goal with a self-contained objective before you touch multi-run. That single loop teaches you more about this agentic development environment than another feature list ever will.