Coding Agents in May 2026: A Field Guide

The agent CLI category is roughly eighteen months old and already has a recognisable shape. I use Claude Code daily, have tried Codex CLI, and read or watch the rest from the sidelines. Where I’m reporting rather than reviewing, I say so.

The previous post covered what the Claude Code source leak shows about the category leader.

Claude Code

Anthropic’s TypeScript CLI. The extension model built around CLAUDE.md, skills, and hooks is the most flexible in the field, and is what most other tools are now copying. The renderer is fast (rebuilt around game-engine-style techniques, per the leak), the bash sandbox is substantial, the model is excellent, and the community skills library is large enough to be useful from day one.

The frustrating side: context is mutated behind the user’s back between releases, and tool definitions change without obvious version bumps. A workflow built on top tends to drift as Anthropic ships.

Codex CLI

OpenAI’s Rust-written CLI. The model is strong and the binary starts fast, but the design is more opinionated and less extensible than Claude Code. The Rust choice forecloses the path Claude Code and pi take, where the agent itself can read and modify the source of its own harness.

Codex is also more sandboxed in practice. It cannot run scripts and shell commands as freely as Claude Code can, which is a real safety win and a real ergonomic loss depending on what you’re trying to do. The trade is on purpose; Anthropic and OpenAI have made different calls on how much rope to give the agent.

A tighter, safer alternative to Claude Code if you don’t need to run arbitrary local commands.

Commercial tools: AMP and Factory Droid

Sourcegraph’s AMP and Factory Droid are the two commercial tools worth knowing about. Both are run by experienced teams, both are more curated than the open tools, and both lean on tighter model-selection defaults rather than letting the user swap freely. AMP picks one model per task type and sticks to it.

I have not used either in production. Good reputations in the community. Worth evaluating if you want a managed tool with the budget to match.

opencode

Open source. TypeScript on the server, Go (Bubble Tea) for the TUI. Pragmatic team, fast iteration, no marketing. The open-source default for many engineers right now.

Mario Zechner has public criticisms of opencode’s architecture: compaction logic that he says breaks the prompt cache, LSP feedback injected mid-edit, per-message JSON files on disk, and a default-open server that became an RCE vulnerability. I have not verified these against the source. They are his claims.

Worth a look if you want something open-source you can fork and extend.

kilocode

Open source, rebranded as Kilo in early 2026. Less mature than opencode in CLI form, with an editor-extension heritage. I have not used it. Worth knowing as a less common alternative.

pi

Open source, written in TypeScript by Mario Zechner. Deliberately minimal: a small core with read, write, edit, and bash tools, a tiny system prompt, and no built-in MCP, sub-agents, plan mode, or todos. Anything else is a TypeScript extension that the agent itself can write and hot-reload into the running session.

Worth using if you want a minimal, flexible harness you shape yourself.

TypeScript versus Rust

The TypeScript tools (Claude Code, opencode server, pi) share a property the Rust tools cannot match: the agent itself can read and modify the source of its own harness. That makes the malleable-agent pitch (most strongly made by pi) only viable in TypeScript or a similarly dynamic language. Codex, being Rust, can’t do the same trick, but starts faster and uses less memory in return.