Comparison of Major Harness Implementations
This is a factual comparison of prominent agent harnesses as of mid-2025. The field moves fast β specifics may change, but the architectural patterns are stable.
Overview Table
| Project | Context Management | Memory | Skills / Tools | Multi-Agent | Open Source |
|---|---|---|---|---|---|
| OpenClaw | AGENTS.md-driven context injection. Loads workspace files, skills, and memory on each session. Context compression via summarization. | File-based: MEMORY.md (long-term), daily logs (memory/YYYY-MM-DD.md), wiki/ for structured knowledge. Fully portable. | Skill system: each skill is a SKILL.md + supporting files. Installable from ClawdHub. MCP protocol support. | Sub-agent spawning with push-based completion. Orchestrator delegates tasks, results auto-announce. | β Open source |
| Claude Code | 512K context window. Loads files on demand via read tool. CLAUDE.md for project-level instructions. Compacts old messages when context fills. | Session-based. No persistent memory across sessions by default. CLAUDE.md provides project continuity. User-managed files. | Built-in tools: read, write, edit, exec, web search. Extensible via MCP servers. Permission system (allow/deny/ask). | Single-agent. No native sub-agent support. Can invoke other CLI tools via exec. | β Open source |
| Codex (OpenAI CLI) | Loads repo structure + relevant files. AGENTS.md for instructions. Sandboxed execution environment. | No persistent memory. Reads project files (README, AGENTS.md) for context. Session state resets on each run. | Built-in: file read/write, exec, web search. Runs in network-disabled sandbox by default. Can enable network per session. | Single-agent. No multi-agent orchestration. Designed for single-task execution. | β Open source |
| Cline | VS Code extension. Loads open files + relevant workspace files. Custom instructions file. Sliding window for context management. | No built-in persistent memory. Relies on workspace files and conversation history within VS Code session. | File operations, terminal commands, browser automation. MCP server support for extensibility. Approval workflow for actions. | Single-agent. No multi-agent support. Human-in-the-loop via approval prompts in VS Code. | β Open source |
| Aider | Git-aware context. Explicitly add files to context with /add. Repo map provides project-wide overview. Diff-based editing. | Git history as implicit memory. No dedicated memory system. Session history persists within terminal session. | Focused tool set: file editing (diff format), git operations, linting, testing. No plugin system. | Single-agent. No multi-agent. Designed for paired programming (human + one agent). | β Open source |
| Cursor | IDE-integrated. Full repo indexing with embeddings. Loads relevant files based on semantic search. @-mentions for explicit context. | No persistent agent memory. Codebase index serves as implicit knowledge. .cursorrules for project config. | Code editing, terminal, file operations, documentation lookup. Integrated debugger context. No plugin marketplace. | Single-agent. No multi-agent. Background indexing is async but not agent-based. | β Proprietary |
| Nexu | Agent-native IM platform. Per-agent workspace with AGENTS.md, SOUL.md, USER.md, MEMORY.md. Skills inject specialized context. | Comprehensive: MEMORY.md (curated long-term), daily logs, wiki/ knowledge base, TOOLS.md (environment-specific notes). Cross-session continuity by design. | Skill marketplace. Each skill is self-contained with SKILL.md instructions. Platform-level tools: calendar, email, messaging, browser, camera, nodes. | Multi-agent native. Sub-agent spawning, cross-channel messaging, cron scheduling. Agents can coordinate across IM channels. | β Proprietary (platform) |
Deep Dive: Key Differentiators
Context Strategy
How each harness decides what to show the model:
Aider : Explicit β user adds files manually (/add, /drop)
Claude Code : On-demand β agent reads files as needed
Cursor : Semantic β embeddings index, auto-retrieves relevant code
OpenClaw/Nexu : Config-driven β AGENTS.md declares what to load
Codex : Repo-aware β scans structure, loads relevant files
Cline : IDE-aware β open tabs + workspace files
Trade-off: Explicit control (Aider) gives precision but requires user effort. Semantic retrieval (Cursor) is automatic but can miss or include wrong files. Config-driven (OpenClaw) is predictable but needs upfront setup.
Memory Architecture
# Type 1: No memory (Claude Code, Codex, Cursor, Cline)
# Each session starts fresh. Context comes from project files.
context = load_project_files() # That's it
# Type 2: File-based memory (OpenClaw, Nexu)
# Persistent knowledge across sessions, user-editable.
context = (
load_project_files()
+ load_memory("MEMORY.md")
+ load_daily_log(today)
+ load_wiki_if_relevant(task)
)
# Type 3: Embedded memory (proprietary platforms)
# Stored in vector DB, retrieved by similarity.
context = (
load_project_files()
+ vector_search(task, memory_store)
)
Tool Extensibility
| Approach | Projects | Pros | Cons |
|---|---|---|---|
| MCP Protocol | OpenClaw, Claude Code, Cline | Standard protocol, interoperable | Server setup overhead |
| Skill Files | OpenClaw, Nexu | Self-contained, shareable, marketplace | Custom format |
| Built-in Only | Aider, Codex | Simple, predictable | Limited extensibility |
| IDE Integration | Cursor, Cline | Rich editor context | Tied to IDE |
Multi-Agent Patterns
Most harnesses are single-agent. Multi-agent support varies significantly:
# OpenClaw/Nexu: First-class sub-agent spawning
subagent = spawn(
task="Research competitor pricing",
model="gpt-4o",
tools=["web_search", "web_fetch"],
)
# Result auto-announces when done β no polling needed
# Claude Code: Indirect multi-agent via exec
result = exec("claude-code --print 'Review this PR'")
# Works but no structured communication
# Others: No native multi-agent
# Workaround: multiple terminal sessions, manual coordination
Choosing the Right Harness
| If you need... | Consider |
|---|---|
| Deep code editing with IDE integration | Cursor or Cline |
| Terminal-based coding agent | Claude Code or Aider |
| Sandboxed task execution | Codex |
| Multi-agent orchestration | OpenClaw or Nexu |
| Persistent memory across sessions | OpenClaw or Nexu |
| Extensible tool ecosystem | OpenClaw (skills + MCP) |
| Minimal setup, just works | Aider |
What the Table Doesn't Show
- Model support β Most harnesses are model-agnostic (OpenClaw, Cline, Aider support many providers). Codex is OpenAI-only. Claude Code is Anthropic-focused.
- Cost β Varies wildly based on model choice, context size, and task complexity. Not a harness feature, but a usage pattern.
- Speed β Depends more on model latency than harness architecture. Streaming support is universal.
- Community β Open-source projects (Aider, Claude Code, Cline, OpenClaw) have active communities. Community size doesn't equal quality.
Common Pitfalls
- Choosing based on hype β Pick the harness that fits your workflow, not the one with the most GitHub stars.
- Ignoring memory β If your tasks span sessions, a harness without persistent memory means re-explaining context every time.
- Assuming "open source" means "free" β The harness is free; the model API calls are not. Budget for API costs.
Further Reading
- Glossary β β Key terms used throughout this guide