Web and desktop interface for the OpenCode AI coding agent. Works alongside the OpenCode TUI.
The OpenCode team is actively working on their own desktop app. I still decided to release this project as a fan-made alternative.
It was entirely built with OpenCode tool - first with the TUI version, then with the first usable version of OpenChamber, which I then used to build the rest.
The whole project was built entirely with AI coding agents under my supervision. It started as a hobby project and proof of concept that AI agents can create genuinely usable software.
- Cross-device continuity: Start in TUI, continue on tablet/phone, return to terminal - same session
- Remote access: Use OpenCode from anywhere via browser
- Familiarity: A visual alternative for developers who prefer GUI workflows
- Branchable chat timeline with
/undo,/redo, and one-click forks from earlier turns - Smart tool UIs for diffs, file operations, permissions, and long-running task progress
- Voice mode with speech input and read-aloud responses for hands-free workflows
- Multi-agent runs from one prompt with isolated worktrees for safe side-by-side comparisons
- Git workflows in-app: identities, commits, PR creation, checks, and merge actions
- GitHub-native workflows: start sessions from issues and pull requests with context already attached
- Plan/Build mode with a dedicated plan view for drafting and iterating implementation steps
- Inline comment drafts on diffs, files, and plans that can be sent back to the agent
- Context visibility tools (token/cost breakdowns, raw message inspection, and activity summaries)
- Integrated terminal with per-directory sessions and stable performance on heavy output
- Built-in skills catalog and local skill management for reusable automation workflows
- Cloudflare tunnel access with two modes: Quick Tunnel (CLI) and Named Tunnel (in-app settings)
- One-scan onboarding with tunnel QR + password URL helpers
- Mobile-first experience: optimized chat controls, keyboard-safe layouts, and attachment-friendly UI
- Background notifications plus reliable cross-tab session activity tracking
- Built-in self-update + restart flow that keeps your server settings intact
- Native macOS menu integration with polished app actions and deep-link handling
- Multi-window support for parallel project/session workflows
- "Open In" shortcuts for Finder, Terminal, and your preferred editor
- Fast switching between local and remote instances
- Workspace-first startup flow with directory picker and steadier window restore behavior
- Editor-native workflow: open files directly from tool output and keep sessions beside your code
- Agent Manager for parallel multi-model runs from a single prompt
- Right-click actions to add context, explain selections, and improve code in-place
- In-extension settings, responsive layout, and theme mapping that matches your editor
- Hardened runtime lifecycle and health checks for faster startup and fewer stuck reconnect states
Create your own color schemes by dropping JSON files into ~/.config/openchamber/themes/. Hot reload supported — no restart needed.
Install from VS Code Marketplace / Open VSX Registry or search "OpenChamber" in Extensions.
# Quick install (auto-detects your package manager)
curl -fsSL https://raw.githubusercontent.com/btriapitsyn/openchamber/main/scripts/install.sh | bash
# Or install manually
bun add -g @openchamber/web # or npm, pnpm, yarnopenchamber # Start on port 3000
openchamber --port 8080 # Custom port
openchamber --daemon # Background mode
openchamber --ui-password secret # Password-protect UI
openchamber --try-cf-tunnel # Create a Cloudflare Quick Tunnel for remote access
openchamber --try-cf-tunnel --tunnel-qr # Show QR code for easy mobile access
openchamber --try-cf-tunnel --tunnel-password-url # Include password in URL for auto-login
OPENCODE_PORT=4096 OPENCODE_SKIP_START=true openchamber # Connect to external OpenCode server
OPENCODE_HOST=https://myhost:4096 OPENCODE_SKIP_START=true openchamber # Connect via custom host/HTTPS
openchamber stop # Stop server
openchamber update # Update to latest versionNamed Tunnel mode is configured in-app (Settings -> OpenChamber -> Tunnel). The CLI currently supports Quick Tunnel flags only. --tunnel <config.yml> is not supported yet.
Download from Releases.
docker compose up -dThe service will be available at http://localhost:3000.
UI Password (optional): To enable password-protected access, uncomment and set the UI_PASSWORD environment variable in docker-compose.yml:
environment:
UI_PASSWORD: your_secure_passwordOr pass it via command line:
UI_PASSWORD=secret docker compose up -dCloudflare Tunnel (optional): To enable Cloudflare Quick Tunnel for remote access, set the CF_TUNNEL environment variable:
environment:
CF_TUNNEL: "true" # Options: true, qr, password, full| Value | Description |
|---|---|
true |
Enable tunnel only |
qr |
Enable tunnel + QR code |
password |
Enable tunnel + password in URL |
OpenChamber also supports Named Tunnel mode for more reliable long-lived access with your Cloudflare account and custom hostname.
- Configure it in-app at Settings -> OpenChamber -> Tunnel and switch mode to Named.
- Named tunnels require a domain in your Cloudflare account.
- Cloudflare setup guide: https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/get-started/create-remote-tunnel/
- CLI note:
--tunnel <config.yml>is not supported yet.
Data Directory Permission Note: The data/ directory is mounted into the container for persistent storage (config, sessions, SSH keys, workspaces). Before running, ensure the directory exists and has proper permissions:
# Create data directories with correct ownership
mkdir -p data/openchamber data/opencode/share data/opencode/config data/ssh
# Fix permissions (replace $USER with your username)
chown -R 1000:1000 data/Without proper permissions, the container may fail to start or encounter permission denied errors when writing to these directories.
SSH/Git Authentication Note: If git pull/push fails. Run ssh -T git@github.com in terminal.
- OpenCode CLI installed
- Node.js 20+ (for web version)
- cloudflared (required for
--try-cf-tunnel)
See CONTRIBUTING.md for guidelines.
Independent project, not affiliated with OpenCode team.
Special thanks to:
- OpenCode - For the excellent API and extensible architecture.
- Flexoki - Beautiful color scheme by Steph Ango.
- Pierre - Fast, beautiful diff viewer with syntax highlighting.
- Tauri - Desktop application framework.
- Ghossty-web - for a great implementeation of a Ghostty web renderer.
- David Hill - who inspired me to release this without overthinking.
- My wife, who created a beautiful firework animation for the app while testing it for the first time.
MIT







