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.

8 min read • View on GitHub • More from twaldin

An old-school 1940s physical switchboard operator actively plugging thick braided cables into the backs of sleek, modern robotic heads. This illustrates OpenFleet's approach to using classic, manual routing to manage cutting-edge AI agents.
OpenFleet treats classic Unix tools as the control plane for autonomous AI swarms.
Key Takeaways

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

Justin Flick, Developer and Contributor · Justin Flick Blog

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.

The OpenFleet Spawner Lifecycle: Routing, isolation, and execution.

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.

Two mechanical hands writing furiously in separate, identical leather-bound ledgers. The ledgers are separated by a thick pane of bulletproof glass. This illustrates the git worktree isolation preventing agents from stomping on each other's state.
Git worktrees provide physical isolation for parallel agent operations.

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.

The composition is split into two halves. The left side depicts a massive, tangled Rube Goldberg machine of gears, pipes, and steam valves. The right side depicts a neat, perfectly aligned stack of transparent acrylic document trays. A clear visual contrast representing heavy frameworks versus flat-file architecture.
Heavy orchestration frameworks compared to OpenFleet's flat-file approach.