Skip to content

Harness Selection

The harness is where the work happens. Choose deliberately.

The harness is your interface to the models: the CLI, IDE extension, or application that orchestrates prompts, tools, and context. It shapes how you work.

  • What tools can the harness invoke?
  • Can it read/write files, run commands, access APIs?
  • How are permissions managed?
  • How does it handle long conversations?
  • Does it support memory across sessions?
  • How does it manage context window limits?
  • Which models are available?
  • Can you switch models mid-task?
  • How is routing handled?
  • Can you add custom skills or commands?
  • How are plugins/extensions managed?
  • What’s the learning curve?

Document your org’s evaluated harnesses here.

Harness Strengths Limitations
Claude Code Deep tool integration, skills system Anthropic models only
Cursor IDE-native, fast iteration Limited orchestration
Aider Git-aware, lightweight Fewer bells and whistles
Custom Full control Build and maintain yourself
  1. Does it support the patterns we use? (fanout, pipelines, adversarial)
  2. How does it handle failures and retries?
  3. What’s the context overhead per interaction?
  4. Can it evolve with our stack, or is it a point-in-time choice?
  • Choosing based on hype rather than fit
  • Switching harnesses without migrating skills/patterns
  • Over-customizing to the point of lock-in
  • Under-investing in harness proficiency