Topic 3 of 9 · Level 2: Agent-assisted work

Harness Engineering

A harness is the suite of tools wrapped around a raw model. Codex, Cursor, and Claude Code are popular examples. I use Pi because it is open source, highly customisable, and cost efficient. It is CLI-based and more “batteries not included”; OpenCode is the open-source GUI or batteries-included counterpart.

A harness is personal infrastructure

With any model released in 2026 and a basic level of context engineering, a harness is largely a matter of personal preference. Some people prefer a GUI; some prefer a CLI. The right choice depends on how much control, setup, and automation you want.

The following is a personal ordering, not a universal ranking.

Harnesses I have used

  1. Pi

    This is the harness I use. It best suits people who enjoy CLI-based work and have a basic understanding of software engineering, although anyone can use it with a steeper learning curve.

  2. Codex

    OpenAI’s coding harness is mature, easy to use, and suitable for most people. In my experience, its cost efficiency is a little bloated.

  3. Claude Code

    Anthropic’s mature, easy-to-use coding harness was central early in my learning journey. In my experience, it is more bloated than Codex.

  4. Hermes

    It natively combines context engineering with a focus on self-improving agents. It can work well with enough use, but it did not meet my cost-optimisation objective.

  5. Karimo

    It offers a strong visual explanation of what a good harness can be, but I did not experience a material cost-saving difference.

Well-known options I have not meaningfully used

  1. Cursor

    A harness designed to help anyone vibe-code an app.

  2. OpenClaw

    The project associated with Mac minis as a home for crustacean-based agents.

  3. OpenCode

    The batteries-included version of Pi, with slightly less flexibility.

Why I stay with Pi

My primary objective is automation. Automation is useful only when outputs are known, traceable, and reliably good. Pi supports that style of work in a cost-effective way, especially because it lets a model write short TypeScript extensions where deterministic behaviour is needed.