Harnesses
Harnesses
Harnesses are the runtimes your agents use to do work. They decide where an agent runs, which tools it can reach, and what kind of execution loop it follows.
Use different harnesses for different kinds of work. Kafka is built for production agents that need surfaces, orchestrations, triggers, and shared team workflows. The coding harnesses — Claude Code, Codex, Cursor, Factory Droid, OpenCode, Qoder, and Qwen Code — are useful when the agent's work is centered on a codebase and should run inside a developer-oriented runtime.
Available harnesses
Eight harnesses are available today. The Harness value is what you pass as harness when creating an agent through the Universal Harness API.
| Harness | Harness value | Best for | Notes |
|---|---|---|---|
| Kafka | kafka_cloud | Production agents, team workflows, surfaces, and orchestrations | Brainbase's flagship runtime, designed for knowledge work. Use when the agent should live inside Kafka and interact with your team's systems. |
| Claude Code | claude_code | Codebase work and developer iteration | Use when the task fits Claude Code's repo-focused execution loop. |
| Codex | codex | Implementation, review, and local workspace tasks | Use when you want Codex to inspect, edit, and verify code in a workspace. |
| Cursor | cursor | Agentic coding with Cursor's runtime | Use when your team already works with Cursor and wants the same agent behavior in the cloud. |
| Factory Droid | factory | Software engineering tasks end to end | Factory's Droid agent running as a managed harness. |
| OpenCode | opencode | Open-source coding agent workflows | Use when you want an open-source harness with a familiar coding loop. |
| Qoder | qoder | Coding tasks in Qoder's agentic runtime | Qoder's agent running as a managed harness. |
| Qwen Code | qwen | Coding workflows on Qwen models | Qwen's coding agent running as a managed harness. |
Every harness runs behind the same API: the same request payload, the same response shape, and the same thread endpoints. To switch harnesses, change the harness value and keep everything else — see Any harness in the Universal Harness API guide.
