Roast: zed-industries/claude-agent-acp
Ah, Zed Industries. The chosen ones. The crusaders against the tyranny of Electron. The team that looked at VS Code’s memory usage and said, "Hold my beer, we’re rewriting the world in Rust."
And then they shipped claude-agent-acp.
This repository is the architectural equivalent of buying a Formula 1 car and hitching a trailer to it... a trailer made entirely of JavaScript.
1. The "Rust Purity" Betrayal
Zed's entire brand identity is built on speed and native performance. "We don't use web tech! We are metal!"
So, naturally, this repository is 99.2% TypeScript.
You literally built a hyper-optimized, GPU-accelerated Rust editor, only to have its smartest feature depend on npm install. It’s like Gordon Ramsay serving a Michelin-star steak with a side of Kraft Mac & Cheese.
2. The Inception Architecture
Let’s look at the call stack for a simple "Hello" to Claude:
1. Zed (Rust) sends a message.
2. It travels over ACP (we'll get to that).
3. It hits this Node.js adapter.
4. Which wraps the Claude Agent SDK.
5. Which controls the Claude Code CLI (which is vendored, by the way).
6. Which finally calls the API.
Efficiency! Nothing says "blazing fast" like spawning a Node child process to talk to a CLI tool that talks to an SDK. You’ve reinvented the Rube Goldberg machine, but with more JSON-RPC.
3. Stop Trying to Make "ACP" Happen
ACP (Agent Client Protocol). It sounds official. It sounds standard.
In reality, it’s a protocol Zed invented to avoid admitting that VS Code won the extension war. It’s the "Betamax" of AI agent protocols. You built a whole new standard just to avoid using the Language Server Protocol (LSP) or the Model Context Protocol (MCP)—oh wait, you use MCP too?
So now we have ACP wrapping an agent that uses MCP to talk to an editor that uses LSP. I need a flowchart and an aspirin just to understand how my text editor suggests a variable name.
4. The Identity Crisis
Is it claude-code-acp? Is it claude-agent-acp?
Even the repo can’t decide. The package name screams "Agent," the documentation screams "Code," and the users just scream "Why isn't this working?"
Verdict
2/10.
Technically, it works. But for a company that preaches "performance above all," this repo is a dirty, dirty Node.js secret hidden in the closet. We see you, Zed. We see your package.json. Shame. 🔔