{
  "manifest_version": "1",
  "slug": "openchamber",
  "title": "OpenChamber",
  "headline": "Run OpenChamber on a remote server",
  "description": "Run OpenChamber, the web workspace for OpenCode, on an always-on exe.dev VM. Use it from any browser or phone behind exe.dev login, with no API keys.",
  "category": "ai-agents",
  "tags": [
    "openchamber",
    "opencode",
    "opencode web ui",
    "agentic development environment",
    "remote coding agents",
    "mobile coding",
    "git worktrees"
  ],
  "url": "https://exe.dev/deploy/openchamber",
  "markdown_url": "https://exe-staging.dev/deploy/openchamber.md",
  "upstream": {
    "website": "https://openchamber.dev/",
    "source": "https://github.com/openchamber/openchamber",
    "docs": "https://docs.openchamber.dev/",
    "license": "MIT"
  },
  "example_vm_name": "my-openchamber",
  "time": "10 minutes",
  "stack": [
    {
      "name": "OpenChamber 2.6",
      "detail": "@openchamber/web from npm on Node.js 24, as a systemd user service",
      "port": 3000,
      "data": "~/.config/openchamber"
    },
    {
      "name": "OpenCode 2",
      "detail": "started and managed by OpenChamber; connected to exe.dev's LLM integration",
      "data": "~/.local/share/opencode (sessions, and worktrees under worktree/)"
    },
    {
      "name": "Your project",
      "data": "~/project"
    }
  ],
  "access": [
    {
      "url": "https://my-openchamber.exe.xyz:3000/",
      "who": "private",
      "what": "OpenChamber in your laptop's or phone's browser, behind exe.dev login and OpenChamber's password"
    },
    {
      "url": "ssh my-openchamber.exe.xyz",
      "who": "private",
      "what": "your terminal, for the password and upkeep"
    }
  ],
  "delivers": [
    "OpenChamber 2.6.1 running as a service on port 3000, back after a reboot",
    "OpenCode connected to Claude, GPT and open models through exe.dev's LLM integration, with no API key to paste",
    "A random UI password in `~/.config/openchamber/ui-password`, readable only by you",
    "A Git project at `~/project` and a setup-check session that answered `OK`",
    "OpenChamber's web app at port 3000, behind exe.dev login and the password"
  ],
  "deployable": true,
  "deploy": {
    "new_vm_url": "https://exe-staging.dev/new?prompt=Set%20up%20OpenChamber%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe-staging.dev%2Fdeploy%2Fopenchamber.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-openchamber.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-openchamber.%20Skip%20the%20step%20that%20creates%20the%20VM%3B%20you%20are%20on%20it.%0A%0AYou%20are%20done%20when%20all%20of%20these%20are%20true.%20Check%20each%20one%20yourself%3A%0A-%20OpenChamber%202.6.1%20running%20as%20a%20service%20on%20port%203000%2C%20back%20after%20a%20reboot%0A-%20OpenCode%20connected%20to%20Claude%2C%20GPT%20and%20open%20models%20through%20exe.dev%27s%20LLM%20integration%2C%20with%20no%20API%20key%20to%20paste%0A-%20A%20random%20UI%20password%20in%20%60~%2F.config%2Fopenchamber%2Fui-password%60%2C%20readable%20only%20by%20you%0A-%20A%20Git%20project%20at%20%60~%2Fproject%60%20and%20a%20setup-check%20session%20that%20answered%20%60OK%60%0A-%20OpenChamber%27s%20web%20app%20at%20port%203000%2C%20behind%20exe.dev%20login%20and%20the%20password%0A%0ARun%20the%20VM-side%20commands%20in%20%22Install%20by%20hand%22%20only%2C%20from%20%22Install%0AOpenChamber%22%20on.%20If%20%60~%2F.config%2Fopencode%2Fopencode.json%60%20holds%20more%20than%0Aexe.dev%27s%20placeholder%20%28%60%24schema%60%20and%20%60autoupdate%60%29%2C%20add%20the%20%60model%60%20and%0A%60providers%60%20settings%20to%20it%20instead%20of%20replacing%20it.%20Verify%20that%0A%60systemctl%20--user%20is-active%20openchamber%60%20says%20active%2C%20that%20%60ss%20-ltn%60%0Ashows%20%600.0.0.0%3A3000%60%2C%20that%20%60curl%20-s%20-o%20%2Fdev%2Fnull%20-w%20%27%25%7Bhttp_code%7D%27%0Alocalhost%3A3000%2Fapi%2Fconfig%60%20prints%20%60401%60%20%28the%20password%20is%20on%29%2C%20and%20that%0Athe%20setup%20check%20prints%20%60OK%60.%20Never%20print%20the%20UI%20password%20in%20your%0Amessages.%20Skip%20the%20backup%2C%20update%20and%20troubleshooting%20sections%20and%20the%0AFAQ.%20Finish%20by%20giving%20the%20owner%20the%20browser%20URL%20and%20the%0A%60ssh%20...%20cat%20.config%2Fopenchamber%2Fui-password%60%20command%20from%20%22Open%0AOpenChamber%22%2C%20with%20this%20VM%27s%20name%2C%20and%20tell%20them%20to%20add%20%60~%2Fproject%60%20as%0Aa%20project%20and%20then%20follow%20%22Add%20your%20phone%22.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A",
    "terminal": "curl -fsSL https://exe-staging.dev/deploy/openchamber/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "Set up OpenChamber on this VM by following the exe.dev recipe at https://exe-staging.dev/deploy/openchamber.md from top to bottom.\n\nThe recipe's example VM name is my-openchamber. This VM's name is the output of `hostname`: use it wherever the recipe writes my-openchamber. Skip the step that creates the VM; you are on it.\n\nYou are done when all of these are true. Check each one yourself:\n- OpenChamber 2.6.1 running as a service on port 3000, back after a reboot\n- OpenCode connected to Claude, GPT and open models through exe.dev's LLM integration, with no API key to paste\n- A random UI password in `~/.config/openchamber/ui-password`, readable only by you\n- A Git project at `~/project` and a setup-check session that answered `OK`\n- OpenChamber's web app at port 3000, behind exe.dev login and the password\n\nRun the VM-side commands in \"Install by hand\" only, from \"Install\nOpenChamber\" on. If `~/.config/opencode/opencode.json` holds more than\nexe.dev's placeholder (`$schema` and `autoupdate`), add the `model` and\n`providers` settings to it instead of replacing it. Verify that\n`systemctl --user is-active openchamber` says active, that `ss -ltn`\nshows `0.0.0.0:3000`, that `curl -s -o /dev/null -w '%{http_code}'\nlocalhost:3000/api/config` prints `401` (the password is on), and that\nthe setup check prints `OK`. Never print the UI password in your\nmessages. Skip the backup, update and troubleshooting sections and the\nFAQ. Finish by giving the owner the browser URL and the\n`ssh ... cat .config/openchamber/ui-password` command from \"Open\nOpenChamber\", with this VM's name, and tell them to add `~/project` as\na project and then follow \"Add your phone\".\n\nFinish with the URLs I should open.\n",
    "prompt_url": "https://exe-staging.dev/deploy/openchamber/prompt.txt"
  },
  "updated": "2026-11-07",
  "verified": "2026-11-07",
  "related": [
    "opencode",
    "t3code",
    "paseo",
    "migrate-conductor-cloud",
    "code-server",
    "claude-code"
  ],
  "alternatives": [
    "Conductor"
  ]
}
