DesktopRuntime is the single authoritative state owner; the desktop workbench, headless server, mobile app, and remote transports all reach it through shared contracts.
Architecture boundaries
Learn the crate split, the authoritative runtime, and the responsibilities of clients and Relay.
Local setup
Prepare Rust, Node, pnpm, and the graphics build environment.
Build and test
Run routine checks, smoke tests, and release build gates.
Platform support
Artifact formats, build methods, and verification requirements for each platform.
Remote v2 and Relay
Protocol boundaries for pairing, handshake, sync, and self-hosted transport.
Contributing
Architecture, testing, and privacy requirements for your changes.
Constraints to preserve during development
DesktopRuntimeowns Agents, sessions, timelines, files, Git, PTY, providers, permissions, and persistence.- One core, two frontends:
apps/desktopadds a GPUI window, andapps/serveradds a daemon lifecycle. New capabilities must work for both. - Clients only consume shared remote projections and send typed operations; they never duplicate business state.
- New capabilities should reach the authority through
BackendFacade, not only through a local runtime path. - Remote v2 DTOs, errors, capabilities, and sequence-number contracts live in the shared
crates/corelayer. - Relay only forwards encrypted frames; it does not own business authorization, files, or the session database.
- Cross-layer behavior changes need deterministic checks or evidence, plus the smallest test set that matches the risk.
Recommended reading order
- Architecture and ownership boundaries
- Local development environment
- Build and test
- Platform support
- Remote v2 and Relay
- Contributing
Design documents in the repository
The public documentation site only covers what users need. More detailed design and operations material lives under the repository’sdocs/ directory: