{"slug": "what-a-harness-is-and-how-to-build-one-with-claude-agent-sdk", "title": "What a harness is and how to build one with Claude Agent SDK", "summary": "Claire Vo built a custom AI harness for bug triage at ChatPRD using the Claude Agent SDK, a terminal UI with Ink, and adapters for Sentry, Linear, GitHub, and Vercel. The harness automates evidence gathering, root-cause analysis, and artifact creation, eliminating repetitive manual debugging. Vo explains the architecture and provides a guide for building similar harnesses for structured workflows.", "body_md": "Everybody is saying, “It’s not the model, it’s the harness,” but almost nobody stops to explain what a harness actually is. So I did. I built one live on the show: a Sentry bug-debugging harness for my company ChatPRD, using the Claude Agent SDK, a custom terminal UI built with the Ink library, and opinionated adapters for Sentry, Linear, GitHub, and Vercel. The harness handles evidence gathering, root-cause analysis, and follow-up artifact creation, all without me needing to type “dear agent, please fix this bug” ever again. I also walk through the architecture, share the code structure, and give you the exact process I used so you can build your own harness for any repetitive, structured workflow in your business.\n\n**Listen or watch on YouTube, Spotify, or Apple Podcasts**\n\n### What you’ll learn:\n\nWhat a harness actually is\n\nWhen to build a harness versus when to stick with a general-purpose tool like Claude Code or Codex\n\nHow to encode specific permissions into a harness\n\nThe three components every harness needs\n\nHow I used GPT-5.5 and Claude Opus to build the harness code itself (and where they both initially resisted)\n\nHow to structure the artifacts your harness produces so the whole team can use the output\n\n### Brought to you by:\n\n** Bolt.new**—Turn your idea into a real product\n\n** Customer.io**—Build customer engagement campaigns from a single prompt\n\n### In this episode, we cover:\n\n([00:00](https://www.youtube.com/watch?v=ofS-4RRw9zw)) What is an AI harness?\n\n([03:19](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=199s)) When to build a harness\n\n([04:33](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=273s)) Why Claire picked bug triage\n\n([06:00](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=360s)) Why not just use Claude Code?\n\n([07:48](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=468s)) Demo: The custom harness interface\n\n([11:04](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=664s)) Architecture: runs, tasks, tools, and artifacts\n\n([13:44](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=824s)) Building it with Codex and Claude\n\n([15:08](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=908s)) Code map and file layout\n\n([16:51](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=1011s)) A look at the code\n\n([19:18](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=1158s)) The live investigation result\n\n([21:01](https://www.youtube.com/watch?v=ofS-4RRw9zw&t=1261s)) How to build your own harness\n\n### Tools referenced:\n\n• Claude Agent SDK (Anthropic): [https://code.claude.com/docs/en/agent-sdk/overview](https://code.claude.com/docs/en/agent-sdk/overview)\n\n• Claude Sonnet 4.6 (model used inside the harness): [https://www.anthropic.com/news/claude-sonnet-4-6](https://www.anthropic.com/news/claude-sonnet-4-6)\n\n• Claude Opus (used to build the harness): [https://www.anthropic.com/claude/opus](https://www.anthropic.com/claude/opus)\n\n• GPT-5.5 (Codex, used to build the harness): [https://openai.com/index/introducing-gpt-5-5/](https://openai.com/index/introducing-gpt-5-5/)\n\n• Ink (terminal UI library for Node.js): [https://github.com/vadimdemedes/ink](https://github.com/vadimdemedes/ink)\n\n• Sentry (error monitoring): [https://sentry.io/](https://sentry.io/)\n\n• Linear (project management): [https://linear.app/](https://linear.app/)\n\n• GitHub: [https://github.com/](https://github.com/)\n\n• Vercel: [https://vercel.com/](https://vercel.com/)\n\n### Where to find Claire Vo:\n\nChatPRD: [https://www.chatprd.ai/](https://www.chatprd.ai/)\n\nWebsite: [https://clairevo.com/](https://clairevo.com/)\n\nLinkedIn: [https://www.linkedin.com/in/clairevo/](https://www.linkedin.com/in/clairevo/)\n\nProduction and marketing by [https://penname.co/](https://penname.co/). For inquiries about sponsoring the podcast, email [[email protected]](/cdn-cgi/l/email-protection).", "url": "https://wpnews.pro/news/what-a-harness-is-and-how-to-build-one-with-claude-agent-sdk", "canonical_source": "https://www.lennysnewsletter.com/p/what-a-harness-is-and-how-to-build", "published_at": "2026-07-08 12:03:35+00:00", "updated_at": "2026-07-08 12:11:07.699246+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "large-language-models", "ai-infrastructure"], "entities": ["Claude Agent SDK", "Claude Sonnet 4.6", "Claude Opus", "GPT-5.5", "Sentry", "Linear", "GitHub", "Vercel"], "alternates": {"html": "https://wpnews.pro/news/what-a-harness-is-and-how-to-build-one-with-claude-agent-sdk", "markdown": "https://wpnews.pro/news/what-a-harness-is-and-how-to-build-one-with-claude-agent-sdk.md", "text": "https://wpnews.pro/news/what-a-harness-is-and-how-to-build-one-with-claude-agent-sdk.txt", "jsonld": "https://wpnews.pro/news/what-a-harness-is-and-how-to-build-one-with-claude-agent-sdk.jsonld"}}