{"product_id":"ittybitty-orchestrator-multi-agent-thuần-bash-chỉ-la-claude-nhưng-nhiều-claude","title":"IttyBitty: Orchestrator multi-agent thuần bash — \"Chỉ là Claude, nhưng nhiều Claude\"","description":"\n\u003ch2\u003eKhi \"đơn giản nhất\" là kiến trúc tốt nhất\u003c\/h2\u003e\n\n\u003cp\u003eTrong cộng đồng AI engineering 2026, có một xu hướng đáng lo ngại: mọi giải ph��p ngày càng phức tạp hơn. Frameworks mới ra đời mỗi tuần, mỗi framework có SDK riêng, dependencies riêng, và mental model riêng cần học.\u003c\/p\u003e\n\n\u003cp\u003eAdam Wulf — developer và creator sống tại Seattle — đi ngược xu hướng này với \u003cstrong\u003eIttyBitty\u003c\/strong\u003e: một multi-agent orchestrator cho Claude Code chỉ dùng pure bash và tmux. Không SDK. Không databases. Không containers. Chỉ hai công cụ mà mọi developer đã có sẵn.\u003c\/p\u003e\n\n\u003cp\u003eTriết lý cốt lõi của Wulf:\u003c\/p\u003e\n\n\u003cblockquote\u003e\n  \u003cp\u003e\"The mental model is 'it's just Claude, and you can make lots of them.'\"\u003c\/p\u003e\n\u003c\/blockquote\u003e\n\n\u003cp\u003eĐây là simplicity đến mức độ nghệ thuật.\u003c\/p\u003e\n\n\u003ch2\u003eTại sao Wulf xây dựng IttyBitty?\u003c\/h2\u003e\n\n\u003cp\u003eWulf đã thử Gas Town — một orchestration framework phổ biến hơn trong cộng đồng Claude Code. Nhưng với ông, Gas Town quá heavy: cần setup phức tạp, có nhiều moving parts, và điều ông ghét nhất là yêu cầu \"yolo mode\" — bypass permission checks để chạy.\u003c\/p\u003e\n\n\u003cp\u003eWulf thiết kế IttyBitty với một số non-negotiable requirements:\u003c\/p\u003e\n\n\u003col\u003e\n  \u003cli\u003e\n\u003cstrong\u003eKhông yolo mode:\u003c\/strong\u003e \"If your tool requires yolo mode, it's a non-starter for me.\"\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eZero external state:\u003c\/strong\u003e Không SQLite, không databases, không \"beads\" (message queues)\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ePre-approved tools only:\u003c\/strong\u003e Mọi agent chỉ dùng tools đã được authorize trước\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eClear mental model:\u003c\/strong\u003e Bất kỳ developer nào cũng phải hiểu trong vài phút\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWorktree isolation:\u003c\/strong\u003e Agents làm việc độc lập, không interfere nhau\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch2\u003eKiến trúc cốt lõi: tmux + git worktrees\u003c\/h2\u003e\n\n\u003cp\u003eThiên tài của IttyBitty nằm ở sự kết hợp đơn giản nhưng mạnh mẽ của hai tools:\u003c\/p\u003e\n\n\u003ch3\u003etmux: Process isolation đơn giản\u003c\/h3\u003e\n\u003cp\u003eMỗi agent chạy trong một tmux session độc lập. tmux cho phép:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eRun multiple sessions trong background\u003c\/li\u003e\n  \u003cli\u003eAttach\/detach bất cứ lúc nào để observe agent\u003c\/li\u003e\n  \u003cli\u003eKill session sạch sẽ khi agent xong việc\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003egit worktrees: Branch isolation an toàn\u003c\/h3\u003e\n\u003cp\u003eMỗi agent làm việc trong một git worktree riêng — một directory riêng biệt trỏ đến một branch riêng. Điều này có nghĩa là:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eAgents không thể đọc code của nhau (bảo mật)\u003c\/li\u003e\n  \u003cli\u003eAgents không conflict về file changes\u003c\/li\u003e\n  \u003cli\u003eKhi agent xong, merge worktree vào main branch là clean operation\u003c\/li\u003e\n  \u003cli\u003eNếu agent làm sai, discard worktree mà không ảnh hưởng gì\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eArchitecture: Managers và Workers\u003c\/h2\u003e\n\n\u003cp\u003eIttyBitty có hai loại agents với roles rõ ràng:\u003c\/p\u003e\n\n\u003ch3\u003eManager agents\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eCó thể spawn worker agents mới\u003c\/li\u003e\n  \u003cli\u003eNhận notifications khi workers hoàn thành\u003c\/li\u003e\n  \u003cli\u003eCó thể delegate subtasks\u003c\/li\u003e\n  \u003cli\u003eThường dùng Opus model cho complex reasoning\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eWorker agents\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eKhông thể spawn agents khác (flat hierarchy)\u003c\/li\u003e\n  \u003cli\u003eThực hiện focused, specific tasks\u003c\/li\u003e\n  \u003cli\u003eBáo cáo completion lên manager\u003c\/li\u003e\n  \u003cli\u003eCó thể dùng Sonnet\/Haiku để tiết kiệm chi phí\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eĐiểm quan trọng: agents giao tiếp với nhau qua \u003ccode\u003eib send\u003c\/code\u003e command, không phải shared memory hay database. Đây là event-driven messaging đơn giản nhất có thể.\u003c\/p\u003e\n\n\u003ch2\u003eWorkflow thực tế: Từ idea đến execution\u003c\/h2\u003e\n\n\u003cpre\u003e\n# Tạo manager agent với task chính\nib new-agent --name manager --model opus \"Refactor authentication module,\nsplit into separate components for OAuth, JWT, and session management\"\n\n# Manager tự động spawn workers sau khi analyze task\n# Worker 1: OAuth component\n# Worker 2: JWT component\n# Worker 3: Session management\n\n# Xem trạng thái tất cả agents\nib list\n\n# Interactive dashboard\nib watch\n\n# Giao tiếp với một agent cụ thể\nib send manager \"Prioritize JWT component first, OAuth can wait\"\n\n# Khi worker hoàn thành, merge work\nib merge worker-jwt-component\n\u003c\/pre\u003e\n\n\u003ch2\u003eDashboard TUI: Visibility không cần complexity\u003c\/h2\u003e\n\n\u003cp\u003eIttyBitty có một terminal-based dashboard (TUI) cho phép bạn thấy:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eDanh sách tất cả agents đang chạy\u003c\/li\u003e\n  \u003cli\u003eCurrent task của mỗi agent\u003c\/li\u003e\n  \u003cli\u003eClaude session log (live)\u003c\/li\u003e\n  \u003cli\u003eStatus: running\/waiting\/completed\/failed\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eTất cả bằng bash và tmux panes. Không cần web UI, không cần Electron app, không cần open browser.\u003c\/p\u003e\n\n\u003ch2\u003eLệnh \"nuke\": Emergency shutdown\u003c\/h2\u003e\n\n\u003cp\u003eMột trong những features Wulf thích nhất là \u003ccode\u003eib nuke\u003c\/code\u003e:\u003c\/p\u003e\n\n\u003cpre\u003eib nuke\u003c\/pre\u003e\n\n\u003cp\u003eLệnh này kill tất cả agents ngay lập tức, clean up tất cả tmux sessions, và để lại git worktrees cho bạn inspect nếu cần. Khi bạn thấy agents đang làm gì đó sai, không cần ngồi wait từng agent finish — nuke và restart với instructions rõ hơn.\u003c\/p\u003e\n\n\u003cp\u003eĐây là safety mechanism quan trọng mà nhiều orchestration frameworks phức tạp hơn thực ra không có.\u003c\/p\u003e\n\n\u003ch2\u003eSo sánh với các alternatives\u003c\/h2\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eTool\u003c\/th\u003e\n      \u003cth\u003eDependencies\u003c\/th\u003e\n      \u003cth\u003eSetup time\u003c\/th\u003e\n      \u003cth\u003eMental model\u003c\/th\u003e\n      \u003cth\u003eYolo mode?\u003c\/th\u003e\n    \u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003eIttyBitty\u003c\/strong\u003e\u003c\/td\u003e\n      \u003ctd\u003etmux only\u003c\/td\u003e\n      \u003ctd\u003e~5 phút\u003c\/td\u003e\n      \u003ctd\u003eĐơn giản\u003c\/td\u003e\n      \u003ctd\u003eKhông\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eGas Town\u003c\/td\u003e\n      \u003ctd\u003eNode.js + nhiều packages\u003c\/td\u003e\n      \u003ctd\u003e~30 phút\u003c\/td\u003e\n      \u003ctd\u003eTrung bình\u003c\/td\u003e\n      \u003ctd\u003eCó\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eClaude Code Agent Teams\u003c\/td\u003e\n      \u003ctd\u003eClaude Code v2.1+\u003c\/td\u003e\n      \u003ctd\u003e~10 phút\u003c\/td\u003e\n      \u003ctd\u003eTrung bình\u003c\/td\u003e\n      \u003ctd\u003eKhông\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eCustom Python orchestrator\u003c\/td\u003e\n      \u003ctd\u003ePython + Anthropic SDK\u003c\/td\u003e\n      \u003ctd\u003e~2 giờ\u003c\/td\u003e\n      \u003ctd\u003ePhức tạp\u003c\/td\u003e\n      \u003ctd\u003eTùy config\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003ch2\u003eKhi nào nên dùng IttyBitty vs Agent Teams tích hợp\u003c\/h2\u003e\n\n\u003cp\u003eClaude Code bây giờ có Agent Teams tích hợp sẵn (v2.1.32+). Vậy tại sao dùng IttyBitty?\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eDùng IttyBitty khi:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eCần isolation hoàn toàn giữa agents (git worktrees)\u003c\/li\u003e\n  \u003cli\u003eAgents cần chạy trong thời gian dài (qua đêm)\u003c\/li\u003e\n  \u003cli\u003eCần resume agents sau khi disconnect\u003c\/li\u003e\n  \u003cli\u003eTeam đã quen với tmux workflow\u003c\/li\u003e\n  \u003cli\u003eMuốn minimal dependencies\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003cstrong\u003eDùng Agent Teams tích hợp khi:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eTasks ngắn, trong một session\u003c\/li\u003e\n  \u003cli\u003eCần agent-to-agent communication phong phú\u003c\/li\u003e\n  \u003cli\u003eMuốn seamless integration với Claude Code UI\u003c\/li\u003e\n  \u003cli\u003eÍt experience với tmux\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eInstallation: 3 bước\u003c\/h2\u003e\n\n\u003cpre\u003e\n# 1. Clone IttyBitty\ngit clone https:\/\/github.com\/adamwulf\/ittybitty\n\n# 2. Add to PATH\necho 'export PATH=\"$PATH:\/path\/to\/ittybitty\/bin\"' \u0026gt;\u0026gt; ~\/.zshrc\n\n# 3. Test\nib --version\n\u003c\/pre\u003e\n\n\u003cp\u003eKhông cần \u003ccode\u003enpm install\u003c\/code\u003e. Không cần \u003ccode\u003epip install\u003c\/code\u003e. Không cần Docker. Chỉ cần tmux đã có sẵn trên macOS.\u003c\/p\u003e\n\n\u003cp\u003eĐể hiểu sâu hơn về multi-agent patterns với Claude, \u003ca href=\"\/products\/agent-workflows-chaining-routing-parallelization\"\u003eagent workflows: chaining, routing, parallelization\u003c\/a\u003e là tài liệu nền tảng. Với những ai muốn dùng official Agent Teams của Claude Code, \u003ca href=\"\/products\/claude-code-toan-tap-lap-trinh-voi-ai-agent-trong-terminal\"\u003eClaude Code toàn tập\u003c\/a\u003e có section riêng về agent teams. Và nếu bạn muốn xây dựng orchestration custom hơn, \u003ca href=\"\/products\/chief-of-staff-agent-dieu-phoi-multi-agent-voi-claude-sdk\"\u003eChief of Staff agent pattern\u003c\/a\u003e cho thấy cách dùng Claude SDK.\u003c\/p\u003e\n\n\u003ch2\u003ePatterns nâng cao với IttyBitty\u003c\/h2\u003e\n\n\u003cp\u003eSau khi master basics, Wulf document một số patterns nâng cao mà cộng đồng đang dùng:\u003c\/p\u003e\n\n\u003ch3\u003eFan-out pattern\u003c\/h3\u003e\n\u003cp\u003eManager agent tạo 5-10 workers song song để research hoặc analyze cùng một topic từ nhiều angles. Mỗi worker hoạt động độc lập, sau đó manager synthesizes kết quả.\u003c\/p\u003e\n\n\u003cpre\u003e\n# Manager nhận instruction:\n\"Research cách các companies lớn implement authentication.\nSpawn 5 workers, mỗi worker research một company:\nGoogle, Facebook, Apple, GitHub, Stripe.\nTổng hợp patterns và best practices sau khi tất cả workers xong.\"\n\u003c\/pre\u003e\n\n\u003ch3\u003ePipeline pattern\u003c\/h3\u003e\n\u003cp\u003eWorker A → kết quả pass sang Worker B → Worker C. Mỗi stage specializes trong một loại transformation cụ thể.\u003c\/p\u003e\n\n\u003cpre\u003e\nWorker 1 (Research): Collect raw data từ nhiều sources\nWorker 2 (Analysis): Analyze và categorize\nWorker 3 (Writing): Format và write final report\n\u003c\/pre\u003e\n\n\u003ch3\u003eReview loop pattern\u003c\/h3\u003e\n\u003cp\u003eDeveloper agent viết code, Reviewer agent review và leave comments, Developer agent addresses comments. Loop cho đến khi Reviewer satisfied.\u003c\/p\u003e\n\n\u003ch2\u003eTích hợp với git workflow\u003c\/h2\u003e\n\n\u003cp\u003eIttyBitty được thiết kế với git workflow trong mind. Mỗi agent làm việc trên branch riêng, và merge process là intentional:\u003c\/p\u003e\n\n\u003cpre\u003e\n# Sau khi agent xong việc\nib merge agent-auth-refactor\n\n# IttyBitty tự động:\n# 1. Checkout branch của agent\n# 2. Run merge vào main branch của bạn\n# 3. Shutdown agent và clean up tmux session\n# 4. Delete worktree\n\u003c\/pre\u003e\n\n\u003cp\u003eNếu merge có conflicts, bạn resolve như bình thường. Không có magic — chỉ là standard git workflow.\u003c\/p\u003e\n\n\u003ch2\u003eHạn chế và khi nào không nên dùng IttyBitty\u003c\/h2\u003e\n\n\u003cp\u003eWulf honest về limitations:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003emacOS only (tmux required) — không phải cross-platform solution\u003c\/li\u003e\n  \u003cli\u003eText-based communication — không có structured data passing giữa agents\u003c\/li\u003e\n  \u003cli\u003eManual orchestration — bạn vẫn cần define task decomposition\u003c\/li\u003e\n  \u003cli\u003eKhông có built-in retry logic cho failed agents\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eKhi nào không nên dùng: Nếu bạn cần complex orchestration với conditional logic phức tạp, programmatic control, hoặc integration với external systems, một proper SDK (như Anthropic Python SDK) có thể phù hợp hơn.\u003c\/p\u003e\n\n\u003ch2\u003eLesson lớn: Simplicity là một feature\u003c\/h2\u003e\n\n\u003cp\u003eIttyBitty không phải là tool tốt nhất cho mọi multi-agent use case. Nhưng nó là tool tốt nhất cho những người cần:\u003c\/p\u003e\n\u003col\u003e\n  \u003cli\u003eBắt đầu nhanh mà không cần học framework mới\u003c\/li\u003e\n  \u003cli\u003eControl rõ ràng và predictable behavior\u003c\/li\u003e\n  \u003cli\u003eKhông phụ thuộc vào external services hay databases\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003cp\u003eKhi Wulf nói \"it's just Claude, and you can make lots of them\", ông đang capture được insight quan trọng: đôi khi giải pháp tốt nhất không phải là thêm abstraction layers, mà là hiểu rõ primitive building blocks và combine chúng theo cách intelligent.\u003c\/p\u003e\n\n\u003cp\u003eIttyBitty là bằng chứng rằng bash + tmux + good judgment có thể đánh bại nhiều frameworks phức tạp hơn trong real-world usage.\u003c\/p\u003e\n\n\u003chr\u003e\n\u003ch2\u003eNguồn tham khảo\u003c\/h2\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003ca href=\"https:\/\/adamwulf.me\/2026\/01\/itty-bitty-ai-agent-orchestrator\/\" target=\"_blank\"\u003eAdam Wulf — IttyBitty: Multi-Agent Claude Code Orchestration\u003c\/a\u003e (Tháng 1\/2026)\u003c\/li\u003e\n  \u003cli\u003e\u003ca href=\"https:\/\/github.com\/adamwulf\/ittybitty\" target=\"_blank\"\u003eGitHub repository\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n","brand":"Minh Tuấn","offers":[{"title":"Default Title","offer_id":66959049785389,"sku":null,"price":0.0,"currency_code":"VND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0763\/9531\/5245\/files\/ittybitty-orchestrator-multi-agent-thu_n-bash-ch_-la-claude-nh_ng-nhi_u-claude.jpg?v=1782892267","url":"https:\/\/claudeae.com\/products\/ittybitty-orchestrator-multi-agent-thu%e1%ba%a7n-bash-ch%e1%bb%89-la-claude-nh%c6%b0ng-nhi%e1%bb%81u-claude","provider":"Claude.vn","version":"1.0","type":"link"}