Show HN poster Chang Wang dropped TBD on Hacker News today โ a macOS-native application for managing git worktrees and terminals built specifically for multi-agent Claude Code workflows. The project scored just 2 points on HN, which means either the community hasn't caught on yet or most people are still figuring out how to coordinate multiple AI coding agents at scale. Either way, the architecture is worth examining.
Architecture Breakdown
TBD consists of three interconnected components that communicate over a Unix socket using JSON RPC: tbdd acts as the daemon that owns all state (persisting data through SQLite via GRDB while managing tmux sessions and git operations), tbd serves as the CLI client for scripting and shell integration, and TBDApp provides the SwiftUI interface with embedded terminal views powered by SwiftTerm. The Unix socket approach keeps things local and fast โ no network overhead when your agents need to coordinate.
Core Philosophy: CLI-First Design
Here's what makes TBD stand out from GUI-heavy alternatives like Git Tower or Conductor: Wang built it around a strict tenet that everything users can do manually must be exposed via CLI for agents and automation. That means if you want programmatic control over your worktrees, you're not waiting for some future API โ the terminal is the API. The project description hints this works best paired with something enabling inter-agent communication across different worktrees, suggesting Wang sees multi-agent coordination as a solved problem that just needed better tooling.
Requirements and Setup
The project requires macOS 15 or later, Swift 6.0 plus Xcode 16 for development, tmux installed via Homebrew, and SwiftLint also from Homebrew (needed for the pre-push git hook). Building involves running swift build to compile everything, then launching .build/debug/tbdd as the daemon before using .build/debug/tbd --help to explore CLI commands. A convenience script at scripts/restart.sh handles full rebuilds plus restarts, with flags like --app and --quick for targeted operations.
Migration Path from Existing Tools
TBD includes migration scripts for teams moving from Conductor or Claude Code Desktop. For Conductor users, ./scripts/import-conductor.sh adopts existing worktrees in place โ no files get moved, branches stay untouched, and Conductor continues working alongside TBD. The script is idempotent and auto-registers referenced repos; a --dry-run flag previews changes before execution. Claude Code Desktop migration works similarly: point it at any path inside the repo and the script resolves to the main root, adopting every worktree under .claude/worktrees/. Scratch directories named agent-* from one-shot runs are skipped by default unless you pass --include-agents.
Key Takeaways
- Every UI action has a CLI equivalent โ agents can drive TBD programmatically
- Three-component architecture (daemon, CLI client, SwiftUI app) via Unix socket and JSON RPC
- SQLite persistence through GRDB with tmux state management baked in
- Migration scripts preserve existing Claude session transcripts and conductor.json hooks
The Bottom Line
TBD fills a real gap for teams running parallel AI coding agents โ the CLI-first constraint means you're not locked into proprietary automation APIs. Low HN engagement aside, this is exactly the kind of infrastructure tooling that gets interesting when you have three or four Claude Code instances working different branches simultaneously.