Stabilizing Parallel Working Copies with Git Mode Preserving Uncommitted Changes
When you want to branch off to try new ideas without disrupting ongoing work, it is the perfect time to use worktrees (a Git feature that lets you run multiple parallel copies of the same project).
When creating a worktree in Git mode using -w, it now preserves current uncommitted changes and is compatible with repositories that use separate git directories. Running it in a non-Git repository or an empty Git repository now displays a clear error.
Copies created with the --worktree-ref flag will no longer mistakenly include incorrect submodule content or raw LFS pointer text.
If you launch two creations simultaneously with the same label, both copies will complete smoothly without throwing an already-exists error. When creation fails, the home page and all paths also consistently print a clear reason.
FEATURE
Strict Safeguards for Removing Worktrees to Avoid Accidental Deletion of Same-Named Files
When organizing a project and preparing to clean up unused branch copies, the biggest fear is running a command that wipes out unsaved work.
When running grok worktree rm to delete a worktree without adding the -f force flag, the command immediately reports an error and refuses deletion if that worktree is in use or has unsaved changes. It also will not accidentally delete other unrelated folders that merely happen to share the same name.
When specifying deletion by label, if that label exists across multiple repositories simultaneously, the command actively refuses execution to prevent deleting the wrong target.
After running the /fork --worktree command, the image and log paths reported by the terminal now reliably point to real local files.
BUGFIX
File Write and Directory Navigation Safeguards with Isolated Discarding for Same-Named Files
When working with project files in the terminal, the greatest concern is disk or path anomalies wiping out or corrupting existing files.
If writing to a file fails, it now completely preserves the original content instead of leaving behind a blank, empty file. When switching directories with grok --cwd a, the command stays securely inside directory a rather than mysteriously running inside a duplicated, nested a/a.
When discarding file changes in the interface, it only reverts the files you explicitly checked, never affecting other files with similar names.
When a session's working directory is deleted externally or does not exist, entering a prompt immediately reports failure with a clear message, rather than delaying errors or recreating that working directory on its own. Terminal tool calls will neither fail nor overflow even if the workspace directory is missing or the tool output volume is massive.
Previously, moved directories or interrupted writes easily left blank files or touched similarly named files; now, every file operation comes with explicit stop-loss and protection mechanisms.
FEATURE
Click Top Header to Copy Full Branch Names as Dashboard Fully Displays Worktrees
When you need to send an active branch name to a colleague or paste it into release notes, clicking directly in the interface saves the time of manually querying it via commands.
Clicking the Git branch name in the top header directly copies the full branch name. Even in narrow terminal windows, long branch names are automatically abbreviated, but clicking still copies the entire name.
The dashboard now indicates the worktree to which each session belongs, displays the selected -m model in the input box for creating new agents, and allows freely toggling worktree mode within the folder picker.
File conflicts encountered during Git merges or rebases are also listed directly in the changes list, making it easy to see at a glance which files require conflict resolution.
FEATURE
Compact Mode Collapses Dock Without Sending Queued Prompts on Tab Close
If you want to focus on the current conversation within limited terminal screen space, switching to compact mode quickly frees up your view.
Compact mode now automatically collapses summary information and maintains reasonable internal padding in taller terminal windows. It also actively hides the dock or task panel, matching the exact effect of manually pressing Ctrl+G.
When you use Ctrl+G to hide the dock, the queue panel and the Ctrl+; shortcut that summons queued items continue to pop up and operate normally.
The command palette and model selector opened with Ctrl+P have been adjusted to match the width of the settings window. After closing a tab that is executing a task, queued prompts are no longer sent to the model.
FEATURE
Export Formats Supported for Tables with Live Previews Tracking Server Status
When the model organizes large comparison datasets in the terminal, you no longer need to struggle with mouse selections before manually pasting into a spreadsheet.
Exported tables now include dedicated copy buttons to export directly in TSV, CSV, or Markdown format, making it easy to paste straight into Excel or various spreadsheet applications.
Pinned live preview items now clearly indicate whether a running application is actually detected behind the URL.
The timestamp feature can now be adjusted via the settings interface or by running /timestamps, offering three display modes: off, minimal, and on.
In the /usage and /session-info windows, excessively long error messages wrap automatically instead of being cut off by window borders. Redundant dash symbols have also been removed from status messages and subagent lists, producing a cleaner visual layout.
Previously, copying terminal tables required time to re-split columns, and long messages were frequently clipped by windows; now, every output integrates directly with daily tools and renders completely.
BUGFIX
View History Summaries Without Scrolling as Slash Commands Accept Mixed Case
When conversation turns accumulate and trigger background compaction, you can now see the condensed summary of the active project conversation at a single glance.
Conversation summaries are now fully visible on screen out of the box without requiring manual scrolling. If a turn includes compacted messages, it scrolls into a visible position once the turn ends, rather than remaining hidden below the window bottom.
Slash commands are fully case-insensitive, executing normally whether you type /COMPACT or /Compact.
When running /context to view context, the interface no longer displays auto-compaction thresholds that the agent never reported. When tool calls are triggered mid-explanation, the terminal stops needlessly redrawing the pager.
FEATURE
Diagnostics Accurately Pinpoint Faulty Configurations as Feedback Faithfully Reports Delivery Status
When environmental configuration issues prevent tools from starting normally, precise self-diagnosis spares you the pain of repeatedly scouring configuration files.
When running the grok doctor health check command, the tool now pinpoints the configuration files or settings obstructing startup, instead of blindly reporting zero anomalies.
When running the grok doctor fix auto-repair command, the confirmation dialog defaults focus to the Cancel button, preventing users from accidentally modifying existing shell or tmux configuration files due to quick keystrokes.
If a workflow file fails to parse, the error report explicitly lists the filename and detailed parse error message, instead of leaving behind a vague "unknown workflow".
Drafts saved by the model in the background now faithfully display their actual titles in the /feedback window. Submitting feedback also accurately reports delivery success or failure, without prematurely displaying thank-you prompts or stacking duplicate prefixes.
Previously, resolving configuration conflicts meant guessing and debugging; now, clear and transparent status feedback accompanies everything from startup checks to feedback submissions.
BUGFIX
Targeted Interruption for Specific Responses While Marking Cancelled Tool States Correctly
When multiple tasks advance concurrently in the background and you spot an error in one direction, you need to halt it precisely without disturbing other operating processes.
When issuing a targeted cancellation request, it now halts only the specific response explicitly designated by the client, without affecting other ongoing work.
In conversation turns cancelled midway through, tool calls that have not yet received responses are properly recorded as cancelled, rather than erroneously marked as successful.
When choosing to let the program continue running, commands running inside background subagents are safely preserved without unintended interruption. Pressing Ctrl+\ or numbers with modifier keys also no longer triggers buttons on permission panels or cancellation confirmation cards.
BUGFIX
Permission Rules Gain Fault Tolerance with Native Tool Names Managed Directly
When setting up access allowlists for command-line tools, a minor typo in a configuration file should not bring down the entire protection mechanism.
Permission rules now directly support native tool names such as run_terminal_command and Shell, allowing control rules to align directly with underlying tool calls. When a terminal command matches rules set by the permission manager, the terminal faithfully prompts for confirmation or grants direct access.
Even if a managed permission configuration file contains isolated invalid keys, remaining valid rules still load and take effect normally. An invalid syntax rule within a section will no longer invalidate all other rules across that block.
The grep search tool now strictly honors read denial rules that start with ./ relative paths.
Previously, a single typo in a configuration file could paralyze every allowlist and safeguard; with standalone fault tolerance now in place, day-to-day security controls are far more dependable.
FEATURE
Sessions Over 4MB Stay Connected, Stream Drops Automatically Retry
When you have in-depth, multi-turn architecture discussions with a model, the biggest worry is that conversations grow too long, causing connections to drop without warning or return incomplete answers.
Even when conversation content exceeds 4 MiB, ultra-long sessions maintain a stable connection; if a model call stalls halfway through, it retries automatically before marking the turn as failed.
If a Chat Completions stream disconnects abruptly without a finish reason, it automatically retries instead of leaving incomplete fragments behind; retry backoff intervals are jittered across processes.
Request payload sizes now strictly observe the limit configured in max_request_bytes; switching models directly with /model preserves your previously configured reasoning effort instead of reverting to the new model's default.
FEATURE
Rewind Cursor Lands Accurately at Prompt End, Scheduler Supports Chinese Time Intervals
When you need to undo your previous question and make minor adjustments, the rewind command quickly returns you to the earlier turn.
When running /rewind to restore conversation history, the input cursor lands precisely at the end of the restored prompt, letting you backspace immediately or continue adding text; creating new sessions with persistent rewind checkpoints enabled also no longer crashes unexpectedly.
The /loop command and the scheduler_create tool now directly support non-English time intervals, such as entering 5分 to create recurring tasks without crashing the session.
Disabling a specific scheduler tool through the --disallowed-tools startup flag still allows all remaining enabled scheduler tools to load and start normally during launch.
When running tasks in the background or piping them into scripts, clear status indications and quiet input streams are essential.
Terminal commands display "Running …" while executing and "Ran …" when finished; if a background session is waiting for approval, the window title displays "Action Required" for prompt handling.
When running grok in headless mode (operating without a terminal window), it reads prompts directly from piped standard input without attempting to launch an interactive interface.
Setting [features] title_refresh = false in requirements.toml disables title refreshes even when GROK_TITLE_REFRESH is present; pinning [cli] use_leader = false as an administrator prevents starting a leader process even if the --leader flag is passed.
Background tasks previously left users unsure where work stalled, but status is now immediately clear and script processing is quieter and more reliable.
FEATURE
Config Supports Concurrent Multi-Window Writes, Notification Hooks Control Memory Usage
When you open multiple terminal windows to adjust preferences, saving simultaneously risks overwriting and corrupting global settings.
When multiple windows modify settings simultaneously, permissions lists and MCP (a protocol connecting AI to external tools) server settings in config.toml are no longer lost or corrupted.
Custom notification hooks (small programs triggered by specific events) configured under [[ui.notifications.hooks]] faithfully execute their specified commands upon matching events.
Even when executed command hooks print massive output text, memory usage no longer spikes abnormally.
Log output written to files, or environments where the NO_COLOR variable is active, keeps text in a clean plain-text format, preventing hard-to-read ANSI color codes from leaking in.
Editing preferences across multiple windows previously risked corrupting files, and high hook output caused memory spikes, but underlying file writes and log handling are now far more reliable.
FEATURE
Tool Search Supports Same-Named Servers, Memory Retrieval Compatible with CJK
When attaching multiple external services and knowledge bases to an agent, accurate tool discovery and memory retrieval are critical for smooth operation.
When multiple MCP (a protocol connecting AI to external tools) servers offer tools with identical names, running search_tool lists all matching tools without dropping options from any server.
The web_fetch tool proactively declines downloads before loading oversized files into memory, preventing memory exhaustion.
The memory_get tool strictly enforces file size limits, no longer returning oversized files that exceed thresholds; the memory_search tool now accurately matches Chinese, Japanese, and Korean words across lengthy notes.
Attaching multiple servers previously risked missing identically named tools, and querying Chinese notes often came up empty, but tool discovery is now thorough and large files are properly prevented from overflowing memory.
BUGFIX
Image Generation Rejects Invalid Files, Preserves Transparency and Camera Orientation
When asking a model to generate creative illustrations or process photo albums, inverted image orientations or broken transparency cutouts can ruin the result.
When invoking image generation, if the model returns content that is not a valid image file, the tool proactively rejects it instead of forcibly saving invalid data as a .jpg file.
When re-encoding images, the conversion routine automatically reads and preserves rotation orientation recorded in EXIF tags, keeping portrait photos upright.
Images with transparent backgrounds remain in PNG format after re-encoding, preventing transparent areas from turning solid black.
FEATURE
Terminal Preserves Indentation Tabs, Bundled ripgrep Ready for Immediate Use
When having models run terminal commands to analyze code, formatting indentation and efficient search determine debugging accuracy.
Tab characters contained in terminal command output are now preserved intact when passed to the model, rather than being stripped away or breaking alignment.
The bundled ripgrep search utility is now directly accessible to all commands in the terminal environment, making it immediately usable even inside minimal container images without extra installations.
Terminal tool documentation now clearly states the true output truncation limit; the file search tool grep also strictly honors relative globbing patterns from the current session directory.
Original changelog
Original changelogStabilizing Parallel Working Copies with Git Mode Preserving Uncommitted Changes
`grok -w` works in repositories that use a separate git dir, and shows a clear error outside a git repo or on an empty repo
Git-mode worktrees created with `-w` keep uncommitted changes
Worktrees created with `--worktree-ref` no longer contain the wrong submodule contents or LFS pointer text
Worktree creation shows the same clear error on every path
A failed worktree create shows a clear error on the home screen
Two worktree creates with the same label at the same time both succeed, instead of one failing with "already exists"
Original changelogStrict Safeguards for Removing Worktrees to Avoid Accidental Deletion of Same-Named Files
`grok worktree rm` without `-f` refuses to delete worktrees that are in use or have unsaved changes, and exits with an error
Image and log paths reported after `/fork --worktree` point at real files
`grok worktree rm` without `-f` no longer deletes a folder that only shares a name with a removed worktree
`grok worktree rm` by label refuses when that label exists in more than one repo
Original changelogFile Write and Directory Navigation Safeguards with Isolated Discarding for Same-Named Files
A failed file write leaves the previous contents in place instead of an empty file
`grok --cwd a` stays in `a` instead of running inside `a/a`
CLI tool calls no longer fail or overflow when the workspace directory is gone or the output is huge
A prompt fails immediately, with a clear message, when the session working directory is gone, instead of failing later or recreating it
Discard changes only the files you select, not similarly named files
Original changelogClick Top Header to Copy Full Branch Names as Dashboard Fully Displays Worktrees
Clicking the git branch in the header copies the full branch name
Long branch names abbreviate on narrow terminals and stay copyable
The dashboard shows which worktree each session belongs to, shows the `-m` model in the new-agent box, and lets you toggle worktree mode in the folder picker
Merge and rebase conflicts show up in the changes list
Original changelogCompact Mode Collapses Dock Without Sending Queued Prompts on Tab Close
Compact mode collapses recaps and keeps inner spacing on tall terminals
Compact mode hides the dock, or the tasks pane, the same way `Ctrl+G` does
The command palette (`Ctrl+P`) and the model picker open at the same width as the settings modal
The queue pane and `Ctrl+;` still appear and work when the dock is hidden with `Ctrl+G`
Closing a busy tab no longer sends its queued prompts to the model
Original changelogExport Formats Supported for Tables with Live Previews Tracking Server Status
A timestamps setting offers off, minimal, and on in Settings and `/timestamps`
Live preview pins include whether an app was observed behind the URL
Tables show copy buttons that export TSV, CSV, or Markdown for spreadsheets
Long error messages in the `/usage` and `/session-info` modals wrap instead of being cut off
Status messages and subagent rows no longer use em dashes
Original changelogView History Summaries Without Scrolling as Slash Commands Accept Mixed Case
Recap summaries show up on screen without scrolling
Slash commands run in any case, such as `/COMPACT` or `/Compact`
`/context` no longer shows an auto-compact threshold the agent did not report
Agent text stops redrawing the pager when a tool call interrupts the sentence
Compaction messages scroll into view instead of sitting below the bottom of the screen after a turn
Original changelogDiagnostics Accurately Pinpoint Faulty Configurations as Feedback Faithfully Reports Delivery Status
Drafts the model saves show up under their real titles in `/feedback`
A workflow file that fails to parse reports that file and the parse error, instead of "unknown workflow"
Feedback submissions report success or failure accurately, without an early thanks or a repeated prefix
`grok doctor` names the config file or setting that prevents Grok from starting, instead of reporting zero issues
`grok doctor fix` opens its confirmation on Cancel, so it does not edit shell or tmux config by accident
Original changelogTargeted Interruption for Specific Responses While Marking Cancelled Tool States Correctly
A targeted cancel stops only the response the client asked to stop
Cancelled turns mark unanswered tool calls as cancelled instead of succeeded
Continue to run no longer kills commands that are running inside background subagents
`Ctrl+\` and other modified digits no longer select an option on a permission or cancel card
Original changelogPermission Rules Gain Fault Tolerance with Native Tool Names Managed Directly
Shell permission decisions prompt or approve commands that match the permission manager
Permission rules accept native tool names such as `run_terminal_command` and `Shell`
A managed permission file with one bad key keeps its valid rules
One bad permission-rule entry no longer drops the other rules in that section
`grep` respects Read deny rules that use a leading `./`
Original changelogSessions Over 4MB Stay Connected, Stream Drops Automatically Retry
A stalled model call during a turn retries before the turn fails
Long sessions stay connected when the conversation is larger than 4 MiB
Request bodies stay under a configured `max_request_bytes` limit
The effort level stays the same after a bare `/model` switch, instead of jumping to the new model default
Chat Completions streams that end without a finish reason are retried instead of returning partial output
Retry waits differ between processes
Original changelogRewind Cursor Lands Accurately at Prompt End, Scheduler Supports Chinese Time Intervals
`/rewind` places the text cursor at the end of the restored prompt
`/loop` and `scheduler_create` accept non-ASCII intervals such as `5分` without crashing the session
Naming only one scheduler tool in `--disallowed-tools` no longer makes the other two fail startup
Starting a new session with durable rewind checkpoints on no longer crashes
Shell command output shows "Running …" while a command executes and "Ran …" when it finishes
The terminal title shows "Action Required" when any background session is waiting on approval
Headless `grok` accepts a prompt on piped stdin instead of trying to open the UI
`[features] title_refresh = false` in `requirements.toml` disables title refresh even when `GROK_TITLE_REFRESH` is set
An admin pin of `[cli] use_leader = false` keeps `--leader` from starting a leader process
Original changelogConfig Supports Concurrent Multi-Window Writes, Notification Hooks Control Memory Usage
Custom notification commands under `[[ui.notifications.hooks]]` run when their events match
Grok windows editing settings at the same time no longer drop or corrupt `config.toml` entries such as MCP servers or permission rules
Logs written to a file, or written when `NO_COLOR` is set, are plain text
Command hooks no longer spike memory when they print a lot of output
Original changelogTool Search Supports Same-Named Servers, Memory Retrieval Compatible with CJK
When several MCP servers expose a tool with the same name, `search_tool` returns all of them
`web_fetch` rejects a huge file before downloading it into memory
`memory_get` no longer returns a file that exceeds the read limit
`memory_search` finds Japanese, Chinese, and Korean words inside longer notes
Original changelogImage Generation Rejects Invalid Files, Preserves Transparency and Camera Orientation
Imagine replies that are not valid images are rejected instead of being saved as `.jpg` files
Re-encoded images keep the orientation from their EXIF tags
Transparent images stay PNG when they are re-encoded, instead of turning black
Original changelogTerminal Preserves Indentation Tabs, Bundled ripgrep Ready for Immediate Use
Tab characters in terminal command output are kept when the output is shown to the model
The bundled ripgrep is available to terminal commands, even on images that do not install it
Shell tool descriptions state the real output truncation limit, and `grep` respects globs relative to the session directory