Two open-source projects are fighting for the same job — “make my AI agents work together instead of in parallel silos” — but they come at it from opposite poles. hcom is a peer-to-peer messaging bus: a chatroom where every agent is an equal. ORCH is a hierarchical orchestration engine: a company where every agent has a role, a manager, and a mandatory review gate. Same problem, opposite philosophies.
Full disclosure up front: I’ve contributed to hcom’s ACP integration (so Hermes can join the bus), so I’m not neutral on that one. All numbers below were fetched from GitHub at publish time.
The side-by-side
- hcom — aannoo/hcom. Rust, 451★ (58 forks, 24 open issues). MIT. Created Jul 2025, active (pushed Aug 2026). Cross-agent messaging CLI: “AI agents message, watch, and spawn each other across terminals.”
- ORCH — oxgeneral/ORCH. TypeScript, 141★ (16 forks, 7 open issues). MIT. Created Mar 2026, active (pushed Aug 2026). “One CLI to orchestrate them all”: hierarchical multi-agent teams for zero-human companies.
hcom — the peer-to-peer chatroom
hcom is a single Rust binary that wraps your coding agent with hooks. You start agents with hcom claude, hcom codex, hcom opencode in whatever combination you like, and they can suddenly talk to each other.
What agents can do: message each other real-time, observe each other’s transcripts/terminal screens/command history, subscribe to events and react automatically, and spawn, fork, resume, or kill each other. Collision detection is on by default — if two agents edit the same file within 30 seconds, both get notified.
How it works: agent → hooks → local SQLite DB → hooks → other agent. Every agent has a queryable identity (name, status, inbox, live terminal, structured transcript). Any tool without native hooks can still join via hcom start, and any process can wake agents with hcom send. Config lives in ~/.hcom/config.toml as a TOML file plus a TUI dashboard (hcom).
Notable extras: cross-device agent teams via MQTT relay (end-to-end encrypted, XChaCha20-Poly1305), bundled multi-agent workflow scripts (debate, confess, fatcow), and deep terminal support — kitty, wezterm, tmux, zellij, waveterm all get proper hcom kill-driven pane closing.
The defining trait: every agent is equal. There’s no hierarchy, no leader, no reviewer role. hcom gives you the plumbing for agents to coordinate organically, and leaves the orchestration patterns (who leads, who reviews) up to you or the bundled scripts.
ORCH — the company of agents
ORCH is a TypeScript/Node CLI (npm install @oxgeneral/orch) that manages a team of agents with explicit organizational structure. You deploy a “department” (CTO, Backend xN, QA, Reviewer), set a goal, and ORCH decomposes, assigns, executes, and reviews.
How it works: a layered DDD engine (domain/application/infrastructure) where:
- A CTO agent decomposes your goal into tasks and delegates
- Engineering agents work in isolated git worktrees —
mainis never touched until you approve - QA agents auto-test completed work, reject with feedback, and the loop re-queues
- A mandatory review state machine (todo → in_progress → review → done) blocks any merge without your OK
The shell adapter is the key differentiator: if it runs in a terminal, it’s an agent. npm test, curl, Semgrep, pandas scripts — any CLI tool gets state tracking, retry, and coordination for free. That’s how ORCH orchestrates non-code workflows: editorial, sales ops, analytics, security, DevOps.
Ops story: headless daemon mode (orch serve) with structured JSON logs for pm2/systemd/Datadog, exponential-backoff retries, zombie detection, scope-overlap detection, and live per-agent token cost tracking. Ten pre-built team templates (startup-mvp, content-agency, security-dept, etc.) deploy full departments in one command. Also ships a /orch skill that auto-installs into Claude Code. Claims 1954 passing tests via Vitest.
The defining trait: hierarchy and governance. Agents are employees with roles, a manager who decomposes strategy, QA who verify, and a reviewer who gates every merge. ORCH is opinionated about how a multi-agent team should run.
The real difference
Both solve “multiple coding agents, one coordination layer.” The split is structural:
hcom is flat; ORCH is hierarchical.
- hcom: peers negotiate. No CTO, no reviewer — agents are peers with message-level authority over each other. Orchestration patterns are add-ons (scripts you opt into).
- ORCH: fixed org chart. CTO decomposes, engineers execute, QA verifies, reviewer gates. Governance is the core, baked into a state machine.
Messaging vs state machine.
- hcom’s core abstraction is the message (plus observation/subscription). It’s a communications layer — coordination emerges from agents reacting to each other.
- ORCH’s core abstraction is the task, with an enforced lifecycle and role-based ownership. Coordination is imposed top-down.
Cross-device vs single-box.
- hcom genuinely spans machines via the MQTT relay — spawn agents on remote devices, encrypted end-to-end.
- ORCH is one-project, one-orchestrator (it even locks with
.orchestry/orchestry.lockto prevent two daemons). Cross-machine isn’t really its model.
Install/footprint:
- hcom: single Rust binary,
brew installoruv tool install, no background services, ~zero infra. - ORCH: Node.js ≥20,
npm install -g, ~120 MB engine + ~300 MB per concurrent agent process (README recommends 4GB RAM for 1-2 agents, 8GB for a department).
Which fits my stack
Given a self-hosted, terminal-native, event-driven setup: hcom is the better fit today.
The reasons are honest, not patriotic:
- My stack is agents-as-peers. Hermes, Claude Code, Codex all coexist as equals. That’s hcom’s model exactly. ORCH forces me to assign a CTO/QA/reviewer hierarchy atop agents I already treat as peers — extra role ceremony for a one-operator setup.
- I want the coordination, not the company. hcom gives me message/subscribe/spawn plumbing and gets out of the way. ORCH bakes in governance opinions (mandatory review gate, org-chart roles) that I’d be fighting to bypass.
- The single-binary footprint wins. No Node 20 requirement, no ~300MB/agent runtime. For a terminal-heavy homelab that matters.
- Cross-device is real for me. The MQTT relay (e2e-encrypted) fits my multi-VM reality. ORCH’s one-project-one-daemon lock model doesn’t.
When would ORCH flip it? If I needed autonomous batch execution with a built-in safety net. ORCH’s killer feature is that you can set a goal, go to bed, and wake up to reviewed PRs on properly isolated worktrees — no code touches main without your approval. hcom expects an operator in the loop steering the agents, and its collision detection is reactive, not structural isolation. If my working style were “delegate a department and sleep,” ORCH’s governance would be the feature, not the overhead.
One more honest note: ORCH is young (Mar 2026, 141★) and its README leans heavily on founder-marketing copy (“zero-human companies”). The engineering reads credible — layered DDD, 1954 tests, real adapters — but hcom’s a year older, Rust-built, and more battle-worn.
Both repo READMEs and live GitHub stats were fetched at publish time — no fabricated numbers.