A blazingly fast, memory-efficient native wrapper for gemini.google.com, specifically optimized for Apple Silicon Macs. Built with Rust and Tauri 2.0 for unparalleled performance.
This project is based on the Google Messages wrapper by anongecko, credit where credit is due!
- App Size: ~8MB (compared to 100MB+ for Electron alternatives)
- RAM Usage: 40-60MB idle (up to 75% less than browser tabs)
- CPU Usage: <1% idle, native performance
- Startup Time: <500ms cold start
- Apple Silicon: Optimized specifically for M1/M2/M3 chips
- Instant startup with preload optimization
- Native performance using macOS WebKit instead of bundled Chromium
- Efficient window management - hiding instead of closing preserves state
- jemalloc allocator - 10-20% RAM reduction on Apple Silicon
- Aggressive garbage collection when backgrounded
- Disabled unused web APIs to reduce memory overhead
- Optimized cache limits - 64MB memory cache, 128MB disk cache
- No bloat - only essential features included
- Native macOS menus with proper keyboard shortcuts
- Single window interface - no unnecessary UI chrome
- Respects system appearance - follows macOS dark/light mode
- Download the latest
Gemini-for-Mac.dmgfile from the GitHub Releases page. - Open the
.dmgfile and drag the Gemini app into yourApplicationsfolder.
Because this app is distributed for free outside the Mac App Store, you'll need to manually approve it the first time you open it.
- Right-click (or
Ctrl-click) the Gemini app icon in yourApplicationsfolder. - Select Open from the menu.
- A final warning will pop up. Click the Open button to run the app.
You only need to do this once! After that, you can open the app normally.
// Custom memory allocator for M-series chips
#[cfg(target_os = "macos")]
#[global_allocator]
static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
// Compile-time optimizations
panic = "abort" // Smaller binary
codegen-units = 1 // Better optimization
lto = true // Link-time optimization
opt-level = "z" // Optimize for size
strip = true // Remove debug symbols- Background throttling - reduces resource usage when unfocused
- Lazy loading - defers non-critical operations
- Const allocations - compile-time string optimization
- Minimal dependencies - only essential crates included
- Disabled default Tauri features - removed unnecessary functionality
- Native WebView - leverages macOS WKWebView (no Chromium)
- Optimized release profile - aggressive size and performance optimizations
| Metric | Google Messages Wrapper | Electron App | Browser Tab |
|---|---|---|---|
| App Size | 8MB | 120MB+ | N/A |
| RAM (Idle) | 45MB | 180MB | 200MB+ |
| RAM (Active) | 80MB | 300MB | 400MB+ |
| CPU (Idle) | <1% | 2-5% | 1-3% |
| Startup Time | <500ms | 2-3s | 1-2s |
Built with:
- Tauri 2.0 - Next-generation app framework
- Rust - Memory-safe systems programming
- WKWebView - Native macOS web engine
- pnpm - Fast, disk space efficient package manager
This wrapper follows a minimalist approach:
- Do one thing well - wrap messages.google.com efficiently
- Use native APIs - leverage macOS built-ins
- Optimize aggressively - every byte and millisecond counts
- Respect the system - follow macOS conventions
- macOS 11.0 or later
- Apple Silicon (M1/M2/M3) or Intel Mac
- ~50MB free disk space
- No telemetry - your data stays on your device
- No external dependencies - all resources bundled
- Sandboxed - follows macOS security best practices
- Open source - fully auditable codebase
Built with ❤️ for the Mac community by developers who care about performance