⚒️ Grok Forge — the unofficial Grok app for VS Code
Forge whatever you decide you want to make. Images through Imagine. Code through
Grok Build. All from friendly chat tabs in VS Code — running on your own Grok
subscription, with the terminal kept completely out of sight.
Unofficial. Grok Forge is a community project and is not affiliated with,
endorsed by, or supported by xAI. "Grok" is a trademark of xAI. This extension is
simply a friendly window onto the official Grok Build CLI that you install and sign
into yourself.
🆕 What's new in 0.9 — "Parity II"
Plan mode — read the plan before Grok changes anything. A Plan pill in the
chat title bar flips Grok into planning: it investigates your code and writes up what
it intends to do instead of doing it. The plan arrives as a card you can actually
read, and nothing is edited until you approve — then Grok switches back and carries
it out. Toggle it mid-conversation for the one risky change and come straight back
out. Connect your own tools (MCP) with the new Manage MCP Servers command —
Forge connects to each server itself first, reads back every tool it offers, and
shows you the list to approve; only servers you approve ever reach Grok, and if one
later changes its tools the approval is void. Grok reads your AGENTS.md project
rules, and a live activity panel shows the tools it's running as it runs them, so
a long turn is no longer a blank wait. Plus a security pass: hidden characters are
stripped from what Grok reads, permission cards show the verbatim command,
destructive commands stay carded even on auto-approve, and a per-turn tool-call brake
stops runaway loops. Full details on the Changelog tab.
🆕 What's new in 0.8 — "Checkpoints & Speed"
Checkpoints — a safety net for letting Grok edit. Every message you send now
snapshots your project first. A clock button in the chat title bar lists every
turn; click one and your files roll back to exactly how they were before it — an
edit undone, a deleted file restored, a file Grok created removed. It reverts
files only (your conversation with Grok stays exactly as it is) and never
touches your own Git history or your .gitignored secrets. @-mention files
too: type @ in the message box to filter your project's files and attach one
as context, so "explain @thing.ts" just works — with secrets never shown or
attachable. Plus a faster first message (Grok warms up in the background while
you read and type) and a smaller install. Full details on the Changelog tab.
🆕 What's new in 0.7.5 — "Polish"
A bigger, cleaner media viewer. Open a tall image or clip in a wide window and
the viewer now splits into three columns — actions on the left, the media centred
and filling the full height, caption and Refine on the right — instead of a narrow
strip with wide black margins. The clip gets about two-thirds more area, the
description shows in full, and it flips back to the familiar stacked layout on
narrow panels automatically as you resize. Plus a history button in the chat
title bar to jump straight to any past conversation, a Stop button that stays
reachable from inside the viewer, and a round of security hardening — Grok no
longer inherits your whole environment (including your SSH agent). Full details on
the Changelog tab.
🆕 What's new in 0.7
Video. Every generated image now carries a ▶ badge — click it, pick 6 or 10
seconds, and watch the video appear right where you're looking: a spinner with a
live second-count runs on the image itself, then the finished clip replaces it in place.
Nothing closes, nothing kicks you back to the chat, and the conversation stays clean —
no repeated photos, no restated requests. Open a clip and describe the motion in
plain English ("camera cranes up", "360° orbit") to re-animate it, or use the ✨
Suggestions picker (Camera · Lighting · Mood · Style) in either composer. A photo and
everything made from it now share one gallery tile: the grid shows the newest
version, ‹ › flips across tiles and ↑ ↓ walks a tile's history back to the
original.
0.7 also ships a security hardening pass: credential files (~/.ssh/id_rsa,
.aws/credentials, .netrc, .npmrc, .env*) are refused for reads and writes,
and Grok is now confined to your project folder — with no folder open it works in
a private contained folder instead of your entire home directory. Every file action
is re-checked before it runs. Details, and one honest known limitation about Grok's
own shell, are on the Changelog tab (or CHANGELOG.md).
What you get
- 💬 Multi-chat in real editor tabs — the anvil icon opens a sidebar hub; start a
new chat or reopen a past one and it opens as its own editor tab. Live streaming
responses, a model picker, and a
chat · plan · build · imagine cue so you always
know what Grok is set up to do.
- 🗂️ Local chat history — conversations are saved on your machine; reopen or delete
them from the sidebar hub. Nothing leaves your device.
- 🎨 A real image workflow — ask Grok to imagine something and results arrive as
compact cards. Click an image to expand it with its exact generation prompt beneath
it and ‹ › arrows to flip through the batch; refine the one you're viewing from
right there. Each card opens its own per-batch gallery. Right-click any image for
Copy / Save As… / Open / Show in Finder / Save to assets/ (with optional ASSETS.md
logging for license tracking). Images are detected from disk, so it works no matter
how Grok phrases its output.
- 📎 Attach & paste — attach files to a message,
@-mention a workspace file to
filter and attach it inline, paste a screenshot straight from the clipboard, and click
any image to expand it in a lightbox.
- ↩️ Checkpoints — every turn snapshots your project, so you can rewind your files to
before any message with one click. Files only — your conversation stays put, and your
own Git history and
.gitignored secrets are never touched.
- 📋 Plan mode — flip the Plan pill and Grok proposes an approvable plan before
it changes a thing. Approve and it executes; toggle back out whenever you like.
- 🔌 Your own tools via MCP — add MCP servers from Manage MCP Servers. Forge
vets each one itself and shows you every tool before it approves, and a server that
changes its tools has to ask again.
- 📐 Project rules — Grok picks up your
AGENTS.md house rules automatically;
the Project Rules (AGENTS.md) command will scaffold one if you don't have it.
- ⏱️ Never looks frozen — a live "Grok is working… Ns" timer that settles into
"took Ns" when the turn finishes.
- 🔐 Your subscription, your machine — everything runs through the official Grok
Build CLI locally. No keys to paste, no third-party servers in between.
- 🛡️ Real permission prompts — when Grok wants to act, you get big Allow/Deny
buttons (or flip on auto-approve in settings if you like to live fast).
- ♿ Accessibility-first — large click targets, high contrast, dictation button,
zero drag-and-drop, zero required keyboard shortcuts. Designed from day one for
single-click (including BCI) use.
Getting started
- Install this extension.
- Click the ⚒️ anvil icon in the activity bar.
- No Grok Build CLI yet? The welcome screen installs it for you — one button runs the
official installer (
curl -fsSL https://x.ai/cli/install.sh | bash), another runs
grok login so you can sign in with your subscription.
- Click New chat in the hub — it opens as an editor tab. Chat, imagine, forge.
Settings
| Setting |
What it does |
grokForge.grokPath |
Path to the grok binary (blank = $GROK_CLI_PATH or ~/.grok/bin/grok) |
grokForge.model |
Default model for new sessions |
grokForge.permissionMode |
ask (Allow/Deny buttons, default) or auto-approve |
grokForge.maxToolCallsPerTurn |
Brake on runaway turns — max tool calls Grok may make in one turn (default 100, 0 = off) |
How it works
Grok Forge speaks the Agent Client Protocol (ACP) to a persistent grok agent stdio
session — the same architecture the official Claude Code and Zed integrations use to
talk to their CLIs. The extension is a thin, friendly cockpit; the CLI does the flying.
License
MIT. Not affiliated with xAI — see the disclaimer above.