RUST · DEVELOPER TOOLS

desktop-rs — Native Rust Re-Architecture of GitHub Desktop

desktop-rs is a fast, lightweight Git client written in pure Rust that replaces GitHub Desktop's Electron and Node.js stack. It delivers sub-15ms startup, under 30 MB idle memory usage, interactive hunk staging, and visual branch graph management over native Rust Git operations.

$ cargo install desktop-rs
GitHub ↗

Architected for Speed & Reliability

Engineered from the ground up in memory-safe Rust with zero unnecessary dependencies.

⚡

Instantaneous <15ms Startup

Opens in under 15 milliseconds. No Electron boot sequence, no Chromium process tree, no V8 cold compilation delays.

🪶

Microscopic Memory Footprint

Consumes less than 12MB of RAM at idle compared to 300MB-450MB for the Electron client, freeing your machine for heavy compilation.

🖥️

Interactive Terminal UI (TUI)

Beautiful full-screen Ratatui interface mirroring GitHub Desktop's 3-pane layout: Changed Files, Diff Viewer, and Commit Box.

⌨️

Familiar Keyboard Navigation

Supports vim keys (h/j/k/l), arrow keys, spacebar staging/unstaging, and standard shortcuts matching GitHub Desktop muscle memory.

🌳

Branch & History Visualization

Interactive commit log visualizer with upstream divergence indicators, tag markers, and branch switching.

🔒

Safe Native Git Operations

Directly interfaces with git2 / libgit2 with atomic commits, partial staging (patch mode), and robust conflict safety.

Get Started in Seconds

Install via Cargo and run immediately on macOS, Linux, or Windows.

Terminal
# Install desktop-rs
cargo install --git https://github.com/bhubbard/desktop-rs

# Launch the interactive Terminal User Interface (TUI)
desktop

# Or use fast CLI commands
desktop status
desktop diff
desktop commit -m "feat: blazingly fast git workflow"
desktop push

Engine Architecture

Streamlined execution pipeline with deterministic memory isolation and zero runtime overhead.

Pipeline Flow
┌───────────────────────────────────────────────────────────┐
│               Developer Terminal / Shell                  │
└─────────────────────────────┬─────────────────────────────┘
                              │
┌─────────────────────────────▼─────────────────────────────┐
│                      desktop-rs Core                      │
│  ┌──────────────────┐  ┌──────────────────┐  ┌──────────┐ │
│  │ Ratatui 3-Pane UI│  │ Async Tokio Core │  │ libgit2  │ │
│  │ (Diff, Files, Log│  │ (Non-blocking I/O│  │ Engine   │ │
│  └──────────────────┘  └──────────────────┘  └──────────┘ │
└─────────────────────────────┬─────────────────────────────┘
                              │ Native Filesystem Access
┌─────────────────────────────▼─────────────────────────────┐
│                 Local Git Repository (.git/)              │
└───────────────────────────────────────────────────────────┘