MCPcopy Index your code
hub / github.com/Piebald-AI/gemini-cli-desktop

github.com/Piebald-AI/gemini-cli-desktop @v0.3.15

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.15 ↗ · + Follow
1,290 symbols 2,760 edges 164 files 78 documented · 6%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Check out Piebald

We've released Piebald, the ultimate agentic AI developer experience. \ Download it and try it out for free! https://piebald.ai/

Join our Discord X

Scroll down for Gemini CLI Desktop. :point_down:

hero

Gemini CLI Desktop

CI Release & Publish GitHub all releases GitHub release Mentioned in Awesome Gemini CLI

Platform License: MIT Built with Tauri

A powerful desktop and web interface for Gemini CLI and Qwen Code with visual tool confirmation, real-time thought processes, code diff viewing, chat history management & search, a file tree browser, and file @-mentions. Built with Rust and React for performance and reliability. From the team behind Piebald.

Use with Gemini CLI:

Screenshot of Gemini CLI Desktop

Use with Qwen Code:

Screenshot of Gemini CLI Desktop for Qwen Code

Quick Start

Download pre-built releases: GitHub Releases

Available builds:

  • Windows (x64)
  • macOS (Intel & Apple Silicon)
  • Linux (x64 AppImage)

Features

  • Multi-model support - Gemini 3 Pro/Flash, Gemini 2.5 Pro/Flash, Qwen Code, custom OpenAI providers
  • Visual tool confirmation - Review and approve AI actions before execution
  • Real-time thought process - Watch AI reasoning unfold
  • Code diff viewer - Clear visualization of proposed changes
  • Chat history & search - Automatic saving with full-text search
  • Cross-platform - Desktop app and web interface
  • File @-mentions - Reference files directly in conversations
  • MCP server integration - Model Context Protocol support
  • Multi-language UI - English, Chinese (Simplified & Traditional), Russian

Development & Building

Prerequisites & Dependencies

Install the just task runner:

  • macOS/Linux: cargo install just or asdf plugin add just && asdf install just latest
  • Ubuntu: snap install --edge --classic just
  • Windows: winget install --id Casey.Just

Linux system dependencies (Ubuntu/Debian):

sudo apt install libgdk-pixbuf-2.0-dev libpango1.0-dev \
  libjavascriptcoregtk-4.1-dev libatk1.0-dev libsoup-3.0-dev \
  libwebkit2gtk-4.1-dev librsvg2-dev

Development Workflow

# Install dependencies and start desktop development with hot reload.
just deps dev

# Start web development with separate backend (port 1858) and frontend (port 1420) servers
just deps dev-web

# Build both desktop app installer (AppImage, DMG, MSI) and web server binaries for production.
just build-all

# Run the full test suite with nextest.
just test

# Run code linting and formatting checks (ESLint + Clippy).
just lint

Note: For the web version, development uses two separate ports: 1420 for the frontend and 1858 for the Rust + Rocket backend. In production, the backend server also hosts the static frontend files, so only port 1858 is used.

Build from Source

Prerequisites:

Build & Run:

git clone https://github.com/Piebald-AI/gemini-cli-desktop
cd gemini-cli-desktop
just deps build-all

# Desktop app
./target/release/gemini-cli-desktop

# Web server (access at http://localhost:1858)
./target/release/gemini-cli-desktop-web

Release Process

Releases are automatically built and published via GitHub Actions when version tags are pushed.

Architecture

  • Backend: Rust with Tauri for desktop, Rocket for web server
  • Frontend: React + TypeScript with Tailwind CSS
  • Protocols: Agent Communication Protocol (ACP), WebSocket events
  • Security: Command filtering, tool confirmation workflows

Roadmap

  • Token/cost tracking
  • Multi-modal support (images, audio)
  • Extension system
  • LLxprt integration

Contributing

Contributions are welcome! Please see the contributing guide for more details.

License

MIT

Copyright © 2026 Piebald LLC.

Extension points exported contracts — how you extend this code

EventEmitter (Interface)
(no doc) [3 implementers]
crates/backend/src/events/mod.rs
Properties (Interface)
(no doc)
frontend/src/types/global.d.ts
RpcLogger (Interface)
(no doc) [2 implementers]
crates/backend/src/rpc/mod.rs
ThinkingMessagePart (Interface)
(no doc)
frontend/src/types/index.ts
TextMessagePart (Interface)
(no doc)
frontend/src/types/index.ts
ToolCallMessagePart (Interface)
(no doc)
frontend/src/types/index.ts
Conversation (Interface)
(no doc)
frontend/src/types/index.ts

Core symbols most depended-on inside this repo

clone
called by 155
crates/backend/src/events/mod.rs
cn
called by 127
frontend/src/lib/utils.ts
emit
called by 29
crates/backend/src/events/mod.rs
new
called by 25
crates/backend/src/lib.rs
useBackend
called by 22
frontend/src/contexts/BackendContext.tsx
get_process_statuses
called by 18
frontend/src/lib/api.ts
getBackendText
called by 15
frontend/src/utils/backendText.ts
onChange
called by 13
frontend/src/hooks/use-mobile.ts

Shape

Function 850
Interface 163
Method 147
Class 113
Enum 17

Languages

TypeScript54%
Rust46%

Modules by API surface

crates/backend/src/projects/mod.rs67 symbols
crates/server/src/main.rs66 symbols
crates/backend/src/session/mod.rs62 symbols
frontend/src/lib/webApi.ts54 symbols
crates/backend/src/events/mod.rs53 symbols
crates/backend/src/lib.rs51 symbols
crates/backend/src/acp/mod.rs47 symbols
crates/backend/src/search/mod.rs45 symbols
crates/backend/src/filesystem/mod.rs43 symbols
crates/tauri-app/src/commands/mod.rs38 symbols
crates/backend/src/cli/mod.rs37 symbols
crates/backend/src/rpc/mod.rs35 symbols

For agents

$ claude mcp add gemini-cli-desktop \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page