Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Build & Release

on:
push:
branches: [ main, development ]
tags: [ "v*" ]
pull_request:
branches: [ main, development ]
workflow_dispatch:

permissions:
contents: write

jobs:
build:
name: Build (${{ matrix.platform }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
platform: mac
builder_args: "--mac --arm64"
- os: windows-latest
platform: windows
builder_args: "--win --x64"
- os: ubuntu-latest
platform: linux
builder_args: "--linux deb AppImage"
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm

- name: Install dependencies
run: npm ci

- name: Build ${{ matrix.platform }} artifacts
run: npx --yes electron-builder@24.13.3 ${{ matrix.builder_args }} --publish never
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: grok-${{ matrix.platform }}
if-no-files-found: warn
retention-days: 14
path: |
build/*.dmg
build/*.zip
build/*.exe
build/*.msi
build/*.deb
build/*.AppImage
build/*.rpm

- name: Publish to GitHub Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
build/*.dmg
build/*.zip
build/*.exe
build/*.msi
build/*.deb
build/*.AppImage
build/*.rpm
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

## [1.3.1] - 2026-06-06

### Added

- **Drag ghost improvements** — padded transparent window so tab shadows and rounded corners are no longer clipped
- **Holographic merge hint** — ghost becomes translucent when dragged over another window's tab strip
- **In-strip reorder mode** — ghost hides while over the source window's tab bar so live tab reordering is visible

### Changed

- **App renamed to Grok** — builds now produce `Grok.app` (macOS) and `Grok.exe` (Windows) instead of "Grok Desktop Universal"
- Simplified release artifact names (`Grok-v1.3.1-arm64.dmg`, `Grok_Installer-v1.3.1.exe`, etc.)
- Updated window title, About page, Linux metainfo, and Windows build scripts for the new name
- Bump version to 1.3.1

## [1.3.0] - 2026-06-06

This release marks the **Grok Desktop Universal** fork of AnRkey/Grok-Desktop.

### Added

- **macOS support** (Apple Silicon / arm64) with a native `.icns` icon and DMG/ZIP packaging
- **Browser-style tearable tabs** - drag a tab out of the window to create a separate window
- **Multi-window support** - drag tabs back onto another window's tab strip to merge them
- **Multi-select tabs** - `Cmd/Ctrl`-click and `Shift`-click to drag multiple tabs at once
- **Cross-platform CI** - GitHub Actions workflow that builds and publishes macOS, Windows, and Linux release artifacts on `v*` tags

### Changed

- Rebranded to `grok-desktop-universal` (product name "Grok Desktop Universal")
- Bump version to 1.3.0

## [1.2.4] - 2025-12-14

Expand Down
58 changes: 47 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,85 @@
# Grok-Desktop v1.2.4
# Grok v1.3.1

> A cross-platform fork of [AnRkey/Grok-Desktop](https://github.com/AnRkey/Grok-Desktop) with native **macOS** builds and **browser-style tearable tabs**.

## Description
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.

Grok is an Electron-based desktop application for **macOS, 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.

## Screenshot

![Screenshot](screenshot.png)

## What's new in this fork

- **Native macOS support** (Apple Silicon / arm64) with proper `.icns` icon and DMG/ZIP packaging
- **Browser-style tearable tabs** - drag a tab out of the window to pop it into its own window, just like Chrome/Firefox
- **Multi-window support** - drag tabs back onto another window's tab strip to merge them
- **Multi-select tabs** - `Cmd/Ctrl`-click and `Shift`-click to move several tabs at once
- **Automated cross-platform release builds** via GitHub Actions (macOS, Windows, and Linux artifacts)

## Features

- **Desktop application wrapper** for grok.com
- **Tabs functionality** for multiple Grok conversations
- **Tearable / dockable tabs** - pull a tab into its own window or merge it back
- **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 tab
- `Ctrl+Tab` / `Ctrl+Shift+Tab`: Cycle through open tabs (next/previous)
- `Ctrl+R`: Reload the active tab
- `Ctrl+I`: Show information/about dialog
- `Ctrl/Cmd+T`: Open a new tab
- `Ctrl/Cmd+Tab` / `Ctrl/Cmd+Shift+Tab`: Cycle through open tabs (next/previous)
- `Ctrl/Cmd+R`: Reload the active tab
- `Ctrl/Cmd+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)
- **Always-on-top function** with cross-platform support (macOS, Windows & Linux)
- **Dark/Light mode support** with system theme detection
- **Grok speech mode** support
- **Enhanced security** with domain validation and OAuth protection

## Download
[Download Grok-Desktop_Installer-v1.2.4.exe](https://github.com/AnRkey/Grok-Desktop/releases/download/v1.2.4/Grok-Desktop_Installer-v1.2.4.exe)

Pre-built installers for macOS, Windows, and Linux are published automatically on the [Releases page](https://github.com/perlytiara/Grok-Desktop-Universal/releases) of this fork.

- **macOS (Apple Silicon)**: `Grok-v1.3.1-arm64.dmg` (installs `Grok.app`)
- **Windows**: `Grok_Installer-v1.3.1.exe` (installs `Grok.exe`)
- **Linux**: `Grok-v1.3.1.deb` or the `.AppImage`

## System Requirements

### For Using the Application
- **Operating System**: Windows 10/11 or Linux (Rocky Linux 9/10, RHEL 9, Ubuntu, Fedora, etc.)
- **Operating System**: macOS 12+ (Apple Silicon), 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 `wmctrl` for Always-on-Top functionality:
- Rocky Linux/RHEL/Fedora: `sudo dnf install wmctrl`
- Ubuntu/Debian: `sudo apt install wmctrl`

### For Building from Source
- **Operating System**: Windows 10/11 or Linux
- **Operating System**: macOS, Windows 10/11, or Linux
- **Node.js**: LTS version (20.x recommended)
- **Internet connection** for downloading dependencies

### Building locally

```bash
npm install

# macOS (Apple Silicon)
npm run build-mac-arm64

# Windows
npm run build

# Linux (deb + rpm)
npm run build-rpm-deb
```

Built installers are written to the `build/` directory. Cross-platform release artifacts are also produced automatically by the GitHub Actions workflow in `.github/workflows/build.yml` whenever a `v*` tag is pushed.

## Project Structure
```
Grok-Desktop/
Expand Down Expand Up @@ -118,7 +154,7 @@ npm run build-all
### Windows
1. Download and run `Grok-Desktop_Installer-v1.2.4.exe` from the releases page
2. Follow the installation wizard
3. Launch "Grok Desktop" from the Start Menu
3. Launch **Grok** from the Start Menu

### Linux

Expand Down
4 changes: 2 additions & 2 deletions about.html
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
}
}
window.addEventListener('DOMContentLoaded', function() {
const name = getParam('name', 'Grok Desktop');
const name = getParam('name', 'Grok');
const version = getParam('version', '0.0.0');
const repo = getParam('repo', 'https://github.com/AnRkey/Grok-Desktop');
const developer = getParam('developer', '');
Expand Down Expand Up @@ -146,7 +146,7 @@
</head>
<body>
<div class="container">
<h1 id="appName">Grok Desktop</h1>
<h1 id="appName">Grok</h1>
<p class="small" id="version">Version: 0.0.0</p>
<p class="small" id="developerLine">Developer: <a id="developerLink" href="#">AnRkey</a></p>
<p><a id="repoLink" href="#">GitHub Repository</a></p>
Expand Down
4 changes: 2 additions & 2 deletions build-resources/com.grok.desktop.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<id>com.grok.desktop</id>
<metadata_license>MIT</metadata_license>
<project_license>GPL-2.0</project_license>
<name>Grok Desktop</name>
<name>Grok</name>
<summary>Desktop application for Grok.com with tab support</summary>
<description>
<p>
Expand All @@ -26,7 +26,7 @@
<developer_name>AnRkey</developer_name>
<screenshots>
<screenshot type="default">
<caption>Grok Desktop main interface</caption>
<caption>Grok main interface</caption>
<image>https://raw.githubusercontent.com/AnRkey/Grok-Desktop/main/screenshot.png</image>
</screenshot>
</screenshots>
Expand Down
Binary file added build-resources/grok.icns
Binary file not shown.
8 changes: 4 additions & 4 deletions build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set BUILD_TARGET=%1
if "%BUILD_TARGET%"=="" set BUILD_TARGET=win

echo ===================================================
echo Building Grok Desktop - Target: %BUILD_TARGET%
echo Building Grok - Target: %BUILD_TARGET%
echo ===================================================

:: Validate build target
Expand All @@ -32,9 +32,9 @@ echo.
:: Clean previous build files
echo Cleaning previous build files...
rem Try to stop any running instances that may lock files
echo Stopping running Grok Desktop instances ^(if any^)...
taskkill /IM "Grok Desktop.exe" /F >nul 2>&1
taskkill /IM "Grok Desktop.exe" /T /F >nul 2>&1
echo Stopping running Grok instances ^(if any^)...
taskkill /IM "Grok.exe" /F >nul 2>&1
taskkill /IM "Grok.exe" /T /F >nul 2>&1
taskkill /IM "electron.exe" /F >nul 2>&1
taskkill /IM "electron.exe" /T /F >nul 2>&1

Expand Down
Loading