A macOS and Linux desktop interface to bravebot, the prompt-injection-resistant coding agent. Built with Electron, React and a Rust bridge, it uses the agent as a pinned dependency without modifying its sources.
The app shares saved sessions under ~/.bravebot with the terminal client. It adds
conversation search, drafts and queues, file previews, approval controls, export,
and persistent bots with conversation histories and project memory.
Install your platform's development tools, current stable Rust, and Node 22.12+ with npm (Node 24 is used in CI). See setup for prerequisites and credentials.
git clone --recurse-submodules https://github.com/brave-experiments/brave-bot-ui.git
cd brave-bot-ui
npm ci
npm run devThe app can build and open without backend credentials. Sending prompts requires backend configuration; credentials from an existing terminal installation are not automatically copied into a fresh checkout.
- Setup: prerequisites, credentials, submodule updates and troubleshooting.
- Development and packaging: commands, builds and macOS bundles.
- The interface: conversations, approvals, bots, memory, keys and themes.
- Testing: regression checks, Electron drivers and CI coverage.
- Security: process boundaries, approvals and renderer restrictions.
- File access and retention: previews, attachments and memory storage.
- Bridge protocol: transport, requests, events and design rationale.
- Recording a demo: fixtures, live calls and recording controls.
- Redesign audit: historical implementation evidence and reproduction.
MPL-2.0.