Grok Build GUI

A desktop GUI for the Grok Build CLI

Grok Build ships as a terminal agent. Grok Build GUI puts a real desktop interface in front of it — a session sidebar, a streaming transcript with tool cards, a permission modal, an embedded browser the agent can drive, a terminal and a file tree — without reimplementing the agent itself.

MIT licensed macOS (Apple Silicon) Windows 10/11 Electron 42 React 19 ACP
Grok Build GUI running on macOS, showing the session sidebar, the workspace and branch picker, and the message composer
Grok Build GUI on macOS — session sidebar, workspace and branch picker, message composer.

A client, not a second agent

The app restores a pinned, integrity-checked grok executable, spawns grok agent stdio, and drives every session over the Agent Client Protocol. The agent stays the single source of truth for sessions, tools and loops; the GUI owns presentation, local OS capabilities, and the human-approval surface that ACP asks for.

Features

Everything the terminal gives you, plus the things a terminal cannot.

Streaming transcript

Per-turn navigation, a turn rail, and rewind-to-here. Markdown with syntax highlighting, inline image attachments and a lightbox.

Tool cards and diffs

Every tool call expands into arguments, results and unified diffs, with a file-change bar summarising what a turn touched.

Permission modal

Implements the ACP request_permission reverse-request: the agent asks, you allow or deny, per call — from ask-for-approval through full access.

Browser the agent can drive

A webview pane exposed to the agent as an MCP tool server. You watch every action; password fields always stop for explicit approval and are redacted.

Terminal and file tree

Real PTY sessions (node-pty + xterm.js) with a configurable shell, plus a file tree and viewer with reveal-in-Finder and open-with.

Git worktree isolation

Start a chat on its own worktree from any branch, so the agent's edits never touch your working copy. The app tracks status and cleans up.

Screen capture and voice

Full screen, window or drag-selected region straight into the composer as an attachment, plus push-to-talk speech-to-text.

Prompt queue and context meter

Keep typing while a turn runs and queue follow-ups. The context meter breaks the window into cached prefix, new input, reply, thinking tokens and free space.

Sessions and workspaces

Sessions grouped by project, searchable, renameable and resumable, with history streamed back in on load, and a workspace picker with recent projects.

Account and plugins

Grok sign-in via the CLI's OAuth flow with usage and quota display, plus plugin install, enable, disable and uninstall.

English and 简体中文

Interface language follows the system or can be set explicitly.

Auto-update

Opt-in per build, from GitHub Releases or any static feed. System proxy detection, persisted window state and a native app menu.

The Grok Build GUI sign-in window with the interface language set to Simplified Chinese
Sign-in hands off to xAI's OAuth page in your browser — shown here with the interface language set to Simplified Chinese.

Architecture

  • Renderer → main. The renderer holds no privileged handles. Agent prompts, terminal bytes, file reads and screen capture all cross a contextBridge preload surface into the main process.
  • Main → agent. The main process spawns the pinned grok agent stdio and speaks ACP over its stdio pipes. Session state, tool execution and goal loops live in the agent.
  • Agent → browser. A loopback HTTP bridge on a random port with a random 32-byte bearer token backs an MCP server descriptor handed to the agent. The agent's MCP child forwards browser_* calls back over that authenticated bridge, which drives the webview you are watching. The agent never touches the renderer directly.
  • Two safety layers. App permissions (ACP request_permission → the GUI modal) are what this app implements. The optional OS sandbox (Seatbelt/Landlock) is enforced by the agent and fails hard with EPERM.

Install and run

Requires Node.js 22.12+. Prebuilt installers are on the releases page; to run from source:

macOS

git clone https://github.com/msk-labs/grok-build-gui.git
cd grok-build-gui
./bootstrap --start

Windows

git clone https://github.com/msk-labs/grok-build-gui.git
cd grok-build-gui
.\bootstrap.cmd --start

bootstrap installs the locked npm dependencies and restores the exact runtime versions declared in config/runtime/. Downloaded runtime files land under thirdparty/ and are never committed.

FAQ

Does Grok Build have a GUI?

Grok Build ships as a terminal agent, so there is no official desktop GUI from xAI. Grok Build GUI is a third-party, open-source desktop client that drives the same CLI over ACP.

Is this a fork of the agent?

No. It is a client. It spawns the official pinned grok executable and talks to it over stdio; the agent keeps owning sessions, tools and loops.

Which platforms are supported?

macOS on Apple Silicon and Windows 10/11 on x64 or ARM64. Linux identifiers are reserved in the runtime manifest but remain unsupported until pinned artifact URLs, sizes and SHA-256 values are added and verified.

Is it free?

Yes. The GUI is MIT-licensed. The bundled Grok Build artifact is Apache-2.0 and ships with its upstream and third-party notices; Open Computer Use 0.2.1 is MIT-licensed.

How does it keep the agent from doing something unwanted?

Every tool call the agent flags goes through the ACP permission request, which surfaces as a modal you allow or deny per call. Password fields in the embedded browser always stop for approval, and the secret is redacted before the permission payload is shown or logged.