A desktop GUI for the Grok Build CLI — chat-first agent sessions with a workspace sidebar (projects, threads, sub-agents). Built with Tauri 2, React, TypeScript, and Rust.
The app talks to Grok through ACP (grok agent stdio): one agent process per chat thread, with permissions, plans, and session history synced from the CLI’s on-disk layout under ~/.grok/.
| Requirement | Notes |
|---|---|
| Grok CLI | Install and ensure grok is on your PATH, or set a custom path in Settings → Grok CLI path. Verify with grok -v. |
| Node.js | v18+ recommended (npm included). |
| Rust | Install via rustup. |
| Platform tooling | See below. |
- Visual Studio Build Tools with Desktop development with C++
- WebView2 (usually already installed on Windows 10/11)
- macOS: Xcode Command Line Tools (
xcode-select --install) - Linux: Standard build essentials (
build-essential,pkg-config,libwebkit2gtk-4.1-dev, etc. — see Tauri prerequisites)
-
Clone the repository
git clone <repository-url> cd desktop-composer
-
Install frontend dependencies
npm install
-
Sign in to Grok
The app uses the same credentials as the CLI. From a terminal:
grok login
Or use OAuth via
grok login --oauth. You can also trigger login from the in-app Settings panel. -
Verify the CLI
grok -v grok models
The second command should succeed when you are authenticated.
Start the desktop app with hot reload (Vite on port 1420 + Tauri):
npm run tauri devOther scripts:
| Command | Description |
|---|---|
npm run dev |
Frontend only (Vite) |
npm run build |
Typecheck + production frontend build |
npm run preview |
Preview the built frontend |
npm run tauri |
Tauri CLI passthrough (e.g. npm run tauri build) |
On first launch, open Settings to confirm CLI version, auth status, and optional defaults (model, permission mode, theme).
Release installers are configured for MSI and NSIS:
npm run tauri buildArtifacts are written under src-tauri/target/release/bundle/.
The project is developed and tested primarily on Windows. Production bundles for macOS and Linux are not maintained in-tree yet (tauri.conf.json currently targets Windows installers only).
If you have access to those platforms, you can still build locally after adjusting bundle targets in src-tauri/tauri.conf.json per the Tauri bundling docs.
Settings are persisted by the Tauri backend (permission mode, default model, theme, workspace tabs, etc.). Notable options:
- Grok CLI path — leave empty to use
grokfromPATH, or set an absolute path to the executable. - Permission mode — passed to
grok agent stdioas--permission-modewhen notdefault. - Projects — add folders from the sidebar; each thread runs
grok agent stdiowith that project’s working directory.
Session data, plans, and history live under the Grok CLI data directory (e.g. %USERPROFILE%\.grok\ on Windows, ~/.grok/ on Unix).
desktop-composer/
├── src/ # React UI (chat, sidebar, settings)
├── src-tauri/ # Rust backend (Grok process manager, file watchers)
├── docs/spikes/ # Integration notes and spikes
Contributions are welcome.
macOS and Linux production builds are especially appreciated: CI, bundle targets (.dmg, .AppImage, .deb, etc.), platform-specific fixes (paths, login console, WebKit/GTK deps), and smoke-test notes. Open an issue or PR if you can validate npm run tauri build on your OS.
MIT License