0.204.0
Sep 10, 2025
macOS
Loading...
Loading...
Linux
Loading...
Loading...
This week's release includes support for using the basedpyright
Python language server by default, external agents over SSH, plan mode for Claude Code, Git uncommit and blame view in multi buffers, more syntax tree navigation commands, a more familiar terminal toggling action that matches VSCode and JetBrains behavior, better URL detection in the terminal, many language improvements, and more!
Features
General
- Added blame view and inline blame support for multi buffer editors. (#37366)
- Added a new action
terminal::Toggle
that is by default bound to 'ctrl-`'. This copies the default behavior from VSCode and JetBrains where the terminal opens and closes correctly. If you'd like the old behavior you can rebind 'ctrl-`' toterminal::ToggleFocus
. (#37585) - Terminal: Improved URL detection to now correctly handle trailing punctuation from sentence context. URLs ending with periods (like
https://example.com.
) and unbalanced parentheses (likehttps://example.com/path)
) are now properly detected without including the trailing punctuation. (#37684; thanks Mearman) - Terminal: Improved terminal path hyperlink navigation by considering the terminal working directory. (#36962; thanks davewa)
- Added
project_panel::OpenSplitVertical
andproject_panel::OpenSplitHorizontal
actions for opening files in splits. (#36973; thanks tie) - Added
editor::GoToNextDocumentHighlight
andeditor::GoToPreviousDocumentHighlight
to navigate to the next LSP document highlight. Useful for navigating to the next usage of a certain symbol. (#35994; thanks MarcoPolo) - Added the ability to specify a human-readable project name for each worktree. (#36713; thanks Warpten)
- Added
editor: select {next,previous} syntax node
actions. (#35053; thanks idanov) - Added a new
diagnostics: display current file
command to view diagnostics for the currently open file. (#34430; thanks dinocosta) - Added line ending selector. (#35392; thanks MatinAniss)
- Changed the syntax tree view to stay attached to the buffer it was opened in, similar to the Markdown preview. Use the
UseActiveEditor
action when the view is shown to change it to the last focused editor. (#37570) - Updated error view to show the error in invalid buffer view. (#37657)
- Improved fallback open picker to be more intuitive. (#37564)
- Changed remote projects to sync in local user settings. (#37560)
- Linux: Migrated to newer version of Blade upstream. (#37516; thanks WERDXZ)
- Added ability to create sub-directories when renaming a file in file finder. (#37437; thanks Zertsov)
- Improved word deletions to consider whitespace sequences and brackets by default. (#37352)
AI
- Claude Code: Added support for plan mode, and all other permission modes. (#37632)
- Agent: Added support for Gemini CLI, Claude Code, and custom external agents in SSH projects. (#37725)
- Agent: Added keybindings for authorizing tool calls (
agent: Allow once
,agent: Allow always
,agent: Reject once
) in the agent panel. (#37876) - Agent: Added support for mistral-nemo for Ollama. (#37723; thanks sbe-arg)
- Agent: Fixed model selector query to clear on dismiss. (#37569; thanks imumesh18)
- Agent: Improved "now" and "edit_file" tool schemas to work with more models. (#37397; thanks fbo25)
- Ollama: Improved format when returning tool results to the models. (#34750; thanks marius851000)
- ACP: Updated Gemini ACP server to use proxy settings from Zed configuration. (#37790; thanks npatsakula)
- Language Models: Added support for OpenRouter user preferences for available models. (#37534; thanks imumesh18)
- Enhanced model vendor compatibility to automatically support future AI providers and improved token counting accuracy using vendor-specific tokenizers from the GitHub Copilot. (#37118; thanks imumesh18)
Vim / Helix
Debugger
- Enabled the debugger panel to be opened via the app's
View
menu option. (#37805)
Git
- Added
git: uncommit
action. (#37031; thanks AlvaroParker) - Added option to show the author name in a branch picker commit information. (#36812; thanks lzakharov)
- Added toggle to switch between sorting git panel entries by path or by status (available in git panel ellipsis menu). (#35704; thanks nick-kilian)
- Improved git error messages. (#35946; thanks jacobtread)
- Updated the branch picker to have the current branch first in the list. (#35138; thanks launay12u)
Languages
- Markdown: Added support for inline HTML
img
tags inside paragraphs. (#37264; thanks RemcoSmitsDev) - Markdown: Improved syntax highlighting. (#37669; thanks chbk)
- Markdown: Added wrapping text into
*
by selecting text and writing the*
. (#37426) - Rust: Added shorthand field highlighting. (#37674; thanks chbk)
- Python: Added package origin to completions from
pyright
/basedpyright
. (#37865) - Python: Added ability for users to specify a custom path to their virtual environment from within the picker. (#37009)
- Go: Added label highlighting. (#37673; thanks chbk)
- Go: Changed
gopls
default to match what Go specifies. (#37551; thanks Zertsov) - Isograph: Added support for injecting Isograph language support into
iso
function calls. (#36320; thanks XiNiHa) - Added LSP binary config to allow fetching nightly rust-analyzer and clangd releases. (#37530)
Bug Fixes
- Agent: Fixed a crash that occurred when typing an IME character right after a mention. (#37847)
- Agent: Fixed OpenAI and OpenAI Compatible provider API keys being persisted when changing the API URL setting. Authentication is now properly revalidated when settings change. (#37610; thanks imumesh18)
- Agent: Fixed
context_server
duplication when name is updated. (#35403; thanks imumesh18) - Agent: Fixed word completions appearing in the agent panel's editor and not appearing when triggered with the action before the completion threshold is reached. (#37697)
- Agent: Fixed empty delta text content to be skipped in OpenAI and OpenAI compatible provider. (#37626; thanks imumesh18)
- Edit Prediction: Fixed a bug where requests were marked eligible for data collection despite the recent edit history in the request involving files that may not be open source. The requests affected by this bug will not be used in training data. (#37680)
- Edit Prediction: Fixed requests including recent edits from other projects (other Zed windows). (#37595)
- Python: Fixed code completions having arbitrary order when using
pyright
/basedpyright
. (#37850) - Python: Fixed tasks failing when the python binary path contains whitespaces. (#37454)
- Markdown: Fixed white-space trimming leading to disconnect between list items and content in markdown previews. (#35750; thanks eduardoalba00)
- Debugger: Fixed issue to allow showing more than 1 compact session item. (#37036; thanks RemcoSmitsDev)
- Debugger: Fixed bug where SSH attach modal showed local processes instead of processes from the server. (#37608)
- Linux: Fixed an issue where the IME popover could appear outside the window or fail to show on Wayland. (#37600)
- Fixed matching bracket highlighting not highlighting closing brackets when adjacent to each other. (#37912)
- Fixed height of the drop background in the tab bar when no unpinned tabs are present. (#37884)
- Fixed auto import not working on first column, first row of file. (#37746; thanks Zertsov)
- Fixed SVG preview to refresh automatically when files are modified by external programs. (#37316; thanks 0xshadow-dev)
- Fixed a bug where
outline::Toggle
would sometimes not close outline modal. (#37575; thanks Zertsov) - Fixed selected lines indented with
<
and>
deselecting in Helix mode. (#37665; thanks Quplet) - Fixed
editor: select larger syntax node
to be smart about punctuation. (#36971; thanks paul) - Fixed an issue where cancelling an amend commit would incorrectly leave the old commit message in the input field. The commit message box now properly reverts to its pre-amend state. (#35268; thanks imumesh18)
- Fixed an issue where keybinds containing a backslash character (\) failed to be replaced correctly. (#37014; thanks flareseek)
- Fixed builtin buffers and log views showing up in project search. (#37773)
- Fixed inconsistent search behavior for untitled/temporary files in Tab Switcher. (#37086; thanks KKKZOZ)
- Fixed an issue where the fold placeholder's hover area was smaller than the marker. (#37663)
- Fixed bug where using the editor's convert case commands while in vim's Visual Line mode would not work as expected. (#37646; thanks dinocosta)
- Fixed task variable substitution always appending the default. (#37588; thanks ihales)
- Fixed diagnostics pane closing buffers too eagerly when typing inside it. (#37546)
- Fixed a bug where extra_beta_headers defined in settings for Anthropic custom models were being ignored. (#37306; thanks imumesh18)
- Fixed task focus when re-spawning a task with
reveal_target=center
. (#37359; thanks the-kenny) - Fixed fonts disappearing at very large scales on Windows. (#37440)
Breaking Changes and Notices
- Removed the chat feature from Zed (Sorry to the 5 of you who use this on the regular!). (#37789)
- Added built-in support for the
basedpyright
language server for Python.basedpyright
is now enabled by default, andpyright
(the primary Python language server previously) remains available, but is disabled by default. This supersedes thebasedpyright
extension, which can be uninstalled. Advantages ofbasedpyright
over pyright include support for inlay hints, semantic highlighting, auto-import code actions, and stricter type checking. To switch back topyright
, add the following configuration to settings.json:
{
"languages": {
"Python": {
"language_servers": ["pyright", "pylsp", "!basedpyright"]
}
}
}
- Added bindings for navigating between sibling nodes in the syntax tree on macOS (
cmd-ctrl-{up/down}
forSelectPreviousSyntaxNode
andSelectNextSyntaxNode
). Breaking change: the existing syntax tree parent/child navigation bindings have moved fromctrl-shift-{left/right}
tocmd-ctrl-{left/right}
to create a unified four-directional navigation pattern where all syntax tree operations use the same modifier combination. We could not use the previous base modifiers without breaking more bindings. (#37874)
Windows Alpha
If you're interested in early access, please sign up for our Zed for Windows Beta waitlist.