A full-featured desktop application boilerplate built with GPUI from Zed, for macOS.
- Rust nightly (edition 2024)
- macOS (primary target; Linux X11/Wayland experimental)
Build and run directly:
cargo build
cargo runOr use the macOS development script, which builds the binary, bundles it into an .app, and codesigns it:
bash scripts/macos-dev-app.sh
# Outputs the path to GPUI Starter.app
open "$(bash scripts/macos-dev-app.sh)"- Lifecycle -- startup / shutdown / crash state machine with first-run detection
- Single instance -- IPC guard prevents duplicate processes and forwards deep links
- Window management -- custom title bar with drag regions and native traffic-light buttons
- Sidebar -- collapsible navigation with page routing
- Title bar -- replaces native window chrome, supports macOS traffic lights
- Status bar -- contextual status display at the bottom of the window
- Command launcher -- Cmd+K palette with fuzzy search across all app actions
- Undo / redo -- command-pattern stack with Cmd+Z / Cmd+Y support
- SQLite -- local data persistence via
rusqlite - Configuration -- JSON config with migration system for schema changes
- Secure storage -- OS keyring integration (macOS Keychain, Windows Credential Manager, Linux Secret Service)
- Tray -- macOS system tray with app icon and quick-access menu
- Notifications -- native OS backends with in-app toast fallback and persistent inbox
- Keyboard shortcuts -- global hotkey (Alt+Space) and app-level keybindings
- Deep links -- URL scheme handling with single-instance forwarding
- Fluent-based -- built on
es-fluentfor type-safe translations - Locales -- English (
en) and Chinese Simplified (zh-CN) included
- Logging -- file-based logging via
tracing-appender - Telemetry -- disabled / local / remote modes with consent gate
- Diagnostics -- live app state, subsystem status, and debug actions page
- Tests -- integration test harness under
#[cfg(test)] - Accessibility -- AccessKit integration for screen reader support
See docs/gpui-architecture.md for an overview of the module layout and data flow.
23 built-in themes with live hot-reloading -- drop a JSON file into themes/ and it appears instantly. Highlights include:
- Gruvbox, Tokyonight, Catppuccin, Everforest
- Solarized, Ayu, Molokai, Jellybeans
- Matrix, Fahrenheit, Hybrid
- macOS Classic, High Contrast (Dark / Light)
Custom themes use the same JSON format. See the themes/ directory for examples.
See CONTRIBUTING.md for guidelines.