Extensions in Zed

Extend and customize Zed's functionality with extensions

Extensions in Zed

Extensions add functionality to Zed — languages, themes, icon themes, snippets, MCP servers, debuggers, and more. Browse and install them from the built-in Extension Gallery without leaving the editor.

Key aspects of Zed's extension system include:

  • Discoverability: Search and install from the Extension Gallery
  • Capabilities: Languages, themes, icons, snippets, MCP, debuggers
  • Declarative installs: auto_install_extensions in settings
  • Capability controls: Restrict what extensions may download or execute
Zed Extensions

Types of Extensions

Zed supports several extension types that enhance different parts of the editor:

Languages

Language extensions add or deepen language support:

  • Tree-sitter grammars and syntax highlighting
  • Language server integration for completions, diagnostics, and go-to-definition
  • Language-specific tooling hooks (formatters, tasks, and related config)

Themes

Theme extensions change the look of the UI and syntax colors:

  • Editor and UI color schemes
  • Syntax highlighting palettes
  • Light and dark variants

Icon Themes

Icon theme extensions customize file and folder icons in the Project Panel and related views, so you can match your preferred visual language for file types.

Snippets

Snippet extensions provide reusable code templates you can expand while typing, often scoped to specific languages.

MCP Servers

Model Context Protocol (MCP) server extensions connect Zed’s Agent tooling to external tools and data sources — documentation, issue trackers, databases, and other services your AI workflows can call.

Debuggers

Debugger extensions integrate debug adapters so you can start, step through, and inspect debugging sessions for supported languages and runtimes.

The extension ecosystem grows quickly. Revisit the gallery periodically for new languages, themes, MCP servers, and debugger adapters.

Finding and Installing Extensions

Opening the Extension Gallery

Open the gallery with a shortcut, the menu, or the Command Palette:

Action macOS Linux / Windows
Open Extension Gallery ShiftX CtrlShiftX
  1. Open Extensions

    Press the shortcut above, or choose Zed → Extensions from the menu bar.

  2. Browse or Search

    Browse available extensions or use the search bar to find languages, themes, icon themes, snippets, MCP servers, or debuggers by name.

    Extension Gallery
  3. View Details

    Open an extension entry to read its description and capabilities before installing.

Installing Extensions

  1. Find the Extension

    Locate the extension you want in the gallery.

  2. Install

    Click Install. Zed downloads the extension and places it in your platform’s extensions directory.

  3. Use It

    Language servers and themes typically become available shortly after install. Select a new theme from the theme picker if needed; enable MCP or debugger features from their respective panels or settings.

Installation Locations

Extensions live under a platform-specific directory with two subfolders: installed (extension source) and work (runtime files such as downloaded language servers).

  • macOS: ~/Library/Application Support/Zed/extensions
  • Linux: ~/.local/share/zed/extensions (or $XDG_DATA_HOME/zed/extensions)
  • Windows: %LOCALAPPDATA%\Zed\extensions

List installed extension IDs by looking at the subfolders under .../extensions/installed/ — those folder names are what auto_install_extensions expects.

Managing Extensions

Viewing Installed Extensions

Open the Extension Gallery and switch to your installed extensions to see what is active, update available packages, or remove ones you no longer need.

Updating Extensions

When updates are available, install them from the gallery’s installed / updates views. Keep language and debugger extensions current so language servers and adapters stay compatible.

Disabling and Uninstalling

  1. Find the Extension

    Open the gallery and locate the extension under your installed list.

  2. Disable or Uninstall

    Disable temporarily if you want to keep it around, or uninstall to remove it entirely. Confirm when prompted.

Auto-install Extensions

Declare extensions that should always be installed (or never installed) in settings.json with auto_install_extensions. Use the extension ID (folder name), not the display title:

json
{ "auto_install_extensions": { "html": true, "dockerfile": true, "docker-compose": false } }

Set a value to true to ensure installation, or false to prevent installation. The default includes { "html": true }.

Configuring Extensions

Extension Settings

Many extensions expose settings you can change in the Settings Editor or directly in settings.json:

  1. Open Settings

    Press , (macOS) or Ctrl, (Linux/Windows).

  2. Find Extension Settings

    Search for the language or feature name (for example a formatter, theme, or MCP-related option).

    Extension Settings
  3. Adjust Settings

    Change values in the UI or JSON. Language tooling is often configured under the languages object in settings.

Example: Language Tooling in Settings

json
{ "languages": { "Python": { "tab_size": 4, "formatter": "language_server", "format_on_save": "on" } } }

Extension Capabilities

Zed governs what extensions may do (run processes, download files, install npm packages) through granted_extension_capabilities. You can tighten this — for example, only allow downloads from github.com — or clear the list to grant nothing (which will break many extensions). See the capabilities documentation for details.

Check an extension’s gallery page or repository README for the settings and IDs it expects.

Recommended Starting Points

Language and Tooling

Install language extensions for stacks you use that are not covered (or not fully covered) out of the box. Pair them with formatters and linters configured in settings.json or via language servers.

Themes and Icon Themes

Browse theme and icon theme extensions to match your visual preferences. Apply themes from the theme / appearance settings after install.

MCP and AI Tooling

If you use the Agent Panel, MCP server extensions are a practical way to give the agent structured access to external systems. Install only servers you trust.

Debuggers

Install debugger extensions for languages where you want integrated breakpoints and stepping without leaving Zed.

Prefer official or well-maintained extensions. Review capability requirements before installing packages that download binaries or run local processes.

Creating Your Own Extensions

Extension Development

You can publish your own extensions for languages, themes, icon themes, snippets, MCP servers, and debuggers. Zed’s extension docs walk through scaffolding, local testing, and packaging for the gallery.

Getting Started

  1. Read the Official Guide

    Start with the Zed extensions documentation for developing languages, themes, icon themes, snippets, MCP servers, and debuggers.

  2. Scaffold and Develop

    Create an extension project following the docs for your extension type, then iterate locally against a Zed build that can load your extension from disk.

  3. Test and Publish

    Verify install paths, capabilities, and user-facing settings before publishing to the gallery.

For API details and type-specific guides, see https://zed.dev/docs/extensions.

Troubleshooting Extensions

Common Issues

  • Extension not working: Reinstall, or check that required language servers downloaded into the work directory
  • Auto-install ignored: Confirm you used the extension ID (folder name), not the display name
  • Capability errors: Your granted_extension_capabilities may be too restrictive
  • Conflicts: Disable extensions one at a time to isolate problems

Logs and Diagnostics

Use the Command Palette to open developer / extension logs when diagnosing failures (search for “extension” or “log”). Check the Zed Discord or GitHub issues if a specific gallery extension misbehaves after an update.

Clearing a broken language server under the extension’s work folder and reinstalling often fixes stuck downloads without removing your whole extensions tree.

What's Next?

With extensions in place, learn how to customize and master keyboard shortcuts — including base keymaps, the Keymap Editor, and essential dual-platform bindings.