>_ clhorde
Orchestrate multiple Claude Code CLI instances in parallel.
A daemon + TUI + CLI system built with Rust.
$ cd clhorde
$ cargo build --release
$ ./target/release/clhorded & # start daemon
$ ./target/release/clhorde # launch TUI
Why clhorde?
| clhorde | tmux-based tools | |
|---|---|---|
| Architecture | Hybrid: PTY for interactive + stream-json for one-shot | Wraps interactive sessions in tmux panes |
| Work model | Prompt queue + worker pool | N independent sessions |
| Concurrency | Queue any number, workers pull from queue | Fixed number of parallel sessions |
| Dependencies | Daemon + TUI + CLI (just needs claude in PATH) |
Requires tmux, git worktrees |
| Code isolation | Fresh subprocess + optional worktree per prompt | Git worktrees per session (always) |
| Interaction | Full Claude TUI embedded via PTY + terminal emulator | Full interactive terminal per session |
| Persistence | Daemon survives TUI restarts, workers persist | Tied to tmux session lifetime |
Feature Highlights
Dual Architecture
Interactive workers get a full embedded PTY with the Claude Code TUI. One-shot workers use lightweight stream-json. Best of both worlds.
Worker Pool
Queue unlimited prompts and let 1–20 concurrent workers pull from the queue automatically. Batch 50 prompts and walk away.
Modal Interface
Vim-style modes: Normal, Insert, View, Interact, PTY Interact, and Filter. Navigate and control everything from the keyboard.
Git Worktrees
Opt-in per-prompt worktree isolation with Ctrl+W. Parallel workers modify separate directories—no file conflicts.
Persistent Daemon
Workers survive TUI restarts. The clhorded daemon manages all workers in the background. Multiple TUI/CLI clients can connect.
Persistent Sessions
Prompts are saved to disk as UUID v7 JSON files and restored on restart. Resume sessions with R to continue conversations.
Web Interface
Browser-based dashboard with real-time updates via WebSocket. Full xterm.js terminal for interactive prompts. REST API for automation.
Quick Start
See the Getting Started guide for a full walkthrough, or jump to the cheatsheet for a quick reference.