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
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.
# 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.
┌───────────────────────────────────────────────────────────┐
│ 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/) │
└───────────────────────────────────────────────────────────┘