Home/Guides/Harness decision guide

Claude Code, n8n, OpenClaw, Hermes or Codex: which harness for which job

If you already use Claude Code and n8n, it is fair to ask why you would add anything else. The answer is that each harness is built around a different answer to two questions: who is in the loop, and when does the work happen. Claude Code, Codex and OpenCode assume a developer and a repository. n8n assumes a path you can draw in advance. OpenClaw and Hermes assume an agent that stays online, keeps its memory and answers in the chat apps people already use. This guide maps each one to the jobs it does well, then covers the part most comparisons skip: how much the configuration around a harness decides what you get out of it.

Start freeRead docs

By David SilvaPublished

Direct answer

Which AI agent harness should I use?

Pick the harness by the shape of the job. Claude Code, Codex and OpenCode suit supervised work in a code repository; n8n, Make and Zapier suit steps you can draw in advance; OpenClaw and Hermes suit agents that stay online and answer in chat apps. Configuration then decides how much you get from it, which is why Qoren (qoren.sh) starts agents from tuned templates.

Which harness for which job

Checked against each project's own documentation on 16 October 2026. The sections below source every line.

HarnessBuilt forRuns without youReach it fromNot built for
Claude CodeCoding with a developer in a repository, from the terminal, IDE, desktop app or browser.claude -p in scripts and CI; routines on Anthropic's cloud, a research preview tied to one claude.ai account.Slack; Telegram and Discord through Channels, into a session that is open.Models other than Claude.
CodexCoding tasks in a repository, from the CLI, IDE, desktop app or cloud.codex exec in scripts and CI; cloud tasks and scheduled tasks in the Codex app.Slack, by mentioning @ChatGPT.Providers without an OpenAI Responses API.
OpenCodeCoding with your pick of 75+ model providers, local models included.opencode run and opencode serve; cron schedules through its GitHub integration.Its terminal, desktop app or IDE; its docs list no chat app.Hosted runs: its docs list no runner or scheduler of its own.
n8nWorkflows you design node by node across more than 500 integrations, with AI Agent steps.Triggers and schedules, on n8n Cloud or your own server.Its Chat Trigger, and any app it integrates with.Work too open-ended for a fixed path, which its docs send to Agents, in preview.
OpenClawA personal assistant that lives in your chat apps and acts on your machine.A gateway daemon with a heartbeat and a built-in cron scheduler, on a machine that stays on.Telegram, Slack, Discord, WhatsApp, Signal, iMessage and more.One gateway shared by users who do not trust each other.
HermesA long-running agent that writes and improves its own skills as it works.A gateway process that runs its cron scheduler, on a machine that stays on.Telegram, Discord, Slack, WhatsApp, Signal, SMS, email and more.Being a coding copilot tied to an IDE.

What a harness is, and why it changes the result

A harness is the software around the model. It runs the loop, decides what goes into the context on each turn, exposes the tools, enforces the permissions, and keeps whatever memory survives between runs. The model supplies the reasoning; the harness decides what the model sees and what it may do. That is why the same model scores differently in different harnesses. In the Terminal-Bench 2.0 paper, GPT-5 solved 49.6% of the tasks inside Codex CLI, 41.5% inside OpenHands and 35.2% inside Terminus 2, and Gemini 2.5 Pro solved 32.6% inside Terminus 2 but 15.7% inside OpenHands. LangChain moved its own coding agent from 52.8 to 66.5 on the same benchmark by changing only the harness: "We only tweaked the harness and kept the model fixed." The paper's authors add a fair caveat: model choice usually matters more than the scaffold. The model sets the ceiling; the harness, and how you configure it, decides how close you get.

Sources: Terminal-Bench: Benchmarking Agents on Hard, Realistic Tasks in Command Line Interfaces (Table 2) · LangChain: Improving Deep Agents with harness engineering

Coding harnesses: Claude Code, Codex and OpenCode

All three read a repository, run commands and edit files, and all three assume a developer close by, in the terminal, the IDE or a pull request. They are the right tools for building things, including the automations and agents you then run somewhere else. Each now has ways to run without you, but those runs are shaped around code: a prompt goes in, a diff or a report comes out.

  • Claude Code: Anthropic's agentic coding tool, in the terminal, IDE, desktop app and browser, on Claude models. claude -p runs it from scripts and CI. Routines, a research preview, run it on Anthropic's cloud on a schedule, from an API call or on GitHub events, and they belong to one person's claude.ai account rather than a team. Slack is built in; Telegram and Discord arrive through Channels, which push messages into a session that is open.
  • Codex: OpenAI's coding agent, with a CLI that is open source under Apache 2.0. codex exec runs it without the interface, cloud tasks keep working while your computer sleeps, and the Codex app schedules recurring tasks. It runs OpenAI models, and other providers only through a Responses API endpoint. In Slack you reach it by mentioning @ChatGPT.
  • OpenCode: an open-source coding agent under the MIT license that works with 75+ model providers, local models included. opencode run and opencode serve run it without the interface, and its GitHub integration can start it on a cron schedule. Its docs list no hosted runner and no chat app.

Sources: Claude Code overview · Claude Code: routines · Claude Code: channels · Claude Code: run it programmatically · OpenAI Codex on GitHub · Codex: non-interactive mode · Codex: cloud · Codex: scheduled tasks · Codex: models · Codex in Slack · OpenCode documentation · OpenCode: providers · OpenCode: GitHub

Workflow tools: n8n, Make and Zapier

A workflow tool runs a path you designed: a trigger, then the steps, in the same order every time. Anthropic draws the same line in its guide to building agents: workflows are "systems where LLMs and tools are orchestrated through predefined code paths", while agents "dynamically direct their own processes and tool usage". When the steps are known in advance, such as a form arriving, a row being added and a message going out, a workflow is cheaper, easier to audit and easier to debug than an agent. All three tools now let you put an agent step inside the path you designed.

  • n8n: workflows built node by node across more than 500 integrations, on n8n Cloud or on your own server. Its AI Agent node connects a chat model, memory and tools and decides which tools to call, up to a Max Iterations setting that defaults to 10. A tool call can wait for human review in Slack, Telegram, email and other channels. n8n is fair-code under its Sustainable Use License, and its docs say it does not call itself open source.
  • Zapier: Zaps across more than 9,000 apps. Zapier Agents is moving into AI by Zapier, a step inside a Zap where an agent's tool calls and reasoning run next to deterministic steps.
  • Make: visual scenarios, with Make AI Agent (New) in open beta. Make's own rule of thumb is an agent for "flexible reasoning, judgment calls, and variable inputs and outputs", and a standard scenario for "tasks with predefined logic that always produce the same output for a given input".

Sources: Anthropic: Building effective agents · n8n home page · n8n docs: Tools Agent · n8n docs: human review for tools · n8n docs: Sustainable Use License · Zapier home page · Zapier: migrating from Agents to AI by Zapier · Make: introduction to Make AI Agent (New)

Always-on agents: OpenClaw and Hermes

OpenClaw and Hermes start from the other end. Each runs as a long-lived gateway process that holds the chat connections, runs scheduled jobs and keeps memory in files between conversations. You reach the agent where you already talk, and it wakes itself on a schedule for recurring work. That makes them the right harness for judgment work that has to happen whether or not you are at a keyboard: triaging an inbox, chasing an invoice, answering a review, writing the Monday report. The cost is the machine. The Hermes docs put it plainly, "agent jobs execute inside the gateway", so the gateway needs a host that never sleeps, plus updates, secrets and backups.

  • OpenClaw: an MIT-licensed assistant from the OpenClaw Foundation that "runs on your own hardware and meets you in every chat app you already use", including Telegram, Slack, Discord, WhatsApp, Signal and iMessage. A heartbeat runs a periodic turn every 30 minutes by default, and a built-in cron scheduler handles the rest. It works with Anthropic, OpenAI, OpenRouter, Gemini and local models. Its security docs say one gateway is not a boundary between users who do not trust each other.
  • Hermes Agent: an MIT-licensed agent from Nous Research that creates skills from experience and improves them as it uses them. One gateway process connects 20+ platforms, including Telegram, Discord, Slack, WhatsApp, Signal, SMS and email, and runs a cron scheduler that ticks every 60 seconds. Its docs say it is not "a coding copilot tethered to an IDE or a chatbot wrapper around a single API".

Sources: OpenClaw documentation · OpenClaw: heartbeat · OpenClaw: security · Hermes Agent documentation · Hermes Agent: messaging gateway · Hermes Agent: scheduled tasks

Configuration decides how much of the model you get

Installing a harness gives you its defaults, and defaults are written for nobody in particular. Every harness reads a small set of files and settings on each run, and that is where the results come from: the instructions it follows, the tools it may call, the permissions on each tool, the memory it starts with, and when it wakes up. The vendors say as much in their own docs.

  • Claude Code reads CLAUDE.md at the start of every conversation, and its docs warn: "Bloated CLAUDE.md files cause Claude to ignore your actual instructions!" For anything that must happen every time, they point to hooks: "Unlike CLAUDE.md instructions which are advisory, hooks are deterministic and guarantee the action happens."
  • OpenAI on Codex: "Configuration is one of the main ways to make Codex behave more consistently across sessions and surfaces", and "A short, accurate AGENTS.md is more useful than a long file full of vague rules."
  • n8n: the System Message on the AI Agent node exists "to guide the agent's decision-making", a tool's description "tells the agent when to use this tool", and when an agent misbehaves the advice is to "refine the instructions first before adding more tools."
  • Anthropic, on building its own agent for SWE-bench: "we actually spent more time optimizing our tools than the overall prompt."

Sources: Claude Code: best practices · Codex: best practices · n8n docs: Tools Agent · n8n docs: Call n8n Workflow Tool · n8n docs: build and manage agents · Anthropic: Building effective agents

What to configure in each harness

The file names differ, but every harness asks you to settle the same five things: who the agent is, how it does the job, what it may touch, what it remembers, and when it runs. Here is where each one keeps them.

  • Claude Code: CLAUDE.md at user, project and local level, with path-scoped rules in .claude/rules; permission rules (allow, ask, deny) and hooks in settings.json; skills in .claude/skills, subagents in .claude/agents, and MCP servers in .mcp.json.
  • Codex: AGENTS.md, read from the global file and then from each directory between the repository root and where you are; config.toml for the model, approval_policy, sandbox_mode, MCP servers and profiles; skills in .agents/skills. codex exec starts in a read-only sandbox until you widen it.
  • OpenCode: AGENTS.md, falling back to CLAUDE.md; opencode.json for the model, providers, permissions, MCP servers and custom agents. Most permissions default to allow, so tighten them before it runs on its own.
  • n8n: the System Message, each tool's description, the memory sub-node and its Context Window Length, Max Iterations, human review on the tools that act, and an error workflow that runs when an execution fails.
  • OpenClaw: AGENTS.md for operating instructions, SOUL.md for persona and boundaries and USER.md for the person it serves, all loaded at the start of every session; MEMORY.md and daily memory files; skills; openclaw.json for models, channels, the heartbeat and tool policy; and cron jobs set from its CLI. Sandboxing is off by default.
  • Hermes: SOUL.md, which "goes directly into slot #1 of the system prompt"; AGENTS.md from the working directory; config.yaml for the model, toolsets, memory limits and approvals; skills in ~/.hermes/skills; and cron jobs held by the gateway.

Sources: Claude Code: memory · Claude Code: settings · Codex: AGENTS.md · Codex: config basics · OpenCode: rules · OpenCode: permissions · n8n docs: Simple Memory · n8n docs: error workflows · OpenClaw: agent workspace · OpenClaw: sandboxing · Hermes Agent: personality and SOUL.md · Hermes Agent: configuration

If you already use Claude Code and n8n

Keep them. Claude Code is a fast way to build and change an agent, and n8n is a cheap way to run a path you can draw. The gap between them is the work that needs judgment and has to happen on its own schedule: reading what came in overnight, deciding what matters, drafting the reply, following up next week. That is where an always-on agent earns its place, and the three fit together.

  • Build in Claude Code: write and test the agent's instructions and skills in a repository, the way you write code.
  • Run the fixed paths in n8n: forms, syncs and notifications that should do the same thing every time.
  • Hand the judgment to an always-on agent: n8n can wake it with a webhook when something happens, and it handles the part a fixed path cannot.
  • Stay in the tool you work in: Qoren's MCP server lets Claude Code list your agents, send one a task and read the reply, on plans that include API access.

Start from a tuned template

Getting the configuration right takes longer than installing the harness. A Qoren template is a configuration already tuned for one job: the persona in SOUL.md, the operating manual in AGENTS.md, the runtime settings, the scheduled tasks with the instructions for each run, the triggers that wake it, the tools it uses with the least access each one needs, and the files it starts with, such as a profile of the business it works for or the review standards it applies. You deploy it on OpenClaw, Hermes, Codex or OpenCode in a managed environment that stays online, open any of those files in the console, and change what you like.

Frequently asked questions

What is an agent harness?

The software around a language model that turns it into an agent: it runs the loop, builds the context for each turn, exposes the tools, applies the permissions and keeps memory between runs. Claude Code, Codex, OpenCode, OpenClaw and Hermes are harnesses, and n8n's AI Agent node is a harness inside a workflow.

Does the harness matter more than the model?

Usually not. The Terminal-Bench 2.0 authors found that model choice usually matters more than the agent scaffold. The same paper still has GPT-5 solving 49.6% of tasks in one harness and 35.2% in another, so once the model is chosen, the harness and its configuration are the next lever.

Can Claude Code run 24/7?

Partly. claude -p runs it from scripts and CI, and routines, a research preview, run it on Anthropic's cloud on a schedule, from an API call or on GitHub events. Routines belong to one person's claude.ai account, and Channels deliver chat messages only to a session that is open. For an agent a team reaches in chat around the clock, OpenClaw or Hermes fits better.

Should I use n8n or an AI agent?

Use n8n when you can draw the steps in advance, and an agent when the work needs reading, judging and choosing the next step. Many teams use both: n8n for the fixed path, and a webhook from n8n that wakes an agent for the judgment in between.

Can Qoren run Claude Code or n8n?

No. Qoren runs OpenClaw, Hermes, Codex and OpenCode agents. OpenCode can run Claude models, through Qoren's managed key or your own Anthropic key, and Claude Code can drive Qoren agents through Qoren's MCP server. n8n stays where it is and can wake a Qoren agent through a webhook trigger.

Get an agent that is already configured

Pick a template for the job, deploy it on OpenClaw, Hermes, Codex or OpenCode, and change any file afterwards. Qoren keeps the agent online and isolated, with a hard cap on managed model spend.