Releases

Keep up with the weekly Zed releases.


June

0.191.4

06/18/2025

macOS
Loading...
Loading...
Linux
Loading...
Loading...

Today's release includes a native debugger, ability to diff between two files via zed --diff A B, ability to reorder collaboration channels, per-thread agent profiles, image/thinking support for more models in the agent panel, drag and drop text selections, and a ton of bug fixes.

Enhancements

  • Added channel reordering for administrators (use cmd-up and cmd-down on macOS or ctrl-up and ctrl-down on Linux to move channels up or down within their parent). (#31833)
  • Added support to configure the minimum line number width in gutter. (#31959; thanks maxmynter)
  • Added a pane: unpin all tabs action. (#32423)
  • Added trailing whitespace rendering. (#32329; thanks JonasKaplan)
  • Added support to hide the root entry of the Project Panel when there's only one folder in the project. This can be enabled by setting hide_root to true in the project_panel config. (#25289; thanks Angelk90)
  • Added support for drag and drop text selection. It can be disabled by setting drag_and_drop_selection to false. (#30671; thanks CharlesChen0823)
  • Added dynamic tab titles for unsaved files based on buffer content. (#32353)
  • Added the multi_cursor_modifier setting to be respected when making columnar selections using the mouse drag. (#32273)
  • Added new resize_all_panels_in_dock setting to optionally resize every panel in a dock together. (#30551; thanks Aaron-212)
  • Added support for Ctrl-w ] and Ctrl-w Ctrl-] to go to a definition in a new split. (#31990; thanks afgomez)
  • Allowed to reuse windows in open remote projects dialogue. (#32138)
  • Allowed running certain Zed actions when headless. (#32095)
  • Improved AddSelectionAbove and AddSelectionBelow to extend multiple cursors/selections. (#32204)
  • Improved the behavior of editor::Rewrap to not join paragraphs together. (#32046)
  • Improved alt-left and alt-right by skipping punctuation on macOS to respect the Mac default behaviour. (#31977; thanks remorses)
  • Whitespace added by inlay hints is no longer shown when "show_whitespaces": "all" is used. (#32088)
  • Preserve pinned tab state when dragging to position 0 in new pane with no pinned tabs. (#32213)

Debugger

We are happy to announce that native debugging in Zed is now available to all! 🎉

AI

  • Agent: Improved the review experience in the agent panel. Now, when you commit changes (generated by the AI agent) using Git, Zed will automatically dismiss the agent's review UI for those changes. This means you won't have to manually "keep" or approve changes twice—just commit, and you're done. (#32093)
  • Agent: Added image support to OpenRouter models. (#32012; thanks imumesh18)
  • Agent: Added image support to Mistral models. (#32154; thanks imumesh18)
  • Agent: Added thinking support to LM Studio provider. (#32337; thanks imumesh18)
  • Agent: Added thinking support to DeepSeek provider. (#32338; thanks imumesh18)
  • Agent: Improved handling of large terminal output. (#32416)
  • Agent: Enabled cross-region inference for Claude 4 family models on Amazon Bedrock provider. (#32235; thanks unexge)
  • Agent: Enabled Vim window commands (ctrl-w X) when agent panel is focused. (#31000; thanks pavles6)
  • Agent: Allowed saving the profile per thread. (#31907)
  • Agent: Added the latest versions of Gemini 2.5 Pro and Flash Preview. (#32183)
  • Agent: Added support for attaching images as context from clipboard in the inline assistant. (#32087)
  • Agent: Updated to latest Gemini 2.5 models. (#32904)
  • Agent: Show warning on context pill when selected model doesn't support adding images as context. (#31848; thanks imumesh18)
  • Agent: Prevent models from hallucinating tool parameters. (#32081)
  • Linux (X11): Restored the ability to paste images as context in agent threads. (#32121)
  • Added support for manually providing an OAuth token for GitHub Copilot Chat by assigning the GH_COPILOT_TOKEN environment variable. (#31392; thanks clauses3)
  • Copilot Chat endpoint URLs can now be configured via settings.json or Configuration View. (#32248)

Git

  • Added zed --diff A B to show the diff between the two files. (#32922)
  • Added git::PushTo to select which remote to push. (#31482; thanks CharlesChen0823)
  • Added the git::FetchFrom action to fetch from a single remote. (#26897; thanks CharlesChen0823)
  • Improved the highlighting of merge conflict markers in editors. (#31012)
  • Provided feedback on commit message generation error. (#29005; thanks imumesh18)
  • Adjusted size of the icon inside the title bar's branch picker. (#32387; thanks Otterpocket)

Languages

  • Added support for the LSP textDocument/diagnostic command. (#19230; thanks vitallium)
  • Added initial package.json scripts task autodetection. (#32497)
  • Improved detection of runnable TypeScript/JavaScript test cases when they contain identifier. (#32467; thanks lsndr)
  • Allowed running dynamic TypeScript/JavaScript tests. (#31499; thanks lsndr)
  • Added scope for JSDoc. (#29476; thanks chbk)

Vim

  • Improved vim's search to respect the search.case_sensitive setting when searching. (#32276; thanks dinocosta)
  • Multi-key bindings in insert mode will now show the pending keystroke in the buffer. For example if you have jk mapped to escape, pressing j will immediately show a j. (#32007)

Bug Fixes

  • Agent: Fixed previous completion not cancelling when editing a previous message. (#32533)
  • Agent: Fixed agent panel model selector layout pushing send button off screen. (#32251; thanks imumesh18)
  • Agent: Fixed the MCP configuration modal to show only in the active window. (#32450)
  • Agent: Fixed an issue where some MCP tools would not work when using Gemini. (#32373)
  • Agent: Fixed showing max_tokens in the assistant panel for LM Studio provider. (#25606; thanks NexVeridian)
  • Agent: Fixed MCP server handler subscription race condition causing tools to not load. (#32133; thanks xJonathanLEI)
  • Agent: Fixed Mistral tool->user message sequence handling. (#31736; thanks imumesh18)
  • Agent: Fixed an edge case where the request would fail when using Claude and multiple images were attached. (#32092)
  • Agent: Fixed a regression in agent following behavior after file edits. (#32606)
  • Edit Prediction: Fixed spurious warning for lack of edit prediction on multi-keystroke binding. (#31456; thanks sygi)
  • Edit Prediction: Fixed default keybindings for editor::AcceptPartialEditPrediction to work with subtle mode. (#32193)
  • Git: Fixed Git Panel dock size not being remembered across Zed restarts. (#32111; thanks vipexv)
  • Git: Fixed unintuitive wrapping behavior when editing Git commit messages. (#32114)
  • Fixed incorrect offsets during outline panel navigation in singleton buffers. (#32321)
  • Fixed issue where triggering multi-key binding like "shift", "control", etc. would write them to the buffer for a short time. (#32528)
  • Fixed issue where code completion in TypeScript function arguments sometimes omitted the dot separator, for example resulting in NumberparseInt instead of Number.parseInt(string). (#32515)
  • Fixed issue where reconnecting to SSH Remote would result in broken code completions and diagnostics. (#32457)
  • Fixed newline getting added on format to empty files. (#32320; thanks esimkowitz)
  • Fixed right panel expanding backwards when dragged out of its intended bounds, by adding a bounds check to ensure its size never gets too high. (#32246; thanks SMASTER4)
  • Fixed incorrect offsets during outline panel navigation in singleton buffers. (#32321)
  • Fixed editor::SwitchSourceHeader and editor::ExpandMacroRecursively not working with text selections. (#32272)
  • Fixed assistant::QuoteSelection default shortcuts (cmd-> and ctrl->) so they work in Agent threads too (in addition to text threads and in the Editor pane). (#32270)
  • Fixed script/build-linux for non-musl builds. (#32029)
  • Fixed rendering of terminal colors for the XTerm 256-color indexed color palette. (#32200; thanks rolandcrosby)
  • Fixed display of keybindings to skip bindings that are shadowed by a binding that uses the same keystrokes. (#32220)
  • Fixed display of editor::AcceptEditPrediction bindings to use the normal precedence that prioritizes user bindings. (#32220)
  • Fixed caching of Node.js runtime paths and improved error messages. (#32198)
  • Fixed ANSI black and ANSI white colors in built-in themes. (#32175)
  • Fixed language servers not starting up when a buffer is saved. (#32156)
  • Fixed a recently-introduced bug where unnecessary code was underlined with blue squiggles. (#32082)
  • Fixed an issue where the cursor would flicker while typing. (#32596)
  • Fixed proxy URL resolution when using custom DNS entries. (#32679)
  • Fixed a panic when merging pull and (newer) push diagnostics. (#32826)
  • Fixed an issue where the inline assistant would be dismissed when hitting enter while generating code. (#32810)
  • Fixed a bug in LSP completions caching where prior completions may be used when they should not, after typing a trigger char like .. (#32927)
  • Linux: Fixed a couple of bugs that can cause the mouse cursor to not appear or only appear as an arrow. (#32833)
  • glsl: Fixed syntax highlighting conflicts. (#32022; thanks not-a-cowfr)
  • PHP: Fixed an issue in PHP where PHP language settings would be occasionally overridden by HTML language settings. (#32145)
  • Fixed a rare crash on macOS when putting the app in the background. (#32116)

Breaking Changes and Notices

  • SQL: Disabled format_on_save using prettier-plugin-sql by default. Please see the Zed SQL Language Docs for settings to use sql-formatter directly instead.