19 February 2026 · 6 min read

Editor-level AI: completions, agents, and the Zed setup I actually use

The middle layer of AI coding tools. Inline completions, agent panels, and external agents like Claude Code running inside your editor.

Editor-level AI: completions, agents, and the Zed setup I actually use

This is Part 2 of my AI coding workflow series. Part 1 covers terminal agents. Part 3 covers PR-level agents. This post is about the middle layer: AI inside your editor.

A note on timing: the AI tooling space moves fast. The tools, models, and prices here are a snapshot of what I use right now, not a fixed recipe, and some details will date quickly. I keep these posts updated as my workflow shifts.

Editor AI has three layers

I didn't realise this until I spent time configuring Zed properly. What looks like "editor AI" is actually three separate systems:

1. Edit predictions (inline completions). The ghost text that appears as you type. It needs to be fast, under 100ms or it feels laggy. Only certain providers work here.

2. Agent panel. A chat interface inside your editor. Use any LLM provider. Good for reasoning about code, explaining errors, planning changes.

3. External agents. Full coding agents (Claude Code or OpenCode) running inside your editor instead of the terminal. Same capabilities as terminal agents, with editor integration.

Most confusion comes from thinking these are all the same thing. They're not. Each has different provider options and different use cases.

Edit predictions: what actually works

Inline completions need speed. The model has to respond while you're still typing, or the suggestions feel useless. This rules out most LLMs.

Works for inline completions:

  • GitHub Copilot (Pro from $10/month, prices as of early 2026)
  • Supermaven
  • Zed's built-in (Zeta)

Doesn't work for inline completions:

  • Claude (too slow)
  • GPT-4 (too slow)
  • Gemini (too slow)

This surprised me initially. I assumed I could use Claude for everything. But Copilot dominates inline completions for a reason. The model is optimised for speed, not reasoning depth.

For Zed, the config is:

{
  "edit_predictions": {
    "provider": "copilot"
  }
}

I stick with Copilot here. Cheap, works everywhere, good enough quality for the "complete this line" use case. Note that GitHub is moving Copilot to usage-based AI Credits from June 2026, so the "unlimited completions" framing applies to current plans only.

The agent panel: use any LLM

The agent panel is different. It's a chat interface for longer interactions: explain this error, refactor this function, help me understand this codebase. Speed matters less. Reasoning quality matters more.

Here you can use whatever provider you want:

  • Anthropic (Claude)
  • OpenAI (GPT-4, o1)
  • Google (Gemini)
  • Ollama (local models)
  • OpenRouter
  • Custom providers

I keep z.ai's GLM 4.7 as my default. It's the cheapest option I've found that's still usable. For complex problems, I switch to Claude, but the per-token costs add up if you use it for everything.

{
  "agent": {
    "default_model": {
      "provider": "z.ai",
      "model": "glm-4.7"
    }
  }
}

Where API keys live: Zed stores them in macOS Keychain, not in your settings file. Add keys through the command palette: agent: open settings, find your provider, paste the key.

External agents: the hidden third layer

This is the part of Zed's AI setup that trips most people up the first time.

Zed supports "external agents", full coding agents like Claude Code, OpenCode, Gemini CLI, or Codex. These aren't just chat interfaces. They have tools: file access, command execution, the ability to make changes across your codebase.

The key UX insight: click the + button in the Agent Panel to start a thread with a different agent.

That's it. That's how you switch. Each agent type gets its own thread. You can have multiple running.

AgentWhat it isAuth
OpenCodeOpen source agent, swap models freelyYour own API keys
Claude CodeAnthropic's official agentAnthropic API or Claude Pro/Max
Gemini CLIGoogle's agentGoogle OAuth or API key
CodexOpenAI's agentOpenAI API or ChatGPT subscription

OpenCode is what I use most. I can point it at cheap models for routine tasks, Claude for complex ones. The agent profiles (plan, build, autonomous) give different levels of autonomy.

Installing external agents

Most are Zed extensions. Search the extension panel, install, and they appear as options when you click + in the Agent Panel.

Claude Code and some others use the ACP Registry. You might see prompts to install from there instead. Either way, once installed, they show up in the same place.

My actual config

Here's what I run:

{
  "edit_predictions": {
    "provider": "copilot"
  },
  "agent": {
    "default_model": {
      "provider": "z.ai",
      "model": "glm-4.7"
    }
  }
}

Why this setup:

  • Copilot for completions: fast, cheap, good enough for inline suggestions.
  • z.ai as default agent: cheapest usable model I've found for routine questions.
  • Claude/OpenAI configured but not default: available when I need better reasoning, but not burning credits on "what's the syntax for X".

I have OpenCode and Claude Code extensions installed. When I need to make multi-file changes or run commands, I start an external agent thread instead of using the basic agent panel.

When to use each

THE LAYERED LOOP

Three layers, three different jobs.

LayerToolBest for
Inline completionsCopilotFinishing lines, boilerplate, obvious patterns
Agent panelz.ai or Claude in ZedExplaining errors, structure questions, pre-commit review
External agentsOpenCode CLI / Claude Code in ZedMulti-file changes, test loops, planned features

The terminal vs editor decision is mostly preference. I use external agents in Zed when I'm already in the editor and don't want to context-switch. I use terminal agents (OpenCode CLI) when I'm doing a longer session and want the full terminal experience.

What I got wrong initially

Assuming Claude would work for completions. It doesn't. Too slow. Use Copilot or Supermaven.

Not understanding the + button. I kept wondering how to "switch agents". There's no toggle. You start a new thread with a different agent. Each thread is tied to its agent type.

Putting API keys in settings.json. They don't go there. Zed uses keychain storage. The settings file just points to providers; credentials are stored securely.

Using expensive models for everything. z.ai at ~£0.001 per request vs Claude at ~£0.01-0.03. For "remind me of this syntax" questions, the cheap model is fine.

Series navigation

AI Coding Workflow Series:

  • Part 1: Terminal Agents — Claude Code, OpenCode, session-level orchestration.
  • Part 2: Editor-Level AI (this post) — Zed, inline completions, agent panels.
  • Part 3: PR-Level Agents — GitHub Apps, automated review.
  • Part 4: Persistent VPS Agent — OpenClaw, Tailscale, Syncthing.
  • Part 5: Claude Code Skills Setup (coming soon) — extending Claude Code with custom and vendor skills.

This series covers my actual AI coding workflow. I'll update as tools evolve.

James Donnelly, freelance developer in Manchester

The pitch

I write the code, talk to your team, and ship what we agreed. No agencies. No PMs. No surprises.

James Donnelly

Freelance developer · Manchester