A desktop home for your coding agents. Dray wraps coding-agent CLIs (Claude Code, Codex, fx, pi) in a native chat UI. Run many sessions at once. Each gets its own worktree, diff view, PR panel, issue panel and embedded browser.
- Guillermo Rauch, Vercel CEO, through his OSS Grants programme.
- Greptile, AI code reviews, free for open source.
Want to sponsor Dray? patreon.com/yogesharc
| Path | What |
|---|---|
apps/desktop |
The Tauri app. React 19 + Vite frontend, Rust backend. |
apps/web |
Marketing site. Next.js, deployed to Vercel. |
apps/docs |
Docs at drayhq.com/docs. Blume, deployed to Vercel. |
apps/cli |
The dray CLI agents use to fan work out. |
crates/dray-proto |
Wire types shared by the CLI and the app. |
You need Node with pnpm, a Rust toolchain, and cmake.
pnpm install
pnpm app # desktop app
pnpm web # marketing site on :3000
pnpm test # frontend testsEverything else runs from the package's own directory:
cd apps/desktop && pnpm tauri build
cd apps/desktop/src-tauri && cargo testcargo test regenerates apps/desktop/src/types/events.ts. Always follow a
filtered run with a bare cargo test.
A standalone binary. It talks to the running app over ~/.dray/dray.sock, so
an agent in one session can create, list and message others.
curl -fsSL https://www.drayhq.com/install.sh | shOn Linux the same line makes the machine a Dray server: drayhq.com/docs/server.
App: tag vX.Y.Z (stable) or vX.Y.Z-beta.N (beta). The tag must match
apps/desktop/src-tauri/tauri.conf.json, and a stable release needs a
matching section in apps/desktop/CHANGELOG.md.
CLI: tag cli-vX.Y.Z (stable) or cli-vX.Y.Z-beta.N (beta), matching the
version in apps/cli/Cargo.toml exactly. Cut one beside every app release, beta
included, so a server can run the core that release expects.
Full licence texts are in THIRD-PARTY-LICENSES.md.
Themes. Four palettes are MIT ports, colours theirs and token names ours: Catppuccin, Cobalt2 (Wes Bos, Roberto Achar), One Dark Pro (Binaryify) and gruvbox (Pavel Pertsev).
Marks. The pi mark is MIT, © Earendil Inc. & Contributors. Claude's and OpenAI's are their owners' trademarks and only name the agent a session runs on.
Transcription. Dictation runs locally on
transcribe.cpp (MIT).
Models are handy-computer's GGUF conversions from Hugging Face, CC-BY-4.0
with their base models' terms. The dictation sounds are
Handy's marimba pair, by CJ Pais, MIT.
Handy's name and brand assets are not used here.