xd is a Rust/GPUI desktop client for workspace-organized Codex and Claude Code conversations. Chats inherit their folder's working directory, repository, backend, model, and project instructions.
Stable and nightly install side by side with separate application identities, settings, chats, and workspaces.
Linux x86_64:
curl -fsSL https://github.com/RestartFU/xd/releases/latest/download/install.sh | sh -s -- --releasemacOS (Apple Silicon or Intel):
curl -fsSL https://github.com/RestartFU/xd/releases/latest/download/install-macos.sh | sh -s -- --releaseWindows x86_64: download the small setup executable, or use PowerShell:
& ([scriptblock]::Create((irm https://github.com/RestartFU/xd/releases/latest/download/install.ps1))) -ReleaseLinux x86_64:
curl -fsSL https://github.com/RestartFU/xd/releases/download/nightly/install.sh | shmacOS (Apple Silicon or Intel):
curl -fsSL https://github.com/RestartFU/xd/releases/download/nightly/install-macos.sh | shWindows x86_64: download the small setup executable, or use PowerShell:
irm https://github.com/RestartFU/xd/releases/download/nightly/install.ps1 | iexThe Linux and macOS installers require no root access; Windows uses the normal Windows Installer elevation prompt. The bundles include the GPUI desktop, Rust daemon, Codex, Claude Code, local Whisper speech input, and their native runtime helpers.
Stable data lives in ~/.local/share/xd on Linux and
~/Library/Application Support/xd on macOS, and %LOCALAPPDATA%\xd on
Windows. Nightly uses the corresponding xd-nightly directories. Uninstalling
either app does not delete its chats or workspaces.
- Organizes chats in real workspace folders that can be nested, moved, or renamed without losing their conversations.
- Inherits folder settings and instructions down the workspace tree.
- Runs bundled Codex and Claude Code CLIs with their normal authentication and configuration.
- Supports existing checkouts and isolated Git worktrees.
- Streams Markdown responses, tool calls, inline file diffs, images, and voice messages.
- Supports local use and paired clients over the same daemon protocol,
including an Android client that pairs with a running
xd serve. - Searches all stored messages with
Ctrl+K.
Linux builds require Docker only and do not install dependencies on the host:
./scripts/build.sh # self-contained bundle in ./dist
./scripts/test.sh # complete headless test suite
./dist/xd.sh # run the built app
make mobile-test # shared Kotlin tests
make mobile-android # -> ./dist/mobile/xd-mobile-debug.apkBuild scripts use at most 75% of the runner's logical CPUs by default. Set
XD_BUILD_JOBS to a smaller positive number for a stricter local limit.
Native macOS builds require Rust, librsvg from Homebrew, and Apple command
line tools:
PROFILE=nightly ./scripts/build-macos.sh
# -> ./dist/macos/xd-nightly-macos-{arm64,x86_64}.zipNative Windows builds require Rust, CMake, 7-Zip, the Windows SDK, and .NET:
./scripts/build-windows.ps1 -OutputDirectory windows-dist -Profile nightly
./scripts/package-windows.ps1 -Payload windows-dist -OutputDirectory artifacts -Profile nightly
# -> small ./artifacts/xd-nightly-windows-x86_64-setup.exe
# -> MSI metadata plus the downloaded payload cabinetMobile builds use their own Docker image and also require nothing beyond Docker. See mobile development.
The Linux desktop lives in desktop/, the daemon in daemon-rs/, and the
private remote TLS helper in tls-proxy-rs/.
