Anthropic, the Apple of AI: walled garden vs duct tape
TL;DR
Anthropic is running the Apple playbook: control the whole chain, from model to terminal. I left Claude Code for multi-provider freedom and came back for the ecosystem — not the model. The lock-in is real, but nobody else ships anything close to an OS for agentic development.
I left Claude Code when Anthropic restricted subscription usage in third-party tools — I documented it right here. OpenCode, then Kilo Code CLI with a free gateway. Sovereignty, multi-provider, zero lock-in . I stayed there for months, in daily production use on Symfony 7 and TypeScript/React.
Then I came back. Max subscription, daily use. Not because the model is better — on the coding bench published by z.ai (113 tasks, March 2026), GLM-5.1 scores 45.3 where Opus scores 47.9, a thin gap. I came back for everything else.
What “everything else” means
Claude Code in mid-2026 is no longer a CLI. It’s the same engine in the terminal, VS Code, a desktop app, the web and mobile. Sessions that teleport between surfaces. Parallel sub-agents , hooks, skills, persistent memory, cron tasks running on Anthropic’s infra with your machine off. An Agent SDK to build on top. And MCP to plug in any data source.
The Apple parallel is structural, not decorative: every piece works alone, the whole is exponentially more powerful, and it’s precisely the whole that creates the lock-in. iMessage doesn’t retain anyone; iMessage + Handoff + AirDrop + iCloud does.
What it looks like on a real setup
Over one measured quarter (267 sessions, 456 h), my setup converged to: 17 specialized agents with automatic routing, morning/evening crons that read GitLab and write to Obsidian, hooks that block a commit without review, a local proxy that saved 4.4M tokens (54%) across 7,500 commands. It all holds together because it’s the same engine everywhere: CLAUDE.md files, settings and MCP servers are shared across surfaces.
I had tried the duct-tape equivalent — OpenCode + custom scripts + n8n. It works, but every piece is maintained separately, and none of them knows about the others.
The cost of the garden
The lock-in isn’t theoretical. My 17 agents, skills and hooks are in Anthropic’s format — none of it is portable to OpenCode or Cursor. MCP is an open protocol; everything else is proprietary. And single-provider risk is lived experience, not hypothesis: the third-party restriction that made me leave the first time was exactly that — a unilateral change of terms, overnight.
On price, the gap is brutal: the Max subscription costs an order of magnitude more than a budget route like opencode go (GLM-5.2) for comparable model quality. If you compare model against model, Max doesn’t justify itself.
Who this holds for, and who it doesn’t
Claude Code’s ROI is in the integration, not the model. Using Claude Code as a plain chat CLI means paying the price of the garden without picking the fruit — the worst of both worlds. In that case, Kilo Code or OpenCode with a budget route like opencode go does the same job.
If, on the other hand, you’re willing to invest in agentic tooling — agents, hooks, cron automations, memory — the integrated ecosystem has no hand-assembled equivalent. That’s what brought me back, eyes open: I keep a tested, working multi-provider exit route. Out of caution, not principle.
Anthropic’s walled garden is comfortable because it’s well designed. That’s exactly what should worry you — and exactly why I’m in it.