packages/ui/src/components/chat/message/TextSelectionMenu.tsx
- What: Wrap selectedText in ```md fenced block before appending to composer.
- Why: Selections were appended as raw inline text with no visual distinction.
packages/ui/src/components/chat/ChatInput.tsx
- What: Replace trimEnd()/trim() + single-space join with raw prev + \n\n separator in append branch.
- Why: Existing composer newlines were being destroyed and multiple appends ran together.
packages/ui/src/components/session/ProjectNotesTodoPanel.tsx
- What: Wrap todoText in ```md fenced block before appending to composer.
- Why: Todo text sent to current session should have the same fenced formatting.
Desktop users: Please re-download and reinstall OpenChamber v1.8.6 from GitHub Releases.
We rotated the desktop updater signing key after moving the repository to the organization, so in-app auto-update from older desktop builds may fail signature verification.
This is a one-time reinstall and does not affect app functionality.
Important
CLI users: A startup regression in global npm/bun installs (symlink/wrapper entrypoints) is fixed in OpenChamber v1.8.7.
If openchamber exited without output on --version/status, update to v1.8.7 from npm: npm i -g @openchamber/web@1.8.7 or bun add -g @openchamber/web@1.8.7.
OpenCode, everywhere. Desktop. Browser. Phone.
A rich interface for OpenCode. Review diffs, manage agents, run dev servers, and keep the big picture while your AI codes.
More screenshots
Why use OpenChamber?
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
Features
Core (all app versions)
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
Managed-local path note: OPENCHAMBER_TUNNEL_CONFIG must point to a path inside the container user home (/home/openchamber/...). If your Cloudflare config references a credentials JSON file, that file path must also be accessible inside the container (mount with volumes).
Tunnel behavior notes
OpenChamber supports one active tunnel per running instance (port).
Starting a tunnel with a different mode/provider on the same instance replaces the current tunnel.
Replacing or stopping a tunnel revokes existing connect links and invalidates remote tunnel sessions for that instance.
Connect links are one-time tokens; generating a new link revokes the previous unused link.
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:
My wife, who - with zero AI background - sat down with the app for the first time and built the firework celebration that plays on every successful push.
Every contributor who shaped this project with their PRs, ideas, and attention to detail.