Turning Tmux into an AI Operating System: Inside OpenFleet
How a modular Node.js orchestrator uses git worktrees and flat files to safely manage heterogeneous agent swarms without the bloat of modern frameworks.
- OpenFleet rejects heavy graph-based orchestration frameworks in favor of Tmux for process isolation and session persistence.
- It solves the parallel coding collision problem by isolating agent operations within separate Git worktrees.
- Cross-agent communication is handled via raw CLI injections and HTTP POSTs, bridging provider silos without requiring agents to share an underlying tech stack.
- The system relies entirely on flat JSON files and append-only event logs, ensuring complete observability without a database.
The Parallel Coding Collision Problem
The parallel workflow is the new meta. Developers increasingly want to run a dozen autonomous coding sessions simultaneously. But when multiple agents hack on the same repository, they inevitably stomp on each other's file states. The industry has responded by building massive, complex, graph-based orchestration frameworks to manage these AI agents.
OpenClaw is LangChain 2.0
As the ecosystem rushes toward complex graph frameworks to manage this chaos, OpenFleet goes backward to go forward. It solves the bleeding-edge problem of multi-agent parallel coding using 30-year-old system administration primitives.
Tmux as the Orchestration Layer
OpenFleet's core architectural surprise is its rejection of modern heavy infrastructure. Instead of Docker or Kubernetes, it uses tmux as its process manager and windowing system. By using tmux, it gains "free" persistence. If the SSH connection drops, the agents keep coding. If a developer needs to debug, they just attach to the pane and watch the AI type in real-time.
Git Worktrees and the Art of Isolation
To prevent file collisions, OpenFleet physicalizes parallel work. The bin/spawn logic creates isolated branch directories via git worktree so agents can operate simultaneously without conflict. It then uses a projection module to inject context directly into the agent's environment, ensuring the agent knows its identity and its role in the fleet.
Bridging the Provider Silos
The bin/send cross-harness messaging system acts as a universal translator. It allows a high-level Anthropic Claude agent to delegate a localized task to an Ollama instance. Depending on the target, OpenFleet routes the message via HTTP POST, API calls, or raw tmux send-keys injections directly into the terminal buffer.
The Flat-File Rebellion
OpenFleet contrasts sharply with heavy orchestration frameworks. It stores all state in local JSON files. There is no Postgres, no Redis. Just an append-only JSONL event log. This flat-file approach makes the entire fleet state human-readable and grep-able, drastically reducing operational overhead.