# OpenChamber > OpenChamber is an open-source agentic development environment built on OpenCode, the AI coding agent. It runs agents on a machine you control and gives you a desktop app, a web app, a VS Code extension and mobile apps to start, watch, review and ship their work. It is MIT-licensed and free; you pay only your model provider. It is an independent project, not affiliated with the OpenCode team. OpenChamber runs as an instance on your Mac, Linux box, Windows PC or server. The instance runs the agents and keeps every session. The desktop app runs its own instance and can connect to instances on other machines. Phones and browsers reach an instance over the local network, over Private Relay (end-to-end encrypted, no open port) or over a tunnel. OpenChamber does not collect project names, paths, prompts, code, diffs or session content. ## Install - Desktop app for macOS, Windows and Linux: [Download page](https://openchamber.dev/download/) or [GitHub Releases](https://github.com/openchamber/openchamber/releases/latest). Linux builds are `.deb`, `.rpm` and AppImage for x64 and arm64. The desktop app bundles the matching OpenCode CLI, so nothing else needs installing. - Web app and PWA, served by the CLI. Needs Node.js 24.14 or newer and an installed [OpenCode](https://opencode.ai) CLI: ```bash curl -fsSL https://openchamber.dev/install | bash openchamber --ui-password choose-a-password ``` The installer is the same as `npm i -g @openchamber/web`, `bun add -g @openchamber/web` or `pnpm add -g @openchamber/web`. Open the URL the CLI prints, usually `http://localhost:3000`, and use the browser's Install option to add it as an app. - VS Code extension: `fedaykindev.openchamber` on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=fedaykindev.openchamber), and on [Open VSX](https://open-vsx.org/extension/FedaykinDev/openchamber) for Cursor, Windsurf and Trae. Uses an installed OpenCode CLI. - Mobile apps, in public beta: iPhone and iPad through [TestFlight](https://testflight.apple.com/join/5ek6GU1E), Android as an APK from the [latest release](https://github.com/openchamber/openchamber/releases/latest). A phone pairs with an instance by scanning a one-time QR code. ## CLI ```bash openchamber # start on port 3000, listening on localhost only openchamber --port 8080 # another port openchamber --lan # listen on the local network as well openchamber --ui-password secret # password-protect the browser UI (or OPENCHAMBER_UI_PASSWORD) openchamber status # show running instances openchamber connect-url --qr # one-time pairing link for a device on the same network openchamber connect-url --relay --qr # pairing link that also works away from home, over Private Relay openchamber tunnel start --provider cloudflare --mode quick --qr # public URL through a tunnel openchamber startup enable # run as a user service (launchd, systemd --user, Task Scheduler) openchamber logs # follow the instance logs openchamber update # update to the latest version openchamber stop # stop the instance ``` Use an OpenCode server you already run instead of letting OpenChamber start one: ```bash OPENCODE_HOST=http://localhost:4096 OPENCODE_SKIP_START=true openchamber OPENCODE_PORT=4096 OPENCODE_SKIP_START=true openchamber ``` ## Remote access - Pair a device: Settings → Remote Instances → Connect to this server → Add a device, then scan the QR code. Each code works once and expires; each device gets its own token that you can revoke at any time. "Anywhere" pairing uses Private Relay when the device is away from your network and a direct connection when it is on it. - Private Relay: your instance keeps an outbound connection to the relay, and the relay forwards traffic it cannot decrypt. Nothing on your machine accepts incoming connections from the internet. It starts when a device needs it and stops when none does. - Tunnels give a public URL through Cloudflare or ngrok, for a browser you cannot pair. Always set a UI password first; passkeys are available once a password is set. - The desktop app connects to OpenChamber on other machines over SSH (Remote Instances), and its browser panel reaches dev servers on those machines. ## What you can do - Sessions and projects: chat with agents per project, branch sessions into worktrees, see tool output, diffs and terminal next to the chat. - Multi-run: send one prompt to several models at once, optionally each in its own worktree and branch. Keep the best run, or fuse the answers into one result. - Session Goals: set an objective and OpenChamber keeps the session working after every turn, checked by an independent auditor, until the goal is done, blocked or over the budget you set. - Scheduled tasks: run a prompt daily, weekly, once or on a cron expression, optionally as a goal. - Issues and PRs: a board of the project's GitHub or GitLab issues and pull requests and your Linear issues. Start a session from any of them; the agent gets the thread and the diff. - Git: stage, commit, push, open and merge pull requests, answer review threads, send failed CI checks back to the agent. - Changes Walkthrough: reorders a large diff into stops that build on each other, explains each one and tags the key change. It explains and orders; it does not judge the code. - Browser panel: open your running app beside the chat. On the desktop app it is a full browser with logins, hot reload and developer tools, and the agent can use it to check its own work. - Project knowledge: notes, todos and plans that agents read and update through a tool. - Project actions, magic prompts, commands and snippets for repeated work. - Skills, a skills catalog, MCP servers and an integrations catalog of more than 160 services that installs a service's MCP server with its skills. - Extensions: panels from the community and the team that sit on the right rail, built with the OpenChamber SDK. They run on web and desktop. - Provider limits, token usage and cost per session; automatic model routing. - Themes, notifications (including encrypted push on mobile) and voice input. ## Docs - [Documentation home](https://docs.openchamber.dev/) - [Install](https://docs.openchamber.dev/install/) and [Quickstart](https://docs.openchamber.dev/quickstart/) - [Connect a device](https://docs.openchamber.dev/connect-devices/), [Private Relay](https://docs.openchamber.dev/private-relay/), [Mobile apps](https://docs.openchamber.dev/mobile/) - [Tunnels](https://docs.openchamber.dev/tunnels/), [Security](https://docs.openchamber.dev/security/), [Remote instances](https://docs.openchamber.dev/remote-instances/), [Reverse proxy](https://docs.openchamber.dev/reverse-proxy/) - [OpenCode server](https://docs.openchamber.dev/opencode-server/) and [Environment variables](https://docs.openchamber.dev/environment/) - [Multi-run](https://docs.openchamber.dev/multi-run/), [Session Goals](https://docs.openchamber.dev/session-goals/), [Scheduled tasks](https://docs.openchamber.dev/scheduled-tasks/) - [Issues and PRs](https://docs.openchamber.dev/issues-and-prs/), [Git](https://docs.openchamber.dev/git/), [Changes Walkthrough](https://docs.openchamber.dev/walkthrough/) - [Browser panel](https://docs.openchamber.dev/desktop-browser/), [Preview and dev servers](https://docs.openchamber.dev/preview/) - [Notes, todos and plans](https://docs.openchamber.dev/notes-todos-plans/), [Project actions](https://docs.openchamber.dev/project-actions/) - [Skills](https://docs.openchamber.dev/skills/), [Integrations](https://docs.openchamber.dev/integrations/), [MCP](https://docs.openchamber.dev/mcp/) - [Extensions](https://docs.openchamber.dev/extensions/) and [SDK](https://docs.openchamber.dev/sdk/) - [Troubleshooting](https://docs.openchamber.dev/troubleshooting/) ## Links - [Website](https://openchamber.dev/) - [Download](https://openchamber.dev/download/) - [Changelog](https://openchamber.dev/changelog/) - [Extensions directory](https://openchamber.dev/extensions/) - [Blog](https://openchamber.dev/blog/) - [GitHub](https://github.com/openchamber/openchamber) - [Discord](https://discord.gg/ZYRSdnwwKA)