Skip to content

Harnesses

A harness is the program that runs the agent loop. It sends your instructions to a model, runs the tools the model asks for, and feeds the results back.

The harness matters less than how you set up your repository. A well-configured repository works with several harnesses. A badly configured one works with none. Choose from this page, then spend your time on patterns.

What to use

Harness Where it runs Instructions file Use it for
Claude Code Terminal, web, desktop, GitHub Actions CLAUDE.md Most curation work
Codex Terminal AGENTS.md The same work, with OpenAI models
GitHub Copilot coding agent GitHub .github/copilot-instructions.md Issue to pull request inside GitHub

All the repositories in our case studies use Claude Code, Codex, or both. Several also support Copilot.

Use a capable model

DisMech states this as a project rule:

You should always use best-of-class models, and up to date high quality harnesses. Using less powerful models is more likely to generate lower quality content.

Weak model output does not disappear. It arrives at review, gets sent back, and costs a curator time. The exception is low-risk background work, where a cheaper model is appropriate. See Scanners find the work.

Run in the cloud if installing is hard

Many curators cannot install command line software, because of institutional IT rules or because the setup is unfamiliar. You do not have to.

Claude Code on the web clones the repository for you, runs the session in a cloud container, and opens the pull request when you are done. DisMech's CONTRIBUTING.md has step-by-step setup instructions, including the one-time environment configuration that new users find hardest.

For a whole team at once, a shared hosted environment removes the account and key problem as well as the installation problem. The Gene Ontology consortium runs a JupyterHub instance for its workshops, where each participant logs in with GitHub and gets a workspace with an agent already configured, on a central key they never see.

Historic

Goose. Earlier versions of this site recommended Goose for curators who were not comfortable at the command line. We no longer recommend it for new setups. It is still in use: Mondo's ai-agent.yml runs dragon-ai-agent on Goose, and Goose configuration remains in a few repositories. Keep it working where it is deployed. Do not start there.

dragon-ai-agent. The agent behind the @dragon-ai-agent mention in several OBO repositories. Semi-retired: Mondo still runs the machine account, while DisMech has retired it and keeps only the mention as a trigger keyword, with the work done by the ai4c-agent App. New repositories should use a Claude Code Action workflow instead. See Bots and GitHub integrations.

The agent is not the identity

The harness is the software. The identity the work appears under is a separate choice, and it is the one that controls permissions. See Bots.

Give every session the same tools

Do not rely on curators configuring MCP servers themselves. Check the configuration into the repository. EFO declares its two servers in .mcp.json, so every session gets ontology lookup and literature access without setup.