0.209.6
Oct 24, 2025
- Fixed an issue where having an empty formatter array in your settings
"formatter": []would result in an erroneous prompt to migrate settings. (#40932)
Keep up with the weekly Zed releases.
0.209.6
Oct 24, 2025
"formatter": [] would result in an erroneous prompt to migrate settings. (#40932)0.209.5
Oct 22, 2025
0.209.4
Oct 22, 2025
This week's release includes more performance improvements, support for Codestral as an edit predictions provider, more test detection in different languages, and a load of bug fixes!
node:test and bun:test test runners (#39238; thanks versecafe)img tags inside paragraphs (#38107; thanks RemcoSmitsDev)hide_hidden in the project panel settings. (#39843)/) at the start in order to consider relative paths (#39480)editor::DuplicateLineUp duplicating the last line onto itself when the line doesn't end with a newline (#39610; thanks TomPlanche)NODE_EXTRA_CA_CERTS were not loaded from the user's shell initialization scripts in WSL or SSH remote projects. (#40148)sort_by_path is enabled (#39862)9999999999999999999j (19 9's) would go up instead of down. The max Vim count is now isize::MAX - 1 (#40059; thanks AidanV)agent: quote selection to also work for a message that was already sent but is being edited (#39947)RefCell already mutably borrowed panic in windows event handling. (#40336)async-tar patch (CVE-2025-62518).Give Feedback modal has been removed. The options to file bug reports, feature requests, email us, and open the Zed repository can now be found within the Help menu directly. (#39954)
The command palette actions have undergone the following changes:
feedback: give feedback (removed)feedback: file bug report (no change)zed: request feature → feedback: request featurezed: email zed → feedback: email zed0.208.6
Oct 20, 2025
0.208.5
Oct 16, 2025
code_actions_on_format setting. The code_actions_on_format setting has been un-deprecated, and affected users will have the bad migration rolled back with an updated migration (#40409)0.208.4
Oct 15, 2025
This week's release might be our largest ever, it includes:
As well as: significant performance improvements for the project panel when working in large projects, support for action sequences in keymap bindings allowing you to chain multiple actions together, support for HTML tables and HTML block quotes in Markdown preview, more image types supported in the agent panel, and support for the outline modal in channel notes.
agent_buffer_font_size setting and renamed agent_font_size to agent_ui_font_size, allowing for granular buffer font size control in the agent panel vs. regular editors. (#39468)"title_bar": {"show_branch_icon": true}. (#38029; thanks lzakharov)"terminal": {"keep_selection_on_copy": false}."cmd-alt-a": ["action::Sequence", ["editor::SelectLargerSyntaxNode", "editor::Copy", "editor::UndoSelection"]]SelectPrevious and SelectAllMatches items to the Selection app menu. (#39262; thanks sir-geronimo)Close Multibuffers pane context menu entry. (#39199)"status_bar": { "experimental.show": false} to hide the status bars. (#39430; thanks mansoorkhan96)granted_extension_capabilities setting to control the capabilities granted to extensions. (#39472)terminal.shell in project settings (#39795)Do Nothing window double click setting not being respected. (#39311; thanks mkozjak)Enter added a new line instead of confirming English input. (#39599)AltGr to avoid keybinds preventing character input. (#38925; thanks Sh4rK)% motion, where the cursor could end up in a closing HTML tag instead of the matching bracket. (#39620)C. (#39715)sort_by_path: true in the git panel. (#39678)delete line when following line contains multibyte characters. (#39560)editor: fold at level closing regions containing selections. (#39396)code_actions_on_format in favor of specifying code actions to run on format inline in the formatter array. (#39983)Settings: Removed support for having format steps in both the format_on_save and formatter settings for languages. format_on_save is now restricted to the values of "on" and "off", and all format steps should be set under the formatter key. If you were using format_on_save but not formatter this will be migrated for you, otherwise it will require a manual migration. (#39400)
Settings: Changed code action format in formatter and format_on_save settings. (#39375)
Previous format:
{
"code_actions": {
"source.organizeImports": true,
"source.fixAll": true
}
}
New format:
[
{"code_action": "source.organizeImports"},
{"code_action": "source.fixAll"}
]
After #39246, code actions run sequentially in order. The structure now reflects this and aligns with other formatter options (e.g., language servers).
Both the formatter settings will be auto-migrated.
Zed will no longer use node from your $PATH if it's older than 22.x (previously, the minimum version was 20.x). Instead, it will fall back to its bundled node. This fixes being unable to use Copilot if an older node was installed system-wide. (#39632)
0.207.4
Oct 09, 2025
"terminal": {"keep_selection_on_copy": false}.
0.207.3
Oct 08, 2025
This week's release includes improved font rendering on Linux, Vim commands for navigating the project panel, the ability to search agent profiles, improved Markdown preview support, and a setting to add GitHub avatars in the Git blame gutter.
vim: yank end of line action which does vim equivalent of y$. (#39143)ctrl-u scrolls the project_panel up half of the visible entriesctrl-d scrolls the project_panel down half of the visible entriesz z scrolls current selection to center of windowz t scrolls current selection to top of windowz b scrolls current selection to bottom of window{num} j and {num} k now move up and down with a count:set ignorecase and :set noignorecase in vim mode. (#37459)"git": { "blame": { "show_avatar": true } }. (#39168)cmd-enter -> shift-cmd-enter. (#39008; thanks lemorage)heading elements. (#38590; thanks RemcoSmitsDev)zed://...) are resolved locally when opened within the editor instead of being resolved through the OS. Users who could not previously open zed://* URLs in the editor can now do so by pasting the link into a buffer and using the editor: open url action (please open an issue if this is the case for you!). (#38916)default_model even in case thread_summary_model was set. (#38859; thanks imumesh18).gitignore files. (#39191)cmd-alt-click to sometimes go to the definition in the current pane. (#38148; thanks timvermeulen)cmd-alt-click. (#38733; thanks timvermeulen)/dev/null. (#39092)snippets: configure snippets action not working on remote workspaces. (#38790; thanks loczek)tab_size is set higher than 16. (#38994)ctrl-g overriding git panel keybindings when using the Emacs keymap. (#37732; thanks waymondo)Option key in Vim mode. (#38969; thanks Simek)@mentions in agent threads when remoting from Windows to Linux or WSL. (#38882)HELIX_ prefix in the UI. (#38870)
HELIX_NORMAL becomes NORMALHELIX_SELECT becomes SELECTterminal.toolbar.breadcrumbs to true to re-enable. (#38806)standard as a default line height in the terminal. (#38798)"default_mode": "helix_normal" from their settings. This is now the default when "helix_mode": true. (#38870)dev: open language server logs), you must now use the editor: open url action with your cursor over the URL that is sent to the server. (#38916)0.206.7
Oct 06, 2025
0.206.6
Oct 01, 2025
This week's release includes better token usage when @-mentioning directories in the agent panel while tools are available, a git: rename branch action, better symbol outline for JS/TS, additions to Vim/Helix modes, an improved agent panel settings view, and automatic Markdown URL embedding on paste.
AppleFontSmoothing setting. (#39197)buffer_font_size setting. (#38726)block_reason. (#38670)Edit debug.json button to debugger control strip. (#38600; thanks iluuu1994)~, `, Alt-` correctly in normal and select modes. (#38119; thanks romaninsh)vim::HelixPaste command that imitates Helix's paste behavior. (#37963; thanks jneem)gt and gT to support count, e.g. 5gt - go to tab 5, 8gT - go to 8th previous tab with wraparound. (#38570; thanks bluetech)git: rename branch action to rename a branch (git branch -m). (#38273)package.json and tsconfig.json schemas to newest release (2025-09-21). Match tsconfig.*.json too. (#38655)go test commands for testify suite test methods. Suite methods now include both the suite name and the method name in the -run flag (e.g., ^TestFooSuite$/TestSomething_Success$), ensuring they are properly detected and runnable individually. (#38167; thanks Kaikaikaifang)TerminalOutput::full_text wasn't preserved. (#38061; thanks ImFeH2)zed filename.rs: will now act as though you did zed filename.rs. (#38677)Workspace: Copy Relative Path not copying while the Find bar is focused. (#38645; thanks lemorage)COLORTERM=truecolor. (#38379; thanks lemorage)0.205.9
Sep 30, 2025
0.205.8
Sep 29, 2025
0.205.7
Sep 29, 2025
0.205.6
Sep 26, 2025
0.205.5
Sep 25, 2025
read_text_file to agents. (#38863)read_text_file returning errors for empty files. (#38856)0.205.4
Sep 24, 2025
This week's release includes a stash picker, apply and drop git stash commands, the ability to amend commit messages without having any changes in your working copy, better drag-and-drop support in the project panel, better error reporting when the auto-updater fails, and improved token consumption when mentioning large files in the agent panel. Also, for the Pythonistas 🐍, Zed now directly ships with the ty language server (disabled by default) and Ruff (enabled by default) - no need to install the extensions for these anymore!
whitespace_map setting to control which visible characters are used to render whitespace when the show_whitespace setting is enabled. (#37704; thanks iluuu1994)pane::SplitAndMove{Up,Down,Left,Right} to allow creating a split without cloning the current buffer. (#38034)afterDelay setting. (#36929; thanks itsaphel)pane::GoForward action on Linux. (#38221; thanks RocketRide9)ctrl-k (editor::CutToEndOfLine) behavior when used at the end of lines. (#34553; thanks AidanV)editor::CutToEndOfLine not gobble newlines. (#34553; thanks AidanV){
"context": "Editor",
"bindings": {"ctrl-k": ["editor::CutToEndOfLine", { "stop_at_newlines": true }]}
}
repl.max_columns and repl.max_lines settings. (#37927; thanks cvanelteren)0 as a value for the excerpt_context_lines setting. (#37982)agent.message_editor_min_lines setting to allow users to customize the agent panel message editor default size by using a different minimum number of lines. (#37975; thanks ojkelly)@mentioning large files, the Agent Panel now sends an outline of the file instead of the whole thing. (#38032)block_reason. (#38670)\x00 representation instead of literal null character in strings to improve compatibility with git diff and GitHub's diff viewer. (#38033; thanks AlvaroParker).ts files. (#38254)Incorrect secret error. (#38043; thanks bemyak)vv). (#37748; thanks romaninsh)@mentions in the agent panel would sometimes not be dismissed when typing a space. (#37922)core.excludesFile (~/.config/git/ignore) was not being respected in addition to .gitignore. (#33592)keymap.json was only shown for actions that take input. (#38156)keymap.json file was completely empty. (#38087)line_indicator_format setting would not update based on the value in settings.json. (#38071)npm install instead of pip install. (#38471)0.204.5
Sep 22, 2025
0.204.4
Sep 20, 2025
0.204.3
Sep 19, 2025
0.204.2
Sep 18, 2025
0.204.1
Sep 17, 2025
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!
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)https://example.com.) and unbalanced parentheses (like https://example.com/path)) are now properly detected without including the trailing punctuation. (#37684; thanks Mearman)project_panel::OpenSplitVertical and project_panel::OpenSplitHorizontal actions for opening files in splits. (#36973; thanks tie)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)editor: select {next,previous} syntax node actions. (#35053; thanks idanov)diagnostics: display current file command to view diagnostics for the currently open file. (#34430; thanks dinocosta)UseActiveEditor action when the view is shown to change it to the last focused editor. (#37570)agent: Allow once, agent: Allow always, agent: Reject once) in the agent panel. (#37876)View menu option. (#37805)git: uncommit action. (#37031; thanks AlvaroParker)img tags inside paragraphs. (#37264; thanks RemcoSmitsDev)* by selecting text and writing the *. (#37426) - Rust: Added shorthand field highlighting. (#37674; thanks chbk)pyright/basedpyright. (#37865)gopls default to match what Go specifies. (#37551; thanks Zertsov)iso function calls. (#36320; thanks XiNiHa)context_server duplication when name is updated. (#35403; thanks imumesh18)pyright/basedpyright. (#37850) - Python: Fixed tasks failing when the python binary path contains whitespaces. (#37454)outline::Toggle would sometimes not close outline modal. (#37575; thanks Zertsov)< and > deselecting in Helix mode. (#37665; thanks Quplet)editor: select larger syntax node to be smart about punctuation. (#36971; thanks paul)reveal_target=center. (#37359; thanks the-kenny)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"]
}
}
}
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)0.203.5
Sep 12, 2025
⚠️Due to this bug, Zed's version v0.203.x through v0.204.0 will not automatically update. ⚠️
You will need to:
We are sorry for the mistake.
0.203.4
Sep 10, 2025
This week's release includes native macOS window tabbing support, enhanced font rendering with perceptual gamma correction and improved text contrast, expanded AI provider compatibility with configurable MCP tool timeouts and improved Ollama/OpenRouter handling, improvements to Vim/Helix, and much more!
"use_system_window_tabs": true, Zed will merge windows in the same way as macOS: by default this happens only when full screened, but you can adjust your macOS settings to have this happen on all windows. (#33334; thanks gaauwe)excerpt_context_lines setting. (#37138)rounded_selection to disable rounded corners for text selection. (#36987; thanks tie)<img src="/some-image.svg"> tag support. (#36700; thanks RemcoSmitsDev)\c and \C query pattern items to control case-sensitivity in buffer search. (#34762; thanks dinocosta)x behaviour. Will respect modifiers (5 x). Pressing x on an empty line will select current+next line, because Helix considers current line to be already selected without the need of pressing x. (#35611; thanks romaninsh)AnyBrackets in Vim's change surrounds cs. (#37386; thanks dinocosta)ctrl-insert on Linux/Windows. (#37273)ctrl-d, ctrl-u, ctrl-e and ctrl-y. (#35985; thanks dinocosta)editor::NewlineBelow and editor::NewlineAbove for Linux and Windows to align more with other editors. (#36939)disable_ai was turned on. (#37378)[ ] in them in LSP communications. (#37166; thanks WAKayser)If you're interested in early access, please sign up for our Zed for Windows Beta waitlist.
0.202.8
Sep 09, 2025
0.202.7
Sep 04, 2025
0.202.6
Sep 04, 2025
0.202.5
Sep 03, 2025
Last week we launched Agent Client Protocol (ACP), an open standard for integrating external agents with editors. Today we're launching beta support for Claude Code in Zed via our ACP adapter for the Claude Code SDK! Read more about it in the blog post.
This week's release also contains plenty of improvements to Zed itself. An enhanced tab switcher with diagnostics indicators and preview functionality; file icons in multibuffers; the ability to run rust-analyzer's flycheck actions from anywhere in the project, and support for xAI's grok-code-fast-1.
{ "project_panel": {"drag_and_drop": false } }. (#36719)max_line_length property. (#36426; thanks learnitall)zoomed_padding to allow disabling of padding around zoomed panels. (#31913; thanks Cretezy):row:column to the query. (#36025; thanks henne90gen)min_words_query_len threshold for automatic word completion display, and set it to 3 by default to make them less intrusive. (#36745)grok-code-fast-1 model to xAI's list of available models. (#36959; thanks Nitemaeric)kotlin-language-server the default language server. (#36871)module keyword in TS/JS. (#36830; thanks versecafe)Shift+R works as Paste instead of taking you to ReplaceMode. (#35468; thanks romaninsh)g . goes to last modification place (similar to . in Vim). (#35468; thanks romaninsh)buffer search: deploy to search. (#36917; thanks llamaha)pane: swap item right action. (#36765)diagnostics.cargo.fetch_cargo_diagnostics setting. (#36795)0.201.9
Sep 02, 2025
0.201.8
Aug 29, 2025
tool_use ids were found without tool_result blocks immediately after" (#37196)0.201.7
Aug 29, 2025
always_allow_tool_calls is enabled. (#37182)0.201.6
Aug 28, 2025
{
"agent_servers": {
"gemini": {
"ignore_system_version": false
}
}
}
x-ai/grok-code-fast-1 model via OpenRouter. (#37094)0.201.5
Aug 27, 2025
0.201.4
Aug 27, 2025
This week, we are launching Agent Client Protocol (ACP), an open standard for integrating external agents with editors, with support for Google's Gemini CLI as the first integration. Read more about it in the blog post!
This week's release also contains plenty of improvements to Zed itself. An improved Python virtual environment propagation to LSP for more reliable language features, configurable auto-indentation per language, file status indicators in multibuffer headers, an improved project panel empty state, and support for xAI's grok-code-fast-1.
status_bar.cursor_position_button. Setting to false will hide the button. It defaults to true. (#36288; thanks zumbalogy)ZED_BUILD_REMOTE_SERVER=nomusl) to opt out of musl builds when building the remote server. (#36069; thanks AlvaroParker)grok-code-fast-1 model to xAI's list of available models. (#36959; thanks Nitemaeric)"auto_indent": false to your settings or desired language to disable the feature. (#36259)editor: unwrap syntax node action. (#35991; thanks Gregoor)[f/]f to go to the next collaborator. (#36191)alt-s to editor: split selection into lines. (#33918; thanks m04f)y without an active selection. (#35612; thanks romaninsh)git: branch action not working with SSH workflow. (#36157; thanks AlvaroParker)ap text object selection when there is line wrapping. (#35485; thanks vieiralucas)ctrl-k enter while in INSERT mode would put a newline in the Vim mode indicator. (#35760; thanks AidanV)f and t motions. (#35216; thanks fantacell)diagnostic.inline.min_column being inaccurate. (#36501)edit_predictions_disabled_in setting was ignored in some cases. (#36469)editor: unwrap syntax node not working in Vim Insert/Visual modes. (#35991; thanks Gregoor)cmd-left with the cursor in the leading spaces moved to the start of the text first. It now goes to the beginning of the line first, then the start of the text. (#36145).... (#36405)Zed Plex Sans and Zed Plex Mono fonts have been replaced with IBM Plex Sans and Lilex. The old names still work for backward compatibility. Other than fixing line-drawing characters and improving the ligatures, there should be little visual change as the fonts are all of the same family. (#36084).ZedSans and .ZedMono as aliases to allow us to easily change the default fonts in the future. These currently default to IBM Plex Sans and Lilex respectively. (#36084)/docs slash command. (#36325)0.200.5
Aug 22, 2025
0.200.4
Aug 20, 2025
This week's release includes operating system-specific settings, improved Edit Prediction latency, subtle and eager modes for Copilot and Supermaven, thinking support for Mistral, the ability to clone Git repositories, file comparison through the project panel, and support for adjusting the reasoning effort for OpenAI models.
"macos"/"windows"/"linux". These will override user-level settings, but are lower precedence than release channel settings. (#35756)editor: unwrap syntax node action. (#31421; thanks Gregoor)theme_overrides setting. (#30860; thanks hron)status_bar.show_active_language_button to show/hide the language button in the status bar. (#33977; thanks zumbalogy)project_panel.starts_open to control opening the project panel in new projects. (#34752; thanks maan2003).pp) files. (#35778; thanks Tonguechaude)keymap_editor::ShowMatchingKeybinds action in the Keymap Editor, and is now present in the keybind editing modal as well. (#35732)gpt-oss. (#35648; thanks imumesh18)reasoning_effort in OpenAI models. (#35929; thanks Cretezy)"language_models": {
"openai": {
"available_models": [
{
"name": "gpt-5-mini",
"display_name": "GPT 5 Mini (custom reasoning)",
"max_output_tokens": 128000,
"max_tokens": 272000,
"reasoning_effort": "high" // Can be minimal, low, medium (default), and high
}
],
"version": "1"
}
}
Run to Cursor back to Editor's context menu. (#35745)compare marked files context menu item. (#35255; thanks mcwindy)git: Clone action. (#35606)git.inline_blame.padding. (#33631; thanks abdelq):tabnew and :tabedit commands. (#35775; thanks dinocosta)ctrl-y/ctrl-e in insert mode to copy the next character from the line above or below. (#36017)module.ts that are overwritten by the language's icon .ts. (#34170; thanks gilmar-sales)require_config_file was set to true and the project had no config file. (#35306)toolbar.breadcrumbs setting didn't immediately update the UI when saving the settings.json file. (#36177).... (#36405)pane: split horizontal and pane: split vertical actions. You can restore the old behavior by modifying the pane_split_direction_horizontal and pane_split_direction_vertical values in your settings. (#36101)disable_ai to become true; they can no longer cause otherwise-disabled AI to become re-enabled. (#35977)