Grok-Desktop is an Electron-based desktop application for Windows 10/11 and Linux that wraps grok.com, providing desktop-application-like access to Grok with real-time API usage monitoring, multi-tab support, and seamless authentication for xAI, Google, and Apple accounts.
- Desktop application wrapper for grok.com
- Tabs functionality for multiple Grok conversations
- Real-time Usage Monitoring - Track your Grok usage limits:
- Low Effort: Basic query limits and remaining tokens
- High Effort: Advanced feature usage tracking
- Grok 4 Heavy: Specialized model usage limits
- Refill Timer: Shows when limits reset
- Keyboard shortcuts:
Ctrl+T: Open a new tabCtrl+Tab/Ctrl+Shift+Tab: Cycle through open tabs (next/previous)Mouse-wheel-scroll: Scroll open tabs when they are overflowing on the tab barCtrl+Mouse-wheel-scroll: Cycle through open tabs (next/previous)Ctrl+R: Reload the active tabCtrl+I: Show information/about dialog
- Authentication support for xAI, Google, and Apple accounts
- Clean interface with no menu bar for distraction-free usage
- Always-on-top function with cross-platform support (Windows & Linux)
- Dark/Light mode support with system theme detection
- Grok speech mode support
- Enhanced security with domain validation and OAuth protection
- Grok-Desktop_Installer-v1.2.5.exe - Windows installer (EXE)
- Grok-Desktop_Installer-v1.2.5.msi - Windows installer (MSI)
- Grok-Desktop_Portable-v1.2.5.exe - Portable Windows executable
- Grok-Desktop_Windows-v1.2.5.zip - Windows ZIP archive
- Grok-Desktop-v1.2.5.deb - Debian/Ubuntu package
- Grok-Desktop-v1.2.5.rpm - RPM package (RHEL/Rocky Linux/Fedora)
- Grok-Desktop_Linux-v1.2.5.tar.gz - Linux tar.gz archive
- Grok-Desktop_Linux-v1.2.5.7z - Linux 7z archive
- Operating System: Windows 10/11 or Linux (Rocky Linux 9/10, RHEL 9, Ubuntu, Fedora, etc.)
- Internet connection for accessing grok.com
- Grok account (sign up in-app or use Google/Apple/xAI authentication)
- Linux AOT (Always-on-Top) requirement: Install
wmctrlfor Always-on-Top functionality:- Rocky Linux/RHEL/Fedora:
sudo dnf install wmctrl - Ubuntu/Debian:
sudo apt install wmctrl
- Rocky Linux/RHEL/Fedora:
- Operating System: Windows 10/11 or Linux
- Node.js: LTS version (20.x recommended)
- Internet connection for downloading dependencies
Grok-Desktop/
βββ src/ # Main Electron application code
β βββ main.js # Main Electron process
β βββ preload.js # Preload script for renderer security
β βββ renderer.js # Renderer process code
β βββ custom-tabs.js # Custom tabs implementation
β βββ grok.ico # Windows application icon
β βββ grok.png # Linux application icon
βββ assets/ # Static assets
β βββ icon.png
β βββ icon.svg
βββ build-resources/ # Build configuration and resources
β βββ icons/ # Application icons for different sizes
β βββ after-install.sh # Post-installation script
β βββ after-remove.sh # Post-removal script
β βββ com.grok.desktop.metainfo.xml # App metadata for Linux
βββ index.html # Main application HTML
βββ styles.css # Application styles
βββ about.html # About dialog HTML
βββ package.json # Node.js dependencies and build config
βββ build.bat # Windows build script
βββ build-linux.sh # Linux build script
βββ CHANGELOG.md # Version history and changes
βββ LINUX_BUILD_GUIDE.md # Detailed Linux build instructions
βββ new_features.md # Security features documentation
βββ README.md # This file
<<<<<<< HEAD
- Install Node.js from nodejs.org.
- Clone this repository or download the files.
- Install dependencies if needed:
npm install - Build using npm scripts:
- Directory build (unpacked):
npm run build-dir - Portable executable:
npm run build-portable - Full installers (NSIS + MSI):
npm run build-installer
- Directory build (unpacked):
Notes:
- These scripts use
npx electron-builder@latest(no global install required). - All build outputs are written to the
builddirectory.
- After building, install
Grok-DesktopwithGrok-Desktop_Installer-v1.2.3.exefrom thebuilddirectory - Launch
Grok-Desktopfrom the Start Menu - Log in via
grok.com, using Google, Apple, or xAI authentication as needed. - Use the + button in the top toolbar (or Ctrl+T) to add new tabs.
- Click the AOT button in the top right to toggle always-on-top functionality.
- Use keyboard shortcuts to work faster:
- Ctrl+T: Open a new tab
- Ctrl+Tab / Ctrl+Shift+Tab: Cycle through open tabs (next/previous)
- Ctrl+R: Reload the currently active tab
- Ctrl+I: Show information/about dialog
- Ctrl+T: Open a new tab
- Ctrl+Tab: Switch to the next tab
- Ctrl+Shift+Tab: Switch to the previous tab
- Ctrl+R: Reload the active tab (does not reload the entire app window)
- Ctrl+I: Show information/about dialog =======
- Install Node.js LTS (20.x recommended) from nodejs.org
- Clone this repository:
git clone https://github.com/AnRkey/Grok-Desktop.git - Navigate to the project:
cd Grok-Desktop - Install dependencies:
npm install
development
# Full installer (NSIS + MSI)
npm run build-installer
# Portable executable
npm run build-portable
# Directory build (unpacked)
npm run build-dir# RPM + AppImage packages
npm run build-linux
# RPM only for RHEL/Rocky Linux
npm run build-rhel
# All platforms (Windows + Linux)
npm run build-allNotes:
- All scripts use
npx electron-builder@latest(no global installation required) - Build outputs are written to the
build/directory - For detailed Linux build instructions, see LINUX_BUILD_GUIDE.md
- Download and run
Grok-Desktop_Installer-v1.2.5.exefrom the releases page - Follow the installation wizard
- Launch "Grok Desktop" from the Start Menu
cd build
sudo dnf install ./Grok-Desktop-v1.2.5.x86_64.rpm- Launch Grok-Desktop from your applications menu or desktop shortcut
- Sign in to grok.com using your xAI, Google, or Apple account
- The application opens with your first Grok tab
- Tab Bar: Create and switch between multiple Grok conversations
- Navigation Controls: Back/forward buttons, reload, and URL bar
- Toolbar Buttons:
- +: Create new tab
- β»: Reload current tab
- AOT: Toggle always-on-top mode
- s: Toggle API usage statistics display
- π: Toggle Grok-4-Heavy stats visibility (eye icon)
- i: Show about dialog
Grok-Desktop includes real-time monitoring of your Grok API usage limits:
When enabled (click the s button), a status bar appears at the bottom showing:
- Low Effort:
remaining / total- Basic query limits - High Effort:
remaining / total- Advanced feature usage - Grok 4 Heavy:
remaining / total- Specialized model limits - Refill: Time until limits reset (when applicable)
- Green: Normal usage levels
- Orange: Warning (β€25% remaining)
- Red: Critical (β€10% remaining)
- Auto-refresh: Updates every 5 seconds when active
- Persistent settings: Remembers your display preferences
- Toggle controls: Hide/show specific statistics as needed
- Login detection: Shows "Login required" when not authenticated
Thanks to Joshua Wang for his code.
| Shortcut | Action |
|---|---|
Ctrl+T |
Open a new tab |
Ctrl+Tab |
Switch to next tab |
Ctrl+Shift+Tab |
Switch to previous tab |
Ctrl+R |
Reload active tab |
Ctrl+I |
Show information/about dialog |
- Click the AOT button to toggle always-on-top mode
- The button turns green when active
- On Linux, requires
wmctrlpackage (automatically handled)
Need help? Found a bug? Have a feature request?
Please include:
- Operating System & Version: e.g., "Rocky Linux 10 with GNOME 49"
- Application Version: Found in Help β About dialog
- Steps to Reproduce: Detailed step-by-step instructions
- Expected vs Actual Behavior: What should happen vs what actually happens
- Screenshots: If applicable, especially for UI issues
- Error Messages: Copy any error messages from console/terminal
- System Details: GPU, display server (X11/Wayland), etc.
Check existing issues first to avoid duplicates.
Symptoms: AOT button doesn't work on Rocky Linux/GNOME
Solution: Ensure wmctrl is installed:
# Rocky Linux/RHEL/Fedora
sudo dnf install wmctrl
# Ubuntu/Debian
sudo apt install wmctrlSymptoms: Clicking 's' button doesn't show usage data Solution:
- Ensure you're logged into Grok.com in the application
- The feature requires an active Grok session to fetch API limits
- If you see "Login required", sign in through the Grok tab
- Statistics should appear automatically once authenticated
Symptoms: App fails to launch Solutions:
- Check system requirements (4GB RAM minimum)
- Try running from terminal to see error messages
- On Linux, ensure required libraries are installed:
sudo dnf install gtk3 libXScrnSaver alsa-lib nss
Symptoms: npm run build-linux fails
Solutions:
- Install build dependencies:
sudo dnf groupinstall "Development Tools" - For RPM builds on Rocky Linux 10:
sudo dnf install libxcrypt-compat - See LINUX_BUILD_GUIDE.md for detailed instructions
Your feedback helps improve Grok-Desktop! Here's how to contribute:
- π Bug Reports: Submit an issue
- β¨ Feature Requests: Submit an enhancement
- π¬ General Feedback: Email anrkey@gmail.com with subject "Grok-Desktop Feedback"
- π Documentation: Help improve docs by submitting pull requests
All feedback is reviewed and considered for future updates. Thank you for helping make Grok-Desktop better!
Grok-Desktop is built with:
- Electron: Cross-platform desktop app framework
- Node.js: Backend runtime
- Web technologies: HTML, CSS, JavaScript for the UI
- Custom tabs: Multi-tab interface using Electron's webview
- Domain validation: Prevents malicious subdomain attacks
- OAuth protection: Secure handling of Google/Apple/xAI authentication
- External URL validation: Blocks localhost/private IPs and validates protocols
- CSP headers: Content Security Policy for additional protection
- Sandboxing: Electron's security features enabled by default
Real-time tracking of Grok API usage limits via authenticated API calls:
- Rate Limits API: Fetches current usage data from
grok.com/rest/rate-limits - Model-Specific Tracking: Monitors both standard models and Grok-4-Heavy
- Token-Based Calculations: Displays remaining queries against total allowances
- Session-Based Authentication: Uses persistent Grok session cookies for API access
- Parallel Fetching: Concurrently retrieves multiple model limits for performance
- Error Handling: Graceful fallbacks when API is unavailable or authentication fails
- Local Storage: Remembers user preferences for display settings
- Auto-Refresh: Background updates every 5 seconds when monitoring is active
Cross-platform always-on-top functionality with automatic compatibility handling:
- Uses Electron's built-in
BrowserWindow.setAlwaysOnTop()method - Native Windows API integration
- Primary: Uses
wmctrlcommand-line tool for reliable window management - Fallback: Electron's
setAlwaysOnTop()method whenwmctrlunavailable - Wayland Compatibility: Automatically detects Wayland and restarts with X11 forced
- GNOME Support: Works with GNOME Shell and Mutter window manager
# Required for AOT functionality
sudo dnf install wmctrl # Rocky Linux/RHEL/Fedora
sudo apt install wmctrl # Ubuntu/Debian- Bug Fix: Fixed Usage Stats "Login required" error on Windows 11 (Issue #11)
- API calls now execute in webview context with proper authentication
- Thanks to Joshua Wang for identifying the root cause
- Previous (v1.2.4): API Usage Monitoring, enhanced security, improved Linux AOT support
For complete changelog, see CHANGELOG.md.
- π Bug Fix: Fixed Usage Stats "Login required" error on Windows 11
- Resolved 403 API errors by executing fetch in authenticated webview context
- Thanks to Joshua Wang (@JoshuaWang2211) for the bug report and solution
- v1.2.4: API Usage Monitoring, enhanced security, improved Linux AOT
- v1.2.3: Reload button, MSI installer, build improvements
- v1.2.2: Electron security update (CVE-2025-55305)
- v1.2.1: Better dark mode, voice mode support
- v1.2.0: WebRTC/audio support, CSP enhancements
See CHANGELOG.md for complete version history.
We welcome contributions! Please see CONTRIBUTING.md for:
- Development setup instructions
- Coding standards and guidelines
- Pull request process
- Testing requirements
git clone https://github.com/AnRkey/Grok-Desktop.git
cd Grok-Desktop
npm install
npm start # Run in development modeThis project is licensed under the GNU General Public License version 2.0 (GPL-2.0). See the LICENSE file for details.
- Issues & Bug Reports: GitHub Issues
- Email: anrkey@gmail.com
- Releases: GitHub Releases
- Electron: Cross-platform desktop app framework
- electron-tabs: Multi-tab interface library
- wmctrl: Linux window management (AOT functionality)
The grok.ico application icon was sourced online and converted for use in this project. If you are from xAI or Grok.com and have concerns about the use of this artwork, please contact us and we'll address it promptly.
Grok-Desktop v1.2.5 - Making Grok accessible everywhere! π
