This week's release includes most of December's quality week items and is packed!
Highlights include subpixel (ClearType-style) text rendering on Windows and Linux to improve text clarity on standard DPI displays, the ability to favorite/pin Agent models, cycle them via alt-tab, and queue messages in the agent panel, a git: create pull request command, UI controls to restart/stop individual language servers, a which-key-like modal (enable with {"which_key": {"enabled": true}}), improved Markdown list editing via extend_list_on_newline and indent_list_on_tab, many performance boosts — and much much more!
Features
AI
- Agent: Added the ability to mark language models as favorites and pin them to the top of the list. This feature is available in the native Zed agent (including text threads and the inline assistant), and in external agents. (#44297, #45528; thanks aqrln)
- Agent: Added the ability to cycle through favorited models using the
alt-tabkeybinding. (#45032) - Agent: Added the ability to queue messages in the agent panel. (#46019)
- Agent: Added a right-click context menu for the thread view. (#45440; thanks zchira)
- Agent: Added the ability to regenerate the auto-summarized title of threads via the "Regenerate Thread Title" button, available in the ellipsis menu of the agent panel. (#43859; thanks aeroxy)
- Agent: Added the ability to configure timeouts for context server tool calls. The new global
context_server_timeoutsetting controls the default timeout (default is 60s, max: 10min). Additionally, per-server timeouts can be configured using thetimeoutfield within servers defined in the"context_servers"setting. (#45378) - Agent: Added MCP prompt support to agent threads. Prompts from MCP servers now appear in the slash command menu when typing
/in agent threads. (#43523; thanks mdliss) - Agent: Show tool call parameters when the agent asks for confirmation to run a tool. (#45931)
- Agent: Made tool calls' raw input visible in the agent UI. (#45097; thanks tsoernes)
- Agent: Use up-to-date token counts from LLM responses when reporting tokens used per thread. (#44943)
- Agent: Added OpenAI
gpt-5-codexmodel to the assistant. (#39989; thanks mstallone) - Agent: Added support for OpenAI's
/responsesendpoint for models that don't support the/chat/completionsAPI. (#39989; thanks mstallone) - Agent: Improved Agent Panel performance when terminals are scrolled offscreen. (#45537)
- Agent: Updated context lengths for several Mistral models to match Mistral’s recommended values. (#45194; thanks guiopen)
- Agent: Added support for authenticating Amazon Bedrock with API keys (bearer tokens), including via environment variable or the UI. (#41393; thanks 5herlocked)
- Agent: Improved: MCP tools are now automatically reloaded when a context server sends a
tools/list_changednotification, eliminating the need to restart the server to discover new tools. (#42453; thanks tsoernes) - Copilot now supports Next Edit Suggestions. (#44486)
Git
- Added
git: create pull requestcommand to open a pull request for the current branch. (#42959; thanks tommyming) - Added the ability to copy a commit's SHA in the commit view. (#45478; thanks cppcoffee)
- Added support for collapsing/expanding entries with your keyboard while in the git panel (tree view). (#45002; thanks RemcoSmitsDev)
- Added a
Restore Fileaction in the project panel context menu to discard uncommitted file changes. (#42490; thanks korbindeman) - Added git clone open listeners using
zed://git/clone?repo=<git-url>. (#41669; thanks AlvaroParker) - Added support for
zed://git/commit/<sha>?repo=<path>URI scheme to access the git commit view. (#43341; thanks schpet) - Added optimistic staged hunk updating. (#43434; thanks van-sprundel)
- Added support for Git repository excludes file
.git/info/exclude. (#42082; thanks errmayank) - Display all branches and remotes by default in the branch picker. (#45041)
- Git panel now truncates long file paths from the left, showing "…path/filename" when space is limited, keeping filenames always visible. (#43462; thanks ddoemonn)
- Added global Git settings to enable/disable
git statusandgit diff. (#43326; thanks leoliu0605)
Debugger
- Conditionally display the debugger panel icon based on the
debugger.buttonsetting to avoid too many error logs. (#45544; thanks tacshi)
Languages
- C++: Include namespace symbol in the outline view. (#45794; thanks hokein)
- C/C++: Added highlighting for escape sequences. (#46116; thanks ozacod)
- C/C++: Added
uniondeclarations to the list of text objects. (#45308; thanks hokein) - Python: Added support for
uv runin the shebang line to be interpreted as a Python script. (#45881; thanks flou) - Python: Allow using locally installed
tyfor Python. (#45193; thanks henryhchchc) - Markdown: Lists now continue automatically when you press Enter (unordered, ordered, and task lists). This can be configured with
extend_list_on_newline(default: true). (#42800, #45561; thanks 0xRaduan) - Markdown: You can now indent list markers with Tab to quickly create nested lists. This can be configured with
indent_list_on_tab(default: true). (#42800; thanks 0xRaduan) - TS/JS: Files with updated imports now open in a multibuffer when renaming or moving TypeScript or JavaScript files. (#45110)
- TS/JS: Improved syntax highlighting consistency for builtins in JavaScript and TypeScript. (#46068)
- TS/JS: When renaming a TypeScript or JavaScript file, the selected option to automatically update imports will now be remembered across editor sessions. (#45105)
- Proto: Added the
extendkeyword. (#45413; thanks Zachiah) - Added Tailwind CSS Mode support, for Tailwind-specific CSS rules like
@apply,@layer, and@theme. (#45352) - Added recognition for
.bstfiles as yaml. (#45015; thanks vixalien)
REPL
- Added an inline display of execution results (as opposed to the large execution view) for simple REPL cells. (#44523; thanks auriium2)
- Added gutter execution display. (#44523; thanks auriium2)
- Improved how execution of empty lines is handled. (#44523; thanks auriium2)
Vim / Helix
- Added a which-key like modal with a compact, single-column panel anchored to the bottom-right. You can enable with
{"which_key": {"enabled": true}}in your settings. (#43618; thanks xipeng-jin) - Vim: Added the
:r[ead] [name]Vim command. (#45332; thanks AidanV) - Added simple
g g,G,j, andkmotions for the file history view in Vim mode. (#45412; thanks AlvaroParker) - Added Helix match surround operations. (#44317; thanks leonqadirie)
Other
- Added support for subpixel (ClearType-style) text rendering. This improves the legibility of text on standard DPI displays. Subpixel rendering is enabled by default on Windows and Linux and can be configured using the
text_rendering_modesetting. (#45423) - Added the ability to restart and stop individual language servers from the UI as opposed to just them all. (#45882)
- Added the language server version in a tooltip on language server hover. (#45302)
- macOS: Bundle a placeholder
Document.icnsso Finder can display Zed’s file icons (instead of a generic icon). (#44833) - Added support for remote connections over IPv6. (#43591; thanks marcocondrache)
- Added a status bar item to display the active file's character encoding (e.g.
UTF-8) and BOM status. (#45476; thanks tomopumipumi) - Added a button to clear the search query for the collab and outline panels' search bars. (#46210)
- Added a button to copy diagnostic messages from the hover popover. (#45625; thanks tacshi)
- Added a notification with a link to view release notes online when Zed can’t load them locally. (#45900; thanks CodingDoll)
- Settings UI: Added support to edit the existing
proxysetting. (#45684; thanks cppcoffee) - Added
read_only_filessetting to allow specifying glob patterns of files that should not be editable by default. (#44376) - Added
pane::Splitmode ({ClonePane,EmptyPane,MovePane}) to allow creating an empty buffer. (#40245; thanks iff) - Added ellipsis to truncated code actions and an aside showing the full action description. (#45268)
- Added support for opening and saving files with legacy encodings (Shift-JIS, Big5, etc.). (#44819; thanks tomopumipumi)
- macOS: Mark metal layers opaque for non-transparent windows to allow direct-to-display when supported. (#44334, #45434; thanks marcocondrache)
- macOS: Buffer search now syncs with the system find pasteboard, allowing
⌘Eand⌘Gto work seamlessly across Zed and other apps. (#45311) - Settings: Added Sapling directory to default
file_scan_exclusions. (#45837; thanks corywilhite) - Settings UI: Improved the UX of editing font size fields, as you can now type the desired value as opposed to just using the decrement/increment buttons. (#45875)
- Added persistence for window size when no projects are open. (#44937; thanks mchisolm0)
- Keymap editor: Added the ability to open the
keymap.jsonfile with a keybinding. (#45987; thanks smitchaudhary) - Keymap editor: Added a keybinding creation modal to make it easier to assign an action to a keystroke. (#46030)
- Added hover feedback to folded path folders to indicate which folder will be targeted. (#45876; thanks andre-eriksson)
- Added autocomplete for LSP
initialization_options. (#43104; thanks Nereuxofficial) - Keybindings: Made the
extensionkey context case-insensitive. This e.g. enables themarkdown: Open Previewaction to also handle files where the extension is capitalized as MD (case-sensitive file system). (#45961; thanks krisfur) - Improved rendering of the border on number field inputs to ensure it's only rendered when the field is focused. (#46165)
- Improved readability of long paths in the remote project picker. (#46151)
- Improved responsiveness when editing very large language files. (#45347)
- Improved
editor: add selection aboveandeditor: add selection belowto select at the same text column when skipping soft-wrapped lines, instead of the same visual position. (#45594) - Improved Zed's memory usage when attempting to open binary files. (#45971)
- Improved the UX of title bar modal pickers (remote projects, projects, and branches) by making them open closer to the trigger when triggering them with the mouse. (#45361)
- Git: Improved navigation of the git panel by advancing the "Uncommitted Changes" multibuffer to the currently selected file. To restore the old behavior, you can bind
upanddowntomenu::SelectPreviousandmenu::SelectNextunder theGitPanelcontext in your keymap. (#43701; thanks coszio) - Git: Unified wording for discarding file changes in the git panel. (#45124)
- Improved display map rendering with many lines in the multi-buffer. (#44743)
- Agent: Improved agent panel performance when rendering large diffs. (#45077)
- Improved design of the multibuffer breadcrumbs toolbar. (#45547; thanks KyleBarton)
- Moved breadcrumbs to file headers in multibuffer views.
- Added collapse/expand all options for multibuffer views.
- Improved use of space for multibuffer search by taking the place of the former breadcrumb toolbar location.
- Terminal: Improved path hyperlink performance for long lines. (#44721; thanks davewa)
- Improved performance when using relative line numbers in large files. (#45164; thanks HactarCE)
- Project search will consume fewer resources immediately after cancellation. (#45406)
- Reduced number of threads when using extensions. (#45990; thanks marcocondrache)
- Reduced GPU usage when idle by only presenting frames during bursts of high-frequency input. (#45369)
- Skip worktree trust queries for remote collab project clients. (#46256)
- When handling
workspace/diagnostic/refresh, Zed now also sends newtextDocument/diagnosticrequests for open files, aligning with the LSP specification. (#45365; thanks aviatesk)
Bug Fixes
- Linux (Wayland): Fixed an issue where the settings window would not respond to user interaction until resized. (#45153)
- Windows: Fixed close button hover text color. (#45867; thanks huacnlee)
- Agent: Fixed the docs aside placement in selectors (i.e., model and configuration) depending on the panel dock position. (#46050)
- Agent: Fixed a bug where mention creases didn't scale with
agent_buffer_font_sizeand got clipped/jumbled when rendered one above the other. (#45683) - Agent: Fixed scrollbar and JSON indentation for tool call input/output content's markdown codeblocks. (#45454)
- Agent: Fixed a spurious "no checkpoint" error in the agent panel. (#44801)
- Agent: Fixed a hang when accepting file deletions made by the agent while the deleted buffer was still open. (#46086)
- Agent: Fixed inability to paste images from the clipboard directly into the agent panel on Windows. (#45695; thanks YangAoLib)
- Agent: Fixed long error messages in Agent Panel being unreadable by making them scrollable. (#45792; thanks ahmedhesham6)
- Agent: Fixed agent notification getting stuck and becoming undismissible when the project window is closed or when navigating to a new thread. (#44939)
- Git: Fixed a bug where word diffs would filter out pure whitespace diffs. (#45090)
- Git: Fixed a bug where the branch list deletion button would delete the wrong branch. (#45087)
- Git: Fixed the commit tooltip in the git panel not showing information like avatars. (#38749; thanks LoricAndre)
- Git: Fixed the Git panel to preserve newlines in commit messages. (#45167; thanks errmayank)
- Git: Fixed toggling adjacent git-diff hunks based on the reported behavior in #42934. (#43187; thanks seanstrom)
- Git: Fixed git push to respect the upstream branch name instead of defaulting to the local branch name. (#46158; thanks amtoaer)
- Git UI: Fixed git tree view folders not opening when a file inside is selected. (#45137; thanks xipeng-jin)
- Git UI: Fixed "select first entry" selecting the wrong visual first entry when tree view is enabled. (#45108; thanks RemcoSmitsDev)
- Git UI: Fixed select next/previous entry selecting non-visible entries when tree view is enabled. (#45030; thanks RemcoSmitsDev)
- Python: Fixed selected virtual environments not being persisted/deserialized correctly within long-running Zed sessions (where multiple different projects might've been opened). This is a breaking change for users of multi-worktree projects—your selected toolchain for those projects will be reset. (#45357)
- Python: Fixed broken completion menu layout caused by trailing newlines in ty documentation. (#45342; thanks errmayank)
- Python: Fixed an issue where the
editor: organize importsaction didn’t work for Python, even though imports were organized correctly during formatting. (#45874; thanks abdelq) - Fixed outline configuration for C++ variables with complex specifiers. (#46135; thanks ozacod)
- Fixed missing enum class struct in the outline panel for C++. (#46121; thanks ozacod)
- Fixed outline members issue for unions in C++. (#46127; thanks ozacod)
- Fixed
$motion in Vim mode to stay at the end of the line when moving vertically. (#45375; thanks errmayank) - Fixed an implicit dependency on a system
nodefor running devcontainers. (#45589; thanks KyleBarton) - Fixed an issue on macOS where audio playback would become temporarily scrambled when doing lots of IO operations, such as when running
git pullorgit checkoutwhile in a call. (#46128) - Fixed a bug where
:g/pattern/normcommands would only apply on the last match. (#43352; thanks AidanV) - Fixed an issue where
ctrl+dragduplicated selected text on Linux and Windows when the selection was inside a link. (#45611; thanks chipgw) - Fixed builtin Python language servers not working correctly on SSH remotes. (#46156)
- Fixed a bug where changing the UI Font Size in the Settings UI would break the scrollbar for the "Appearance" page. (#45099)
- Fixed a project panel drag-and-drop issue where selecting both a folder and its children could result in files being silently lost in some cases. (#45567; thanks tacshi)
- Fixed default Zed terminal environment vars not being set in remote terminal shells. (#46149)
- Fixed outline nesting issue for variable declarations in C++. (#45797; thanks hokein)
- Fixed Vim mode count multiplier for word text objects (
2aw,2iw,2aW,2iW). (#45686; thanks MateoKruk) - Fixed some IME popups and the emoji picker not appearing at the cursor position on Windows. (#46079)
- Fixed terminal activation for
uvanduv-workspacePython environments. (#45949; thanks lingyaochu) - Fixed terminal Stop button not killing child processes on Unix (Linux, macOS). (#45993; thanks DepsCian)
- Fixed an issue where the theme was not configurable from the Settings UI if no theme was configured prior. (#46069)
- Fixed a memory leak when previewing Markdown files with images. (#46039; thanks marcocondrache)
- Fixed an issue where adjacent selection insert would merge cursors. (#45363; thanks marcocondrache)
- Fixed a panic in Copilot edit predictions caused by anchor/snapshot version mismatch. (#46022; thanks vadim-su)
- Fixed inlay hint hover highlight not covering the last character when the label contains multi-byte UTF-8 characters. (#44872; thanks edlsh)
- Fixed unescaped regexp characters in test names passed to
bun test. (#45749; thanks pckilgore) - Fixed rstml injection not working inside Leptos
view!macros. (#45952; thanks ArhanChaudhary) - Fixed setting breakpoints on remotes. (#44908)
- Fixed an issue where subprocesses of ACP servers could be leaked after starting a new session. (#45902)
- Fixed colorized brackets for the GLSL extension. (#45727; thanks Thinkseal)
- Fixed a bug where different text alignment configurations (i.e., centered and right-aligned) wouldn't take effect in editors. (#45417)
- Fixed popup windows sometimes not spawning as floating on X11. (#42224; thanks Lieunoir)
- Fixed an X11 issue where alt-tabbing to another application, scrolling, and returning to Zed could cause the next scroll event to jump by a large amount. (#43841; thanks jkugs)
- Fixed OpenRouter giving errors for some Anthropic models. (#45399)
- Fixed an issue where the
pane: close all itemsaction would give up if you hit "Cancel" on the prompt for what to do with a dirty buffer. (#45368) - Fixed a bug in GPUI where truncated text would flicker as you resized the container in which the text was in. (#45373)
- Fixed spawned tasks creating an extra terminal in the dock in some cases. (#45317)
- Fixed the workspace incorrectly automatically switching Git repository/branch context in multi-repository projects when the repo/branch was switched manually from the Git panel. (#45354)
- Fixed an issue where completions in the completion menu would span multiple lines. (#44965; thanks prayanshchh)
- Fixed display name for Ollama models. (#45287)
- Fixed an issue on Windows where clicking buttons in the background would not register as being clicked on that window. (#45237)
- Fixed terminal focus behavior to respect
RevealStrategy::NoFocusandRevealStrategy::Neversettings when the terminal pane already has focus. (#45180; thanks rabsef-bicrym) - Fixed new files and projects opening with default window size instead of the last used window size. (#45204; thanks MostlyKIGuess)
- Fixed terminal-launched Codex/Claude sessions by forwarding Ctrl+V for clipboard images so agents can attach them. (#42258; thanks kingsword09)
- Fixed pending keybinding prefixes on the status bar now clearing immediately when focus moves to another panel or UI context. (#44678; thanks xipeng-jin)
- Fixed a bug that prevented keyboard navigation in the Settings window. (#45111)
- Fixed flickering when opening context menus. (#45098)
- Fixed an issue where auto-indentation didn't work correctly for Python code blocks in Markdown. (#43853; thanks jeffbrennan)
- Fixed stale settings persisting when switching remote projects. (#45021; thanks errmayank)
- Fixed some performance bottlenecks related to syntax analysis when editing very large files. (#39416)
- Fixed a bug where opening the command palette or other modals would trigger auto-save with the
{ "autosave": "on_focus_change" }setting, causing unwanted format changes when executing actions and creating a race condition with:win Vim mode. (#45166) - Fixed a bug where sticky headers would obscure the cursor when it moved. (#45377; thanks P1n3appl3)
- Fixed a Nix dev shell evaluation warning by switching from 'hostPlatform' to 'stdenv.hostPlatform'. (#45045; thanks AidanV)
- Fixed SVG previews and the toolbar button not working in single-file mode by using the file name for SVG detection. (#45747; thanks gshahbazian)
- Fixed context menu in project panel targeting the wrong folder when right-clicking on folded directory paths. (#45876; thanks andre-eriksson)
- Fixed dock panel button tooltips not being dismissed when toggling panels via keyboard shortcut. (#44746; thanks Daeksell)
- Fixed GPUI hover styles not being applied during layout. (#43324; thanks errmayank)
- Fixed relative line numbers not appearing in sticky headers when using
"relative_line_numbers"setting. (#45164; thanks HactarCE) - Fixed a terminal scrollbar panic caused by arithmetic underflow in some cases. (#45282; thanks rabsef-bicrym)
- Fixed a bug where new windows would flicker, briefly showing the "Open a file or project to get started" message before an empty editor buffer appeared. (#44915; thanks Copilot)