THE VAULT / RUN IT LIKE A BUSINESS / CONFIG + GUIDE
The Zed Agent Cockpit
Zed hit 1.0 in April 2026 and quietly became the cheapest serious way to run frontier agents all day: BYO keys are unlimited on the free plan, and Claude Code runs inside it. This is my full cockpit setup, the complete settings.json, three agent profiles, the new Skills system almost nobody has noticed, and the gotchas that cost me an afternoon each. Copy the three downloads and you're configured in 15 minutes.
LAST VERIFIED 2026-07-08
NOTE
Use this page as a prompt reference. Every file below is built to be handed straight to an AI. Download it, drop it into Claude, ChatGPT, Cursor, or Lovable, and say "use this as my playbook." The prompts on this page are copy-paste ready.
Why Zed, why now: the $10-vs-$0 math
Zed shipped 1.0 in April 2026 with parallel agents and full Mac/Windows/Linux parity, and as of July 2026 it's at ~1.4.x. The speed story is real, not marketing: Rust and GPU-native rendering at ~120fps, files open roughly 5x faster than Cursor, and it idles at 200-400MB of RAM where Cursor sits at 500-800MB.
But speed isn't why I moved my agent work here. The economics are. On May 6, 2026 Zed cut Pro from $20 to $10/mo, and more importantly: BYO API keys and external agents are unlimited and free, even on the Free plan. Zed takes zero cut of your Anthropic/OpenAI/Google spend. Cursor and Zed's own hosted plan both mark up heavy usage (Zed's hosted overage is API list price +10%). If you're burning $200+/mo in tokens, the editor that charges you nothing to bring your own key wins on math alone.
| Plan (as of July 2026) | Price | What you get |
|---|---|---|
| Personal (Free) | $0 | 2,000 accepted edit predictions/mo, unlimited BYO-key and external-agent use |
| Pro | $10/mo (was $20) | Unlimited predictions, $5/mo token credits, overage at API list +10%. 2-week trial with $20 credits (Opus excluded from trial) |
| Business | $30/seat/mo | Org policies, RBAC, spend visibility |
The other reason: ACP openness. Zed co-created the Agent Client Protocol (JetBrains adopted it in late 2025), which means Claude Code, Codex CLI, Gemini CLI, and even Cursor's own agent run side-by-side inside Zed's Agent Panel. No other editor lets you do that. Plus the best MCP control plane I've used (per-tool permissions, profile-based filtering) and real-time human multiplayer with voice.
NOTE
Honest column: Cursor still wins on cloud background agents (up to 10 in parallel while your laptop sleeps), Tab completion quality (Zeta 2 improved ~30% over Zeta 1 and still trails Cursor Tab), agent UX polish, native memory, and the VS Code extension ecosystem. Zed's parallelism is local-only. If cloud swarms are your workflow, stay on Cursor. If cost, speed, and running any agent you want matter more, keep reading.
And where Claude Code beats both on raw autonomy, Zed's answer is not to compete. It's to run Claude Code inside Zed. Section 5 covers that.
The full settings.json: one file, whole cockpit
Everything below lives in one file: ~/.config/zed/settings.json (open with cmd-, in Zed). Zed's settings file accepts comments, so the download is fully annotated. Here's the complete config, then I'll walk the four blocks that matter.
The routing block is the quiet money-saver. Zed lets you assign a different model to inline assists, commit messages, thread summaries, and subagents. Haiku writes commit messages exactly as well as Opus does, at a fraction of the price. Set it once, forget it.
auto_compact is what keeps 3-hour threads alive. At the 90% threshold Zed summarizes the conversation into a compact context instead of dying at the ceiling. Leave it on; drop the threshold to 80% if you work with huge files.
Tool permissions: allow reads, confirm writes, deny the footguns
The mcp:<server>:<tool> syntax is the part most people miss. You don't approve or reject a whole MCP server; you approve individual tools on it. My rule across every server: reads get allow, mutations get confirm, irreversible mutations (merge, execute, delete) get deny. The agent can still ask you to run those manually, which is exactly the friction you want.
WATCH OUT
Known bug as of July 2026: MCP permission-approval prompts can lose keyboard focus (zed#56287). If a thread looks stuck, click into the approval prompt before assuming the agent hung. This plus notify_when_agent_waiting saves real time.
Edit predictions: Zeta 2, and the free local option
Zeta 2 is open weights (built on ByteDance's Seed Coder 8B) with ~30% better acceptance than Zeta 1. The free plan caps you at 2,000 accepted predictions/mo on the hosted version. Two ways out: pay the $10, or run Zeta 2 locally through Ollama for unlimited predictions at $0. The disabled_globs line keeps predictions out of your .env files, which you want regardless of provider.
Three profiles: Write, Ask, Review (tool toggles are the product)
Profiles are saved bundles of tool toggles + MCP enablement + a default model, switchable per-thread from the Agent Panel. Zed ships Write, Ask, and Minimal built in. I run three: the built-in Write tuned up, a locked-down Ask, and a custom Review profile that can read code and GitHub but physically cannot edit anything. A review agent that can't touch files can't 'helpfully fix' things mid-review.
| Profile | Model | Can edit | Terminal | MCP | Use it for |
|---|---|---|---|---|---|
| Write | Opus (strongest you have) | Yes | Yes | All servers | Building. The default. |
| Ask | Sonnet (cheaper) | No | No | None | Codebase questions, planning, 'explain this'. Zero blast radius. |
| Review | Opus | No | No | GitHub only | PR and pre-deploy review. Reads code + PRs, cannot 'fix' anything. |
PAYOFF
The pattern to steal: capability follows intent. Asking a question? The agent shouldn't be able to write. Reviewing? It shouldn't be able to edit. Every tool you toggle off is a category of surprise you've deleted, and it also cuts tokens (fewer tool schemas in context).
WATCH OUT
Profiles apply to Zed's native agent only. Claude Code and other ACP agents running inside Zed ignore your profiles completely and use their own permission systems. Same for Skills below. Don't assume your Review lockdown constrains Claude Code, it doesn't.
Skills replaced Rules in 1.4.2 (and almost nobody noticed)
In 1.4.2 Zed deprecated the Rules Library and split its job in two. Instructions (AGENTS.md and friends) are the always-on layer: injected into every thread, every time. Skills are the on-demand layer: folders of instructions the agent pulls in only when relevant, or that you invoke as a slash command. Skills are also Zed's slash-command mechanism now. If you're still stuffing everything into one giant rules file, you're paying context tax on every message for instructions that apply 5% of the time.
| Layer | Lives at | Loaded | Use for |
|---|---|---|---|
| Instructions (global) | ~/.config/zed/AGENTS.md | Always, every thread | Universal working style, code rules, output format |
| Instructions (project) | AGENTS.md in the worktree (also reads .rules, .cursorrules, CLAUDE.md, etc.; project overrides global) | Always, in that project | Stack specifics, project conventions |
| Skills (global) | ~/.agents/skills/<name>/SKILL.md | On demand: autonomous, /name, or @skill | Reusable procedures across projects |
| Skills (project) | <worktree>/.agents/skills/<name>/SKILL.md (trusted worktrees only; overrides a global skill with the same name) | On demand | Project-specific procedures, shareable via git |
SKILL.md format: the frontmatter rules that actually reject files
A skill is a folder containing a SKILL.md, optionally plus scripts/, references/, and assets/ subfolders. The frontmatter is validated, and these limits are real, not suggestions:
- [ ]
name: max 64 chars, lowercase letters and hyphens only. This becomes the/slash-command. - [ ]
description: under 1,024 bytes. This is the ONLY thing the model sees when deciding whether to load the skill, so write it like a trigger condition ('Use when...'), not a title. - [ ]
disable-model-invocation: true(optional): skill only fires when YOU invoke it via/nameor@skill, never autonomously. Set it on anything with side effects. - [ ]Body under 500 lines. Push long reference material into
references/files the skill points to. - [ ]Flat layout: skill folders sit directly in the skills dir, no nesting.
- [ ]All skill descriptions together share a ~50KB catalog budget. Hoarding skills with bloated descriptions crowds out the rest.
- [ ]Skills live-reload: edit SKILL.md, it's active in the next message. No restart.
Complete example: the ship-check skill
Here's a full skill I actually use: a pre-deploy review that runs as /ship-check before anything hits production. It checks the branch diff for secrets, debug leftovers, missing error handling, untested changes, and unsafe migrations, then returns a SHIP / SHIP WITH NOTES / HOLD verdict. Folder layout:
Notice the description does three jobs in one sentence: what it is, when to trigger it, and how to invoke it. That's the pattern for every skill you write. Pair it with the Review profile from section 3 and the read-only rule is enforced by tooling, not by hoping the model listens.
NOTE
Keep the global AGENTS.md lean. It's charged against every single message in every project. My rule: if an instruction doesn't apply to 100% of projects, it's either a project AGENTS.md line or a skill. The starter download is under 40 lines and that's deliberate.
Claude Code inside Zed: registry, /login, and the auth gotcha
Zed's native agent is good. Claude Code is still deeper on autonomy, and since the ACP Registry launched (~Jan 2026) you run it as a first-class panel inside Zed instead of alt-tabbing to a terminal. Setup is 5 minutes:
- 1
Open the ACP Registry
Command palette, run
zed: acp registry. Or Agent Settings, then Add Agent, then Install from Registry. The registry also carries Codex CLI, Copilot CLI, OpenCode, Gemini CLI, Cursor's agent, and Pi. - 2
Install "Claude Agent"
That's Claude Code's registry name. Zed handles the binary; you don't install anything with npm.
- 3
Start a thread with it
In the Agent Panel, open a new thread and pick Claude Agent instead of the native Zed agent. Same panel, same @-mentions for files.
- 4
Run /login in the thread
Authenticate inside the thread with either an Anthropic API key or your existing Claude subscription. If you already pay for Claude, this is the move: your subscription now powers an agent inside Zed at no extra cost.
- 5
Verify with a real task
Give it one scoped task ('read src/auth.ts and explain the token refresh flow') before trusting it with edits. Confirm file reads work and diffs render in the panel.
WATCH OUT
The auth gotcha that gets everyone: authentication is per-agent. Your Zed-hosted key does NOT carry over to Claude Agent, and Claude Agent's login does not carry to Codex or Gemini CLI. Every external agent is its own auth silo. If an agent acts unauthenticated, you skipped ITS /login, not yours.
Also know what you lose in the panel: Zed profiles and Skills do not apply to external agents (Claude Code reads its own CLAUDE.md and skills), some Claude Code slash commands are unsupported in the Agent window, and checkpoint/token-display behavior varies per agent.
When to use a Terminal Thread instead
Terminal Threads (~v1.3.5) host any CLI or TUI agent as a persistent sidebar thread. It's the full real Claude Code, every slash command, every feature, just docked in Zed. Decision rule:
| Situation | Use |
|---|---|
| Normal agent work, want Zed's diff review UI and @-mentions | ACP Claude Agent |
| Need a slash command the ACP window doesn't support | Terminal Thread |
| Long autonomous run where you want Claude Code's native full-fidelity UX | Terminal Thread |
| Comparing two agents on the same task side by side | Two ACP threads in parallel |
The power move: one prompt, edits across 30 files
This is the workflow that doesn't exist anywhere else, because it composes three Zed primitives: multibuffers (many excerpts from many files in one editable view), multi-cursor, and inline assist (ctrl-enter). Multi-cursor inline assist runs the same prompt at every cursor simultaneously. Point it at a multibuffer and you get one AI transform applied across the whole codebase, with every change visible in a single scroll.
- 1
Project search into a multibuffer
cmd-shift-f for the pattern you're changing, e.g. every call site of a deprecated function. Zed renders all results as one multibuffer: every match, editable, with surrounding context.
- 2
Multi-cursor every match
Select the pattern and place a cursor at each occurrence (select-all-matches). 30 files, 45 hits, 45 cursors, one view.
- 3
Inline assist with one prompt
ctrl-enter. The same prompt runs at every cursor in parallel. Be mechanical and constraint-rich; this is a transform, not a conversation. @-mention the target file so every excerpt gets the same reference context (you can even @thread to pull in an agent conversation).
- 4
Review in place, then sweep
Every proposed edit appears inline in the multibuffer. Scroll once, eyeball everything, accept or reject per hunk. Then save-all and run your tests. If results are inconsistent,
inline_alternativescan generate candidates from multiple models in parallel and let you pick per-site.
PAYOFF
The escape-hatch line ('if it can't be migrated mechanically, leave a TODO') is what makes this safe at 45 sites. Without it, the model forces a bad migration on the weird ones. With it, you get 40 clean edits and 5 flagged sites to do by hand. That's the whole trade.
Inline assist also works in the terminal and in channel notes, and keybindings can prefill prompts. If you run the same transform weekly, bind it: one keystroke, prompt pre-filled, cursor in the slot.
Driving it daily: threads, checkpoints, and the review pass
The Agent Panel runs multiple threads in parallel, each with an independent context window. My loop: one Write thread building, one Ask thread for questions so I don't pollute the builder's context, Claude Agent on the gnarly refactor. cmd-alt-j opens the Threads Sidebar, ctrl-tab cycles recent threads.
- [ ]Before a risky agent run: note the checkpoint. Every agent action gets a Restore Checkpoint you can jump back to. It's the undo button for 'the agent rewrote half my router'.
- [ ]After every run: ctrl-shift-r opens Review Changes, a multibuffer diff of everything the agent touched, accept/reject per hunk. Never bulk-accept an agent session you haven't scrolled.
- [ ]Hold cmd when submitting to follow the agent as it works, watching it move through files beats reading a summary after.
- [ ]Queue follow-up messages while the agent works; they run in order. Edit past messages to fork a thread instead of re-explaining.
- [ ]Watch the token usage display. Past ~70% context, quality dips before auto_compact kicks in at 90%. /compact manually at natural task boundaries.
- [ ]Feed context with @-mentions: files, directories, symbols, previous threads, skills, diagnostics, branch diffs, URLs. Drag in images. cmd-> sends the current selection to the thread.
Gotchas: the nine things that will bite you (July 2026)
Every one of these is a real sharp edge in current Zed, not a hypothetical. Expand what's relevant.
1. No native memory
Zed's agent has no persistent memory between threads (Cursor's native memory is a genuine advantage here). The workaround: compose memory via MCP. Wire up a memory MCP server, or lower-tech and my preference: keep a NOTES.md in the repo, tell the agent in AGENTS.md to read it at thread start and append decisions at thread end. Portable, diffable, works with external agents too.
2. Agent-thread vs text-thread confusion
Text Threads are the old raw-conversation mode: no tools, and the legacy panel had a 120k-token cap. People end up in one by accident, wonder why the agent 'can't edit files', and blame the model. Check the thread type in the panel header before debugging anything else.
3. External-agent parity gaps
ACP agents in the panel aren't pixel-perfect ports. Some Claude Code slash commands don't work in the Agent window, and checkpoint and token-display support varies per agent. The full-fidelity fallback is always a Terminal Thread: the real CLI, docked in Zed.
4. Per-agent auth silos
Covered in section 5 but it earns a second mention because it's the number one 'why is this broken' report: Zed's key, Claude Agent's login, Codex's login, and Gemini CLI's login are four separate authentications. Each agent needs its own /login once.
5. MCP approval focus bug (zed#56287)
MCP permission prompts can fail to grab keyboard focus, so the thread sits 'stuck' while a prompt waits invisibly. Mitigations: notify_when_agent_waiting: "all_screens" in settings, and allow the read-only MCP tools you trust so fewer prompts fire at all.
6. No cloud background agents
Zed's parallelism is local. Threads die with your laptop lid; there's no Cursor-style fleet of up to 10 cloud agents grinding overnight. If long unattended runs are core to your workflow, that's a real reason to keep Cursor (or a server box running Claude Code) in the stack.
7. Thinner extension ecosystem
No VS Code extension compatibility. Language support is strong, but if your workflow depends on a niche VS Code extension, check Zed's extension marketplace for an equivalent BEFORE migrating, not after.
8. Zeta 2 still trails Cursor Tab
The ~30% acceptance gain over Zeta 1 is real, and it still loses to Cursor Tab on prediction quality. If Tab-style completion is 80% of your AI usage, Cursor arguably remains the better daily driver. My usage is agent-heavy, so I take the trade. Know which user you are.
9. Hosted overage pricing punishes heavy users
Pro's overage is API list price +10%. Fine for light hosted use; a pure tax at volume. The break-even is simple: if your monthly token spend exceeds roughly $50, that 10% is more than the $5 credit you get back, so run BYO keys for the heavy models and keep hosted for convenience models only. Or just go full BYO on the Free plan and pay Zed $0.
The 15-minute setup checklist
- [ ]Install Zed, open settings with cmd-, and paste in the downloaded zed-settings.json (merge if you have existing settings).
- [ ]Add your Anthropic (and/or OpenAI, Google, Ollama) key via the provider settings UI. Confirm the Free plan shows unlimited BYO usage.
- [ ]Save the AGENTS.md starter to
~/.config/zed/AGENTS.mdand trim it to rules you actually hold. - [ ]Create
~/.agents/skills/ship-check/and drop in the downloaded SKILL.md. Type/ship-checkin a thread to confirm it registered. - [ ]Open the ACP Registry (
zed: acp registry), install Claude Agent, run/loginin a Claude Agent thread. - [ ]Start a Write-profile thread with the kickoff template on a small real task. Review with ctrl-shift-r before accepting.
- [ ]Run one multibuffer + multi-cursor + inline-assist transform on a low-stakes rename so the move is in your fingers before you need it at 45 call sites.
That's the cockpit. One config file, three profiles, one skill, one external agent, one power move. The whole thing costs $0/mo on BYO keys, and every piece above is in the three downloads. Set it up, run /ship-check before your next deploy, and reply with what it caught.
Get the next drop
Every new Vault system ships to the list first. Twice a week, free.