Releases

Keep up with the weekly Zed releases.

September

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-`' to terminal::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 (like https://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 and project_panel::OpenSplitHorizontal actions for opening files in splits. (#36973; thanks tie)
  • Added editor::GoToNextDocumentHighlight and editor::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

  • Helix: Added operators for selecting text objects. (#34060; thanks fantacell)

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, and pyright (the primary Python language server previously) remains available, but is disabled by default. This supersedes the basedpyright extension, which can be uninstalled. Advantages of basedpyright over pyright include support for inlay hints, semantic highlighting, auto-import code actions, and stricter type checking. To switch back to pyright, 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} for SelectPreviousSyntaxNode and SelectNextSyntaxNode). Breaking change: the existing syntax tree parent/child navigation bindings have moved from ctrl-shift-{left/right} to cmd-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.