agentic-ai-engineering/site/modules/tool-reference.md

10 KiB

Agent CLI Reference: 5-Tool Comparison

A side-by-side reference for Claude Code, Pi Coding Agent, OpenCode, Hermes Agent, and OpenClaw.


1. Claude Code (Anthropic)

Role: Primary generalist coding agent. Best all-around tool.
License: Proprietary (free tier + Pro subscription)
Runtime: Node.js
Config: CLAUDE.md in project root

Key Capabilities

Feature How To Course Reference
Multi-agent teams claude --teammate-mode tmux M4 — teammate-mode spawns agents in split panes
Headless execution claude -p "prompt" --print M5 CI/CD pipeline
Constrained tools --allowedTools "Read Write Edit" M3 security (L4 whitelist pattern)
Hooks system .claude/hooks/*.py M3 hook architecture (13 lifecycle events)
Subdirectory rules frontend/CLAUDE.md, backend/CLAUDE.md M2 skills deep dive
Stop hook self-improve PostToolUse → headless claude session M3, also ClaudeFAST pattern

Boilerplate Setup

# Project initialization
claude --init

# Launch with teammate mode
claude --teammate-mode tmux

# Headless CI mode
claude -p "Implement the feature described in spec.md" --allowedTools "Read Write Edit Bash" --print

# With custom hooks directory
claude --hooks .claude/hooks/

Hook Lifecycle (13 events)

Phase Events
Session Setup, SessionStart, SessionEnd
Main Loop UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Stop, Notification
Subagents SubagentStart, SubagentStop
Maintenance PreCompact

2. Pi Coding Agent (pi.dev)

Role: Customizable agent harness. Full control over every aspect.
License: Open source (MIT)
Runtime: Node.js (TypeScript SDK)
Config: .pi/settings.json, .pi/agents/*.md

Key Capabilities

Feature How To Course Reference
Extensions pi -e extensions/<name>.ts M3 — damage-control, tilldone
RPC mode pi --mode rpc M5 — programmatic control (26+ commands)
Agent teams agent-team extension + teams.yaml M4 dispatcher pattern
Agent chains agent-chain extension + agent-chain.yaml M4 pipeline pattern ($INPUT/$ORIGINAL)
P2P communication coms (Unix sockets) / coms-net (HTTP/SSE) M4 flat P2P pattern
Mental models .pi/multi-team/expertise/*.yaml M4 agent memory, self-improve commands
Damage control damage-control.ts + damage-control-rules.yaml M3 three access levels
Skills system .pi/skills/*/SKILL.md M2 composable skills

Boilerplate Setup

# Launch with extensions
pi -e extensions/damage-control.ts -e extensions/tilldone.ts -e extensions/minimal.ts

# Launch with multiple extensions (stackable)
pi -e extensions/purpose-gate.ts -e extensions/tool-counter.ts

# RPC mode (programmatic control from any language)
pi --mode rpc

# Pi-to-Pi peer communication (same machine)
just local-coms --name planner --purpose "Plans the work"
just local-coms --name coder --purpose "Writes the code"

# Pi-to-Pi networked (across machines)
just coms-net-server    # hub
just coms --name dev    # client 1
just coms2 --name prod  # client 2

Extension Catalog (16 total)

Category Extensions
UI pure-focus, minimal, theme-cycler, session-replay
Monitoring tool-counter, tool-counter-widget
Task tilldone, purpose-gate
Multi-Agent subagent-widget, agent-team, agent-chain
Safety damage-control, damage-control-continue
P2P coms, coms-net
Cross-Tool cross-agent, system-select
Meta pi-pi

Pi Agent Rust Port (Jeff Emanuel, 1,024★)

A Rust reimplementation of the Pi agent with zero unsafe code.

Feature Pi (TypeScript) Pi Agent Rust
Extensions Full (16+) Compatible
RPC mode Yes Yes
Performance Baseline ~2x faster
Binary size ~35MB ~8MB
Memory safety Node.js GC Zero unsafe Rust

The 4 Dimensions of Control (Pi's strength)

Dimension Pi's Advantage
Context Full control over what the agent sees via extensions
Model Any provider, any model — pluggable
Prompt Skills, system prompts, agent .md files — fully customizable
Tools Extensions can add, remove, or override any tool

3. OpenCode (opencode.ai)

Role: Open-source Claude Code alternative. MIT license.
License: MIT (open source)
Runtime: Node.js (npm global package)
Config: Shares ~/.grok/config.toml with Claude Code

Key Capabilities

Feature How To Course Reference
Headless commands opencode run "prompt" M5 CI/CD alternative to Claude Code CLI
Model selection opencode --model opencode-go/deepseek-v4-flash M6 cascade routing
Proxy support Routes through localhost:18901/v1 M6 cost optimization
Shared config Uses same ~/.grok/config.toml M5 production stack — dual tool setup
Go models 12 Go-optimized models available M6 economics (Go models are cheaper per token)

Available Go Models (through proxy)

Model ID Cost Tier Best For
opencode-go/deepseek-v4-flash Budget General agentic tasks ($10/mo flat)
opencode-go/deepseek-v4-pro Mid Complex reasoning
opencode-go/kimi-k2.6 Mid Long context
opencode-go/qwen3.6-plus Budget Structured tasks
opencode-go/minimax-m2.7 Budget Fast responses

Boilerplate Setup

# Headless task execution
opencode run "Refactor the auth module to use JWT tokens"

# With specific model
opencode --model opencode-go/deepseek-v4-flash run "Write unit tests for the API"

# With custom config
opencode --config ~/.grok/config.toml run "Deploy to staging"

# List available models
opencode models

When to Use OpenCode Instead of Claude Code

Scenario Choose
Need open-source license OpenCode
Budget-constrained OpenCode (Go models at $10/mo flat)
CI/CD pipelines OpenCode run command
Primary development Claude Code (better tool calling)
Need hooks system Claude Code (13 events vs OpenCode's limited hooks)
Heterogeneous stack Both (OpenCode as backup/alternative model)

4. Hermes Agent (Some Engineering Inc.)

Role: TypeScript-native, MCP-first agent for structured workflows.
License: Open source
Runtime: Node.js (TypeScript)
Design philosophy: MCP-native architecture, structured output first

Key Capabilities

Feature How To Course Reference
MCP-native tools Built-in MCP client M2 Beyond MCP channels
Structured output TypeScript types enforced M2 context management
Tool-use workflows Designed for function-calling chains M2 agent loop variants
OpenClaw ecosystem Integrates with OpenClaw agents M4 multi-agent orchestration

Boilerplate Setup

# Run with MCP server
hermes --mcp-servers ./mcp-config.json

# Execute workflow
hermes run workflow.ts

# With custom tools
hermes --tools-dir ./tools/

When to Use Hermes

  • Building TypeScript-native agent pipelines
  • MCP-first architecture (tools as MCP servers)
  • Tight integration with OpenClaw ecosystem
  • Structured output enforcement (TypeScript types)

5. OpenClaw

Role: Always-on agent employee. Heartbeat-driven, autonomous execution.
License: Open source
Runtime: Node.js daemon
Design philosophy: "If it can receive a heartbeat, it's hired."

Key Capabilities

Feature How To Course Reference
Heartbeat model Wakes on schedule, works, sleeps M7 always-on agents
One-shot execution claw do "task" M5 production task dispatch
Device-key pairing Auth via device key + invite M5 deployment modes
Paperclip-native Primary agent for Paperclip orchestration M7 framework comparison
tmux integration Can run inside tmux sessions M5 production stack

Boilerplate Setup

# Start as daemon (always-on employee)
claw start --daemon

# One-shot task
claw do "Review the latest PR and leave comments"

# Schedule recurring task
claw schedule --cron "0 6 * * 1" --task "Generate weekly report"

# Check status
claw status

# Stop daemon
claw stop

Heartbeat Execution Model

Timer fires → Check for queued work → Wake agent → Execute → Report results → Sleep

No continuous running. The agent wakes, works, and goes back to sleep. This is the most cost-effective model for scheduled/recurring work.


Comparison Matrix

Feature Claude Code Pi Agent OpenCode Hermes OpenClaw
License Proprietary MIT MIT Open Open
Cost Pro sub Free Free Free Free
Hooks 13 events Extension events Limited MCP events None
Multi-agent teammate-mode Extensions No Chains Heartbeats
P2P coms No coms/coms-net No No No
Headless mode --print RPC mode run Yes daemon
MCP support Built-in Via extensions Via proxy Native Via Paperclip
Best for Generalist coding Custom harness OSS alternative TS pipelines Always-on tasks
Course module M3, M4, M5 M3, M4, M5 M5, M6 M5 M5, M7

Quick Selection Guide

What are you building?
├── A feature? → Claude Code
├── A custom workflow? → Pi Agent
├── An open-source project? → OpenCode
├── A TypeScript pipeline? → Hermes
└── A recurring task? → OpenClaw

Need multiple?
├── Production system → All 5 (see REFERENCE-STACK.md)
├── Budget constrained → OpenCode + Go models
├── Maximum control → Pi Agent + extensions
└── Enterprise rollout → Claude Code + Agent Manager