Claude Code vs Codex vs Goose vs Hermes vs Pi

Overview

Five agent harnesses that all run tools on your behalf, but which sit at different points on two axes: how much of the harness you control, and whether the agent is a coding tool or a general operator.

  • Claude Code — Anthropic’s terminal-native coding agent. Polished, opinionated, model-locked.
  • Codex — OpenAI’s coding agent, delivered as desktop app, CLI, IDE extensions and web. Orchestration-first.
  • Goose — Block’s open-source, model-agnostic agent. MCP-native by design.
  • Hermes Agent — Nous Research’s always-on general agent. Memory and messaging, not primarily code.
  • Pi Coding Agent — minimal open-source harness for engineers who want to own the whole stack.

The useful split: Claude Code and Codex are products (vendor model, vendor support, subscription). Goose, Hermes and Pi are harnesses (bring your own model, own your own ops). Hermes is the odd one out on the second axis — it is an always-on life/work operator that happens to run skills, not a coding agent.


Identity & deployment

DimensionClaude CodeCodexGooseHermesPi
Maker[[../../RESOURCES/COMPANIES/anthropicAnthropic]]OpenAIBlockNous Research
LicenseProprietaryApp proprietary; CLI open-sourceOpen-sourceOpen-sourceOpen-source
Written inTypeScript / NodeRust
Primary interfaceTerminalDesktop appCLI + desktop GUIMessaging appsTerminal
Other surfacesVS Code, JetBrains, GitHubCLI, IDE ext, webWeb UIWebUI, desktop, voice, 3D
PlatformsmacOS, Linux, WSLApp macOS only; CLI cross-platformmacOS stable, Linux CLI stable, Windows betaAnywhere it is hostedCross-platform
Hosting modelLocalLocal app + cloud sandboxLocalLocal, VPS or managedLocal
Cost$20–200/mo subscriptionIncluded in ChatGPT planFree + model APIFree + model APIFree + model API

Model & protocol

DimensionClaude CodeCodexGooseHermesPi
Model choice❌ Anthropic only❌ OpenAI only✅ Any provider✅ BYO key✅ Any provider
ProvidersClaudeGPT-5.2-Codex familyOpenAI, Claude, Gemini, Groq, Bedrock, Ollama…OpenRouter, Claude, localCodex, Claude, Kimi, MiniMax, Qwen, Copilot
Local models✅ Ollama✅ Ollama✅ via OpenRouter
MCP client✅ native✅ first-class✅ MCP-first architecture⚠️ some MCP tools⚠️ not documented
MCP server
ConfigCLAUDE.md, .claude/AGENTS.md, config.tomlRecipes, extensionsSkillsmodels.json, auth.json

Goose is the strongest MCP story of the five: extensions are MCP servers, so the protocol is the extension mechanism rather than an add-on. See MCP support across agent CLIs.

Agent architecture

DimensionClaude CodeCodexGooseHermesPi
Multi-agent✅ subagents✅ parallel threads⚠️ via sub-recipes✅ Kanban swarms✅ orchestrator/leads/workers
Isolation between agentsIndependent contextsGit worktrees
Agent-to-agent comms❌ hierarchical only⚠️ swarm boardpeer-to-peer
Persistent memory⚠️ per-project files⚠️ thread history⚠️ save/resume sessionslearns across sessions⚠️ stashing
Skill accumulation⚠️ authored skills⚠️ authored recipesgrows new skills
Background/async✅ background tasks✅ long-running threads✅ always-on

Safety & control

DimensionClaude CodeCodexGooseHermesPi
Sandboxing⚠️ local, prompt-gated✅ cloud container⚠️ local❌ host machine⚠️ local
Permission modelTool approval promptsGranular + team rulesFine-grained per toolPermission gates
Bypass mode--dangerously-skip-permissionsElevated opsYOLO mode
Rollbackcheckpoints + /rewind⚠️ git worktree revert⚠️ stashing
Auth for toolsOAuth, allowlistsHeaders, env, OAuth✅ OAuth2auth.json

Extensibility & automation

DimensionClaude CodeCodexGooseHermesPi
Extension systemMCP + hooks + skillsSkills libraryExtensions + recipes100+ skill libraryMarketplace
Marketplace⚠️ curated⚠️ community recipes
Scheduling✅ automations✅ cron recipes
Lifecycle hooks⚠️ team rules⚠️ extensions
Browser automation✅ Claude in Chrome✅ scraping✅ Playwright
Voice✅ Whisper/ElevenLabs
Messaging channels7+ platforms
SDKAgent SDK

Legend — ✅ supported · ⚠️ partial or indirect · ❌ not supported · — not documented in this vault


Architecture at a glance

Each diagram uses the same layer skeleton — interface, orchestrator, agent layer, model router, tools, sandbox, memory — so structural differences show up positionally rather than needing to be read.

Claude Code

flowchart TD  
    UI["CLI / VS Code / JetBrains"] --> ORCH[Core Engine]  
    ORCH --> SUB[Subagents]  
    ORCH --> HOOK[Hooks]  
    ORCH --> MODEL["Anthropic models only"]  
    SUB --> TOOLS["Tool layer + MCP client/server"]  
    TOOLS --> SBX["Local FS, approval prompts"]  
    ORCH --> MEM["Checkpoints + CLAUDE.md"]  

Codex

flowchart TD  
    UI["Desktop app / CLI / IDE / web"] --> ORCH[Thread manager]  
    ORCH --> SUB[Parallel agent threads]  
    ORCH --> AUTO[Automations scheduler]  
    ORCH --> MODEL["OpenAI Codex models only"]  
    SUB --> TOOLS["Skills + MCP client/server"]  
    TOOLS --> SBX["Cloud sandbox + git worktrees"]  
    ORCH --> MEM["Thread history + AGENTS.md"]  

Goose

flowchart TD  
    UI["CLI / desktop GUI"] --> ORCH[Agent loop]  
    ORCH --> SUB["Recipes + sub-recipes"]  
    ORCH --> CRON[Recipe scheduler]  
    ORCH --> MODEL["Any provider incl. Ollama"]  
    SUB --> TOOLS["Extensions ARE MCP servers"]  
    TOOLS --> SBX["Per-tool permissions + OAuth2"]  
    ORCH --> MEM["Session save / resume / export"]  

Hermes

flowchart TD  
    UI["Telegram / WhatsApp / Slack / voice"] --> ORCH["Agent OS"]  
    ORCH --> SUB[Kanban swarms]  
    ORCH --> MODEL["BYO key incl. local Ollama"]  
    SUB --> TOOLS["Skill library, 100+"]  
    TOOLS --> SBX["Host machine or VPS"]  
    ORCH --> MEM["Persistent memory + learned skills"]  
    MEM --> TOOLS  

Pi

flowchart TD  
    UI[CLI] --> ORCH["Minimal harness, 200-token prompt"]  
    ORCH --> SUB["Orchestrator / team leads / workers"]  
    SUB <--> P2P["Pi-to-Pi peer messaging"]  
    ORCH --> MODEL["models.json - Codex, Claude, Kimi, Qwen"]  
    SUB --> TOOLS[Extension marketplace]  
    TOOLS --> SBX["Permission gates or YOLO"]  
    ORCH --> MEM[Stashing]  

The diagrams make three things visible that the tables state but do not dramatise: Pi is the only one with a bidirectional edge between agents, Hermes is the only one where memory feeds back into the tool layer, and Codex is the only one whose sandbox sits outside the local machine.


Where each one wins

Claude Code — the strongest safety-and-recovery story. Checkpoints with /rewind revert code and conversation, which no other harness here offers. Best choice when the work is risky, long, and you want to undo cheaply. The cost is lock-in: Anthropic models only, proprietary, subscription-priced.

Codex — the only one built from the ground up for orchestration rather than pairing. Git worktrees give real parallel isolation, automations run scheduled work unattended, and the cloud sandbox means agent execution is not on your machine. Best for delegating many long-running tasks at once. Constrained by macOS-only for the app and OpenAI-only models.

Goose — the best protocol citizen and the most genuinely portable. MCP is the architecture, not a feature; recipes are shareable, schedulable, parameterised units of work; it runs against any provider including fully local. Best when you want automation you own and can move between models.

Hermes — not competing with the other four. It is an always-on operator reachable from messaging apps, whose differentiator is continuity: it retains project context and converts repeated work into named skills. Best for recurring operational work — inbox triage, SEO pipelines, content production. The honest caveat from the source notes: “always-on” is a property of where you host it, and self-hosting has real upkeep cost.

Pi — the harness-engineering choice. Minimal by design so you can shape it, with peer-to-peer agent communication that preserves context across agents instead of funnelling everything through an orchestrator. Best for building reusable, model-agnostic agentic workflows. Practitioner guidance in the vault suggests an 80/20 split: Claude Code for mainstream work, Pi for experimental and highly controlled workflows.

Choosing

If you want…Use
Safe, undoable autonomous codingClaude Code
Many parallel long-running tasksCodex
Model-portable, ownable automationGoose
An always-on operator with memoryHermes
To build your own harnessPi
Local-only, no vendor dependencyGoose, Hermes or Pi

Confidence & gaps

This note is synthesised from the vault’s existing per-tool notes, which vary in age and depth. Known soft spots, flagged rather than papered over:

  • Pi MCP support — the source note documents an extension marketplace and custom tools but never mentions MCP. Marked ⚠️ rather than assumed.
  • Hermes MCP depth — only one MCP integration is named in the source. Its client capability is likely broader but is not documented.
  • Codex CLI licensing — the CLI is understood to be open-source while the desktop app is not; worth confirming before relying on it.
  • Language/runtime for Codex, Hermes and Pi is not recorded in the vault.
  • codex describes the May 2025 cloud agent on Codex-1/o1 and is superseded by Codex App for anything current.