Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/src/ai/agent-panel.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ The Agent Panel can host Terminal Threads alongside your agent threads. For open
The agent can search your codebase to find relevant context, but providing it explicitly improves response quality and reduces latency.

Add context by typing `@` in the message editor.
You can mention files, directories, symbols, previous threads, skills, instruction files, and diagnostics.
You can mention files, directories, symbols, previous threads, skills, diagnostics, branch diffs, and URLs to fetch.

When you paste multi-line code selections copied from a buffer, Zed automatically formats them as @-mentions with the file context.
To paste content without this automatic formatting, use {#kb agent::PasteRaw} to paste raw text directly.
Expand All @@ -154,7 +154,7 @@ Zed surfaces how many tokens you are consuming for your currently active thread

Zed automatically compacts long Zed Agent threads as they approach the configured token threshold. Compaction summarizes earlier messages and replaces them in the model context with that summary, leaving more room for the next turn. The thread shows a **Context Compacted** entry that you can expand to inspect the summary. You can compact manually by typing `/compact` in the message editor.

If the selected model's context window is too small for automatic compaction (less than 80000 tokens), a banner appears above the message editor as you approach the token limit. Use **Start New Thread** from that banner, or choose **New From Summary** from the "Agent Options" menu, to continue in a new thread seeded with a summary. You can also @-mention a past thread in a new one.
If the selected model's context window is too small for automatic compaction (less than 80000 tokens), a banner appears above the message editor as you approach the token limit. Use **Start New Thread** from that banner, or choose **New From Summary** from the New Thread menu (the `+` button on the top right), to continue in a new thread seeded with a summary. You can also @-mention a past thread in a new one.

Configure automatic compaction with `agent.auto_compact`. See [Agent Settings](./agent-settings.md#automatic-compaction) for options.

Expand Down
8 changes: 4 additions & 4 deletions docs/src/ai/edit-prediction.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
title: AI Code Completion in Zed - Zeta, Copilot, Codestral, Mercury Coder
description: Set up AI code completions in Zed with Zeta (built-in), GitHub Copilot, Codestral, or Mercury Coder. Multi-line predictions on every keystroke.
description: Set up AI code completions in Zed with Zeta (built-in), GitHub Copilot, Codestral, or Mercury Coder. Multi-line predictions as you type.
---

# Edit Prediction

Edit Prediction is how Zed's AI code completions work: an LLM predicts the code you want to write.
Each keystroke sends a new request to the edit prediction provider, which returns individual or multi-line suggestions you accept by pressing `tab`.
As you type, Zed requests predictions from the edit prediction provider, which returns individual or multi-line suggestions you accept by pressing `tab`.
Comment thread
macraig marked this conversation as resolved.

The default provider is [Zeta, an open source model developed by Zed](https://zed.dev/blog/zeta2), but you can also use [other providers](#other-providers) like GitHub Copilot, Mercury Coder, and Codestral.

Expand Down Expand Up @@ -60,7 +60,7 @@ Or directly via the UI through the status bar menu:

## Default Key Bindings

On macOS and Windows, you can accept edit predictions with `alt-tab`. On Linux, `alt-tab` is often used by the window manager for switching windows, so `alt-l` is the default key binding for edit predictions.
On all platforms, you can accept edit predictions with `alt-tab`. On Linux and Windows, `alt-tab` is often used by the system for switching windows, so `alt-l` is also bound as a default key binding for edit predictions on those platforms.
Comment thread
macraig marked this conversation as resolved.

In `eager` mode, you can also use the `tab` key to accept edit predictions, unless the completion menu is open, in which case `tab` accepts LSP completions. To use `tab` to insert whitespace, you need to dismiss the prediction with {#kb editor::Cancel} before hitting `tab`.

Expand Down Expand Up @@ -109,7 +109,7 @@ Alternatively, you can put the following in your `keymap.json`:
]
```

After that, `alt-tab` remains available for accepting edit predictions, and on Linux `alt-l` does too unless you unbind it.
After that, `alt-tab` remains available for accepting edit predictions, and on Linux and Windows `alt-l` does too unless you unbind it.

### Keybinding Example: Rebind Both Tab and Alt-Tab

Expand Down
6 changes: 3 additions & 3 deletions docs/src/ai/external-agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Use Gemini CLI when you want Gemini running as an ACP-integrated External Agent

Install Gemini CLI from the [ACP Registry](#registry), then start a Gemini CLI thread from the Agent Panel or Threads Sidebar. Gemini CLI owns its own authentication and may prompt you to log in with Google, Vertex AI, or another Gemini-supported flow.

If `GEMINI_API_KEY` or `GOOGLE_AI_API_KEY` is available to the agent process, Gemini CLI may use that key. Zed-configured Google AI provider settings are separate from Gemini CLI's native configuration.
If `GEMINI_API_KEY` or `GOOGLE_AI_API_KEY` is available to the agent process, Gemini CLI uses that key. Otherwise, if you have configured an API key for Zed's Google AI provider, Zed passes that key to Gemini CLI as `GEMINI_API_KEY`.
Comment thread
macraig marked this conversation as resolved.

## OpenCode {#opencode}

Expand Down Expand Up @@ -149,9 +149,9 @@ Registry-installed agents can also have per-agent settings under `agent_servers.

## Extension-Provided Agents {#extension-agents}

Some extensions can provide agents. Registry installation is the primary path for common agents, but extension-provided agents still exist.
Extension-provided agents are deprecated. The [ACP Registry](#registry) is now the way to install agents, and previously installed extension agents are automatically migrated to their registry equivalents.

For extension authoring, see [Agent Server Extensions](../extensions/agent-servers.md).
For details, see [Agent Server Extensions](../extensions/agent-servers.md).

## Importing Threads {#importing-threads}

Expand Down
6 changes: 3 additions & 3 deletions docs/src/ai/inline-assistant.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Here's how you can customize your settings file ([how to edit](../configuring-ze
"inline_alternatives": [
{
"provider": "zed.dev",
"model": "gpt-4-mini"
"model": "gpt-5-mini"
}
]
}
Expand All @@ -67,7 +67,7 @@ Here's how you can customize your settings file ([how to edit](../configuring-ze

When multiple models are configured, you'll see in the Inline Assistant UI buttons that allow you to cycle between outputs generated by each model.

The models you specify here are always used in _addition_ to your [default model](#default-model).
The models you specify here are always used in _addition_ to the Inline Assistant's primary model. That's the model set in [`agent.inline_assistant_model`](./agent-settings.md), or your `agent.default_model` if no Inline Assistant model is configured.

For example, the following configuration will generate three outputs for every assist.
One with Claude Sonnet 4.5 (the default model), another with GPT-5-mini, and another one with Gemini 3 Flash.
Expand All @@ -82,7 +82,7 @@ One with Claude Sonnet 4.5 (the default model), another with GPT-5-mini, and ano
"inline_alternatives": [
{
"provider": "zed.dev",
"model": "gpt-4-mini"
"model": "gpt-5-mini"
},
{
"provider": "zed.dev",
Expand Down
5 changes: 2 additions & 3 deletions docs/src/ai/mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Many MCP servers are available as extensions. Find them via:

1. [the Zed website](https://zed.dev/extensions?filter=context-servers)
2. in the app, open the Command Palette and run the {#action zed::Extensions} action
3. in the app, go to the Agent Panel's top-right menu and look for the "View Server Extensions" menu item
3. in the app, go to the Agent Panel's top-right menu and look for the "Install New Servers…" menu item under the "MCP Servers" section

Popular servers available as an extension include:

Expand All @@ -62,7 +62,7 @@ You can connect them by adding their commands directly to your settings file ([h
"env": {}
},
"remote-mcp-server": {
"url": "custom",
"url": "https://example.com/mcp",
"headers": { "Authorization": "Bearer <token>" }
},
"remote-mcp-server-with-oauth": {
Expand Down Expand Up @@ -110,7 +110,6 @@ As an example, [the Dagger team suggests](https://container-use.com/agent-integr
"name": "Container Use",
"tools": {
"fetch": true,
"thinking": true,
"copy_path": false,
"find_path": false,
"delete_path": false,
Expand Down
2 changes: 1 addition & 1 deletion docs/src/ai/parallel-agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Parallel Agents lets you run multiple agent threads and Terminal Threads at once

Open the Threads Sidebar with {#kb multi_workspace::ToggleWorkspaceSidebar}.

Use **Zed > Panel Layout > Agentic** to place the Agent Panel and Threads Sidebar on the left, with the Project Panel, Git Panel, and other panels on the right. Use **Zed > Panel Layout > Classic** to restore the editor-oriented layout. You can still rearrange individual panels by right-clicking any panel icon.
Use **Panel Layout > Agentic** from the user menu in the title bar (or the {#action workspace::UseAgenticLayout} action) to place the Agent Panel and Threads Sidebar on the left, with the Project Panel, Git Panel, and other panels on the right. Use **Panel Layout > Classic** (or {#action workspace::UseClassicLayout}) to restore the editor-oriented layout. You can still rearrange individual panels by right-clicking any panel icon.

## Threads Sidebar {#threads-sidebar}

Expand Down
16 changes: 8 additions & 8 deletions docs/src/ai/skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Nothing is written to disk until they explicitly save, so a shared link can neve

By default, the agent picks up skills autonomously. It sees a catalog of every installed skill (name and description) in its system prompt, and calls the `skill` tool when a task matches a skill's description.

When the agent invokes a skill, Zed prompts you to allow or deny it, using the same permission flow as other tools. You can set per-skill defaults in [Tool Permissions](./tool-permissions.md) so you're not prompted for skills you always trust.
When the agent invokes a skill you created or installed, Zed prompts you to allow or deny it, using the same permission flow as other tools. Skills built into Zed do not prompt. You can set per-skill defaults in [Tool Permissions](./tool-permissions.md) so you're not prompted for skills you always trust.

### Manual Invocation {#manual-invocation}

Expand Down Expand Up @@ -98,7 +98,7 @@ my-skill/
└── assets/ # Optional: templates and static files
```

The folder name must match the `name` field in `SKILL.md`.
By convention, the folder name should match the `name` field in `SKILL.md`.

### SKILL.md format {#skill-md-format}

Expand All @@ -119,11 +119,11 @@ Step-by-step instructions for the agent...

#### Frontmatter Fields {#frontmatter-fields}

| Field | Required | Description |
| -------------------------- | -------- | -------------------------------------------------------------------------------------------- |
| `name` | Yes | Lowercase letters, numbers, and hyphens only. Max 64 characters. Must match the folder name. |
| `description` | Yes | What the skill does and when to use it. Max 1024 characters. |
| `disable-model-invocation` | No | Set to `true` to hide from the agent's catalog (slash command only). |
| Field | Required | Description |
| -------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `name` | Yes | Lowercase letters, numbers, and hyphens only. Max 64 characters. Should match the folder name. |
| `description` | Yes | What the skill does and when to use it. Keep it under 1024 bytes; skills with longer descriptions still load, but with a warning. |
| `disable-model-invocation` | No | Set to `true` to hide from the agent's catalog (invocable via slash command or @-mention only). |

> **Tip:** Write descriptions that help the agent recognize when a skill is relevant. Include specific task types and trigger phrases: "Use when handling PDFs, extracting text, or filling forms" is better than "Helps with PDFs."

Expand Down Expand Up @@ -196,7 +196,7 @@ Zed Skills apply to the Zed Agent. External Agents and Terminal Threads may have

- **Flat layout only.** Skills must be direct children of the skills root. Nested folders like `~/.agents/skills/group/my-skill/` are not discovered.
- **50KB catalog budget.** The total size of all skill names and descriptions is capped at 50KB. Skills that don't fit are dropped from the catalog with a warning in the UI. Keep descriptions concise.
- **No remote registry.** Zed does not fetch skills from URLs or support custom search paths. Skills come from `~/.agents/skills/` and `<worktree>/.agents/skills/` only. Use a symlink if you need to point at another location.
- **No remote registry.** Zed does not discover or load skills from remote locations at runtime, and custom search paths are not supported. (You can still import a skill once from a GitHub URL — see [Create your own](#create-your-own).) Skills are loaded from `~/.agents/skills/` and `<worktree>/.agents/skills/` only. Use a symlink if you need to point at another location.
- **Live reload.** Adding, removing, or editing a `SKILL.md` takes effect immediately without restarting your session. Changes to a skill's `name` or `description` invalidate the model's prompt cache for the current session.

## See also
Expand Down
28 changes: 15 additions & 13 deletions docs/src/ai/tool-permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,18 @@ The `tool_permissions` setting lets you customize tool permissions by specifying

## Supported Tools

| Tool | Input Matched Against |
| ------------------ | ---------------------------- |
| `terminal` | The shell command string |
| `edit_file` | The file path |
| `write_file` | The file path |
| `delete_path` | The path being deleted |
| `move_path` | Source and destination paths |
| `copy_path` | Source and destination paths |
| `create_directory` | The directory path |
| `fetch` | The URL |
| `search_web` | The search query |
| `skill` | The skill name |
| Tool | Input Matched Against |
| ------------------ | ------------------------------------------------ |
| `terminal` | The shell command string |
| `edit_file` | The file path |
| `write_file` | The file path |
| `delete_path` | The path being deleted |
| `move_path` | Source and destination paths |
| `copy_path` | Source and destination paths |
| `create_directory` | The directory path |
| `fetch` | The URL |
| `search_web` | The search query |
| `skill` | The absolute path to the skill's `SKILL.md` file |

For MCP tools, use the format `mcp:<server>:<tool_name>`.
For example, a tool called `create_issue` on a server called `github` would be `mcp:github:create_issue`.
Expand Down Expand Up @@ -311,14 +311,16 @@ MCP tools only support the tool-level option.

### Skills

Patterns for the `skill` tool match against the absolute path to the skill's `SKILL.md` file, not the skill name.

```json [settings]
{
"agent": {
"tool_permissions": {
"tools": {
"skill": {
"default": "confirm",
"always_allow": [{ "pattern": "^code-review$" }]
"always_allow": [{ "pattern": "/code-review/SKILL\\.md$" }]
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion docs/src/ai/use-api-access.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ limits, or a custom endpoint.
{
"language_models": {
"deepseek": {
"api_url": "https://api.deepseek.com",
"api_url": "https://api.deepseek.com/v1",
"available_models": [
{
"name": "deepseek-v4-flash",
Expand Down
2 changes: 1 addition & 1 deletion docs/src/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ The command palette (`Cmd+Shift+P`) is your gateway to every action in Zed. If y

### Panel Layout

Use **Zed > Panel Layout > Agentic** when you want the Agent Panel and Threads Sidebar next to each other on the left. Use **Zed > Panel Layout > Classic** to restore the editor-oriented layout.
Use **Panel Layout > Agentic** from the user menu in the title bar (or the {#action workspace::UseAgenticLayout} action) when you want the Agent Panel and Threads Sidebar next to each other on the left. Use **Panel Layout > Classic** (or {#action workspace::UseClassicLayout}) to restore the editor-oriented layout.

### 3. Configure Your Editor

Expand Down
2 changes: 1 addition & 1 deletion docs/src/windows-and-projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: "How Zed handles multiple projects in windows, including the thread

Zed lets you work on multiple projects in a single window. Projects appear in the threads sidebar on the left, and you can switch between them while keeping your context intact.

Use **Zed > Panel Layout > Agentic** to keep the Threads Sidebar and Agent Panel together on the left. Use **Zed > Panel Layout > Classic** to restore the editor-oriented layout.
Use **Panel Layout > Agentic** from the user menu in the title bar (or the {#action workspace::UseAgenticLayout} action) to keep the Threads Sidebar and Agent Panel together on the left. Use **Panel Layout > Classic** (or {#action workspace::UseClassicLayout}) to restore the editor-oriented layout.

## How Projects Open

Expand Down
Loading