# Choose Your Coding Agent

Course: Agentic Coding: Run Coding Agents Like an Operator — Lesson 1 of 10

Pick a harness by working backwards from the subscription that is allowed to drive it, and know which features you lose when you switch.

> **The one line:** your subscription decides your harness. An Anthropic plan runs only inside Anthropic's own harness; a ChatGPT plan drives almost anything.

## The four harnesses worth knowing

A harness is the program that holds the loop: it takes your prompt, calls a model, runs tools, edits files. Models are rented by the token; your rules, skills, hooks and habits live in the harness, so switching it costs more than switching models.

Pi is the outlier of the four: it ships almost nothing built in, so you tell the agent what you want and it writes the extension. I have an agent building a Pi extension that draws Effect diffs, so a reviewer sees the shape of a layer or pipe change instead of reading it line by line.

| Harness | What it is | What pays for it | Standout | Catch |
| :-- | :-- | :-- | :-- | :-- |
| Claude Code | Anthropic CLI | Anthropic subscription (Pro, Max tiers) | Dynamic workflows; strongest UI work | Subscription locked to this harness |
| Codex | OpenAI CLI + app under ChatGPT | ChatGPT subscription, usable in other harnesses too | Subscription travels; skills and hooks ship here too | Different model behaviour to learn |
| OpenCode | Open source, multi-provider | Own Zen and Go plans, or your API keys | Best terminal UI; provider-agnostic | Go is open-weight only; frontier models need Zen credits |
| Pi | Minimal open core, agent-extensible | Any API credits or a ChatGPT subscription | You extend it by asking the agent | You build most of what others ship |

## The asymmetry that decides it

An Anthropic subscription works only with Anthropic's harness. Driving Claude models from Pi or OpenCode means API credits, which at daily volume cost far more than the subscription covering the same work. A ChatGPT subscription drives third-party harnesses natively, and there are routes to use it inside Claude Code too.

Open-weight models such as Qwen or GLM come through credits at OpenRouter, Groq or xAI. Decide the model family first, check what its plan can drive, then pick the harness. The other order puts you on API pricing by accident.

I run Claude Code on the top Max tier, roughly $200 a month, default Opus at `high` effort. For flexibility, run Pi with a Codex subscription plus OpenRouter credits for open-weight models.

## Model quirks are real work

Anthropic models are clearly strongest at UI and front-end work, in my experience; the others hold up everywhere else and are weak exactly there. Learning your model's habits is part of the cost of picking it.

## What does not travel

[Dynamic workflows](https://code.claude.com/docs/en/workflows) exist only in Claude Code. The agent writes a JavaScript script that runs in the background, spawning subagents with `agent()` and fanning out with `parallel()`, up to 16 concurrent and 1,000 per run on paid plans. Trigger it with the `ultracode` keyword or `claude --effort ultracode`. Codex and OpenCode do not ship it. I ported it to Pi as [`pi-ultracode`](https://github.com/Mark-Life/pi-ultracode), the escape hatch if you pick a different harness. I use it for almost everything, which is much of why I stay put. [Dynamic Workflows](/courses/agentic-coding/dynamic-workflows) covers the mechanics.

Skills are an [open standard](https://agentskills.io/specification) other agents implement, and Codex copied the hook design down to `~/.codex/hooks.json` and the same event names. Rules files are the one thing to plan for: Claude Code reads `CLAUDE.md`, not `AGENTS.md`, while [`AGENTS.md`](https://agents.md/) is read by Codex, OpenCode, Cursor, Zed and most of the rest. Keep the content in `AGENTS.md` and bridge it, with an `@AGENTS.md` import at the top of `CLAUDE.md` or a symlink:

```bash
ln -s AGENTS.md CLAUDE.md
```

That one line is most of your switching cost. [Rules Files and Scope](/courses/agentic-coding/rules-files-and-scope) goes deeper.

## On Cursor

One person's experience, not a verdict: Cursor lost my subscription and then my account, support did not resolve it, and I blocked the card to stop the charges. Separately, SpaceX, which merged with xAI, agreed in June 2026 to buy Cursor, and Cursor ships a strong Grok model, close behind the Opus model I use, in my testing. If you want that model, an xAI subscription works on Pi too.

## What to do

Put your rules in `AGENTS.md` and symlink `CLAUDE.md` to it before you write any. Then run one real task through two harnesses on the same repo, and compare the diffs, not the demos.

## Links

- Lesson page: https://andrey-markin.com/courses/agentic-coding/choose-your-coding-agent
- Course: https://andrey-markin.com/courses/agentic-coding.md
- Next lesson: https://andrey-markin.com/courses/agentic-coding/how-the-model-actually-works.md
