MXterm Pro

Điều phối nhiều AI agent song song bằng split pane trong terminal

Henry AGI
5 phút đọc
Bốn bước: mở workspace trên repo của bạn, tách tính năng bằng git worktree, chia pane mỗi agent một pane, rồi review và merge nhánh

Để chạy Claude Code và Codex song song trong các split pane, hãy mở một workspace trong MXterm Pro, bật "Tách biệt tính năng bằng Git Worktree", rồi chọn Claude Code cho một pane và Codex cho pane còn lại. Khi đó mỗi agent làm việc trên nhánh riêng, không tranh nhau cùng một checkout. Việc tách biệt này giảm khả năng va chạm giữa các nhánh. Nó không ngăn được hai agent cùng sửa một file.

Vì sao chạy hai AI agent trên một repo thường gặp lỗi

Lỗi hầu như lúc nào cũng giống nhau. Bạn mở Claude Code ở một tab terminal và Codex ở tab khác, trỏ cả hai vào cùng một working copy rồi giao hai việc khác nhau. Một agent chạy git checkout -b feature-a trong khi agent kia đang sửa dở trên main. Lúc này bạn có thay đổi chưa commit nằm nhầm nhánh, hoặc một git status mà không agent nào lường trước.

Ngay cả khi cùng một nhánh, hai agent sửa các file chồng lên nhau cùng lúc sẽ gây merge conflict mà bạn phải gỡ bằng tay.

Chạy lần lượt thì tránh được va chạm nhưng thời gian chờ tăng gấp đôi. Bạn phải trông một agent trong khi agent kia ngồi không. Cách sửa không phải là canh lượt cẩn thận hơn. Hãy cho mỗi agent một working copy riêng trên ổ đĩa, để lệnh git checkout ở pane này không đụng vào file của pane kia.

Từng bước: chia pane terminal và cách ly từng agent

1. Mở workspace mới trên repo của bạn. Ở màn hình Trang chủ hoặc Thêm Không gian của MXterm Pro, chọn thư mục dự án. Hoặc, trên macOS, dùng quick action "New MXterm Pro Tab Here" của Finder nếu nó có trong menu Services, hoặc thả thư mục lên icon ở Dock.

2. Đánh dấu "Tách biệt tính năng bằng Git Worktree". Dòng mô tả bên dưới ô chọn cho biết nó làm gì: "Mỗi ô Agent chạy trên một Worktree và nhánh riêng biệt." Mặc định tùy chọn này tắt.

Tùy chọn này chỉ có tác dụng trong một git repo. Nếu thư mục không phải repo, MXterm Pro không còn tự chạy git init thay bạn (đổi từ bản 1.0.22). Nó báo ngay từ đầu: "Thư mục này không phải là repo git, nên các agent sẽ dùng chung thư mục trực tiếp (không tách biệt worktree)". Sau đó nó mở các pane thường, không cách ly, mỗi pane kèm một thông báo có thể tắt. Nếu muốn cách ly, hãy tự chạy git init trước.

3. Thêm split pane. Dùng Cmd+D (chia sang phải) hoặc Shift+Cmd+D (chia xuống dưới), hoặc đặt số lượng pane trong composer trước khi tạo workspace. Thêm về việc chia pane có trong tài liệu pane.

Để sắp xếp lại pane sau này, kéo header của pane thả lên cạnh của một pane khác. Lớp phủ hiện Chèn bên Trái / bên Phải / phía Trên / phía Dưới, và pane sẽ nằm cạnh pane đó theo tỉ lệ 50/50. Việc đổi kích thước cũng tự căn: thả divider trong khoảng 3,5% quanh vị trí giữa thì nó tự về 50/50. Bấm đúp vào divider bất kỳ lúc nào để đặt lại 50/50.

4. Chạy mỗi agent trong một pane. Vì đã bật cách ly worktree, mỗi pane agent bạn chọn trong composer (Claude Code ở pane này, Codex ở pane kia) đã nằm sẵn trên nhánh riêng, đặt tên kiểu swarm/brave-otter.

Ứng dụng tự sinh một cặp tính từ-danh từ ngắn, đã kiểm tra trùng, thay vì dùng lại tên agent. Nếu tên đó vô tình bị trùng, nó thử lại với hậu tố -2. Pane Terminal thường, hoặc pane bạn thêm sau bằng split, vẫn nằm ở thư mục gốc của repo.

5. Giao cho mỗi agent một việc riêng, giới hạn trong các file không chồng nhau nếu có thể. Ví dụ, "refactor auth middleware" ở pane một và "cập nhật giao diện phần Cài đặt" ở pane hai. Cách ly giảm khả năng va chạm nhánh. Nó không ngăn hai agent tự sửa cùng một file dùng chung, nên hãy chia việc theo ranh giới thật của codebase.

6. Review và merge từ thư mục gốc của repo. Khi một agent xong việc, cd vào worktree của nó (<repo>/.worktrees/<slug>) hoặc chọn nó trong danh sách Worktree ở panel Git. Sau đó merge nhánh về theo cách thông thường: git merge, xem diff, hoặc mở PR. MXterm Pro không merge thay bạn. Nó chỉ giữ hai working copy tách nhau trong lúc các agent chạy.

Bài liên quanCách Command Recipes hoạt động: lệnh Linux có sẵn cho disk, RAM, port, khớp theo từ khóa

Broadcast input: gửi một prompt tới mọi pane

Nhấn Cmd+Shift+B trên macOS để bật/tắt Gửi Lệnh Đồng Thời (Broadcast) khi bạn muốn gửi cùng một chỉ dẫn tới mọi agent một lúc, chẳng hạn "chạy bộ test" hoặc "pull bản mới nhất rồi rebase". Bảng phím gán Ctrl+Shift+B cho Windows.

Khi chế độ này bật, phím bạn gõ trong pane đang active được sao chép theo thời gian thực sang mọi pane khác trong nhóm broadcast. Một lệnh npm test hay một prompt tới được tất cả mà không phải gõ lại ở từng tab.

Broadcast cố tình làm thô sơ. Nó không gộp output và không chờ một agent xong rồi mới gửi lệnh tiếp. Nó chỉ chia cùng một chuỗi phím ra các pane. Hãy tắt nó (Cmd+Shift+B lần nữa) trước khi gõ thứ chỉ dành cho một pane, như câu trả lời cho câu hỏi của một agent. Nếu không, câu trả lời đó sẽ tới mọi pane trong nhóm.

Control Room đa agent và điểm khác so với split pane thường

Control Room (trước đây là War Room) là một lớp riêng nằm trên split pane cùng cách ly worktree, những thứ giúp hai agent không đụng nhau trên ổ đĩa. Nó nằm ở panel phụ bên phải. Trên macOS, Alt+Cmd+B bật/tắt panel, rồi chọn tab Control Room. Trên Windows, bảng phím gán Ctrl+Alt+B, phím này chưa được xác minh trên máy Windows thật.

Bạn đưa các terminal pane vào một phòng chung bằng nút Control Room trên từng pane. Phòng giữ một bản ghi liên tục về các lần vào, rời, đổi tên và tin nhắn mà Moderator và các agent gửi cho nhau.

Nếu bạn đang gõ trong một pane, Control Room sẽ giữ việc gửi prompt cho agent đó cho tới khi bạn ngừng gõ hoặc bấm "Gửi ngay". Nhờ vậy nó không chèn chỉ dẫn đang chờ vào giữa lúc bạn gõ. Hướng dẫn Control Room trình bày phần còn lại, còn tài liệu agent và Control Room trình bày phần trong app.

Tài khoản Free có tối đa 2 thành viên mỗi Control Room theo mặc định. Pro gỡ giới hạn này. Chưa bao giờ có giới hạn về số phòng. Chạy Claude Code và Codex song song, đúng như hướng dẫn này, nằm gọn trong phòng 2 thành viên của gói Free. Chỉ khi thêm thành viên thứ ba hoặc thứ tư vào cùng một phòng bạn mới chạm trần.

Lượng token đã dùng của từng agent (Token Meter)

Token Meter của MXterm Pro theo dõi cả Claude Code lẫn Codex. Bấm chip trên thanh tiêu đề, mỗi agent có một dòng. Dòng đó mở rộng ra sparkline theo giờ và bảng chia theo 7 ngày. Nó đọc transcript của từng agent ngay trên máy bạn, không cần API key hay tài khoản. Không có gì được gửi đi đâu cả, trừ khi bạn bật tính năng tra cứu giới hạn gói trực tiếp, vốn là tùy chọn (opt-in). Cách đếm lượng token đã dùng có chi tiết.

So sánh với iTerm2, Warp và tmux

iTerm2 là terminal macOS lâu đời, viết script được, split pane rất tốt và có hệ plugin lớn. Bạn có thể dùng nó để chạy Claude Code và Codex trong hai pane bằng tay. Tài liệu của nó nói tới thông báo khi có hoạt động, khi im lặng và khi job xong, một plugin AI tùy chọn và tích hợp Claude Code. Tài liệu không liệt kê việc tự tạo worktree, nên bạn phải tự quản lý cách ly nhánh bằng git worktree add.

Warp đã đi xa hơn một trợ lý chat đơn lẻ. Trang web của Warp mô tả việc mang agent của riêng bạn, như Claude Code hay Codex, và điều phối cả đàn agent từ một control plane trên web, mobile, terminal và IDE. MXterm Pro hẹp hơn: một terminal desktop chạy local, mỗi pane agent một worktree. Xem MXterm Pro vs Warp để so sánh đầy đủ.

tmux cho bạn các pane và thói quen tay mà nhiều kỹ sư đã có, và nó là thứ gần nhất với mô hình split pane của MXterm Pro. Nhưng nó là terminal multiplexer, không hiểu git.

Broadcast phím tới nhiều pane (:setw synchronize-panes on) là mẹo tmux có từ lâu, và Broadcast của MXterm Pro cũng làm việc tương tự. Việc tự tạo worktree, theo dõi trạng thái agent và bản ghi Control Room thì một cấu hình tmux không làm được nếu không tốn công viết script.

Không lựa chọn nào trong số này là sai. iTerm2, Warp và tmux đều là terminal dùng tốt. Chỗ MXterm Pro khác biệt cho quy trình này là sự kết hợp: cách ly worktree gắn vào bước tạo workspace, nhận diện trạng thái agent và broadcast, gói trong một app native, thay vì ba script rời và một file .tmux.conf ghép tay.

Giới hạn Free và Pro cho quy trình này

Phần cốt lõi của hướng dẫn này chạy được trên gói Free: chia hai pane, cách ly worktree, broadcast input và Control Room 2 thành viên. Các con số chỉ quan trọng khi bạn mở rộng quá một cặp agent.

Mặc định, gói Free không giới hạn số terminal pane. Gói này cho 5 SSH host đã lưu, 2 thành viên Control Room mỗi phòng và 1 Machine đã lưu. Pro gỡ giới hạn về SSH host và thành viên Control Room.

Vì vậy gói Free không phải bản demo cắt giảm của quy trình này. Giới hạn chỉ lộ ra khi bạn chạy các nhóm agent lớn hơn hoặc quản lý cả đàn SSH host bên cạnh agent.

Khi không chạy được: các lỗi thường gặp

Các pane mở ra không có worktree. Thư mục đó không phải git repository. MXterm Pro đã thôi tự chạy git init từ bản 1.0.22. Trước đó việc này diễn ra tự động và có thể cuốn một file .env hoặc một key vào lịch sử mới tinh mà không ai yêu cầu. Nên giờ nó quay về các pane thường dùng chung và cho bạn biết lý do.

Hãy tự chạy git init, rồi tạo lại workspace. Nếu repo chưa có commit nào, MXterm Pro thêm một "Initial commit" chỉ chứa một file .gitkeep rỗng để tạo được các worktree. Không có gì khác trong thư mục bị commit.

Hai agent cứ dính vào cùng các file. Cách ly worktree giảm va chạm ở nhánh và trạng thái checkout. Nhưng hai agent vẫn có thể cùng quyết định sửa, chẳng hạn, một file config dùng chung từ working copy riêng của mỗi bên. Đó là vấn đề chia việc, cách ly không giải quyết được. Hãy chia việc theo ranh giới module thật.

Broadcast gửi câu trả lời nhầm pane. Đây là lỗi broadcast phổ biến nhất. Chế độ này giữ bật cho tới khi bạn tắt, nên câu trả lời dành cho câu hỏi tiếp theo của một agent lại tới tất cả. Hãy tắt Cmd+Shift+B trước khi gõ bất cứ thứ gì chỉ dành cho một pane.

Merge nhánh worktree về có vẻ thêm bước. Đúng là thêm một bước, và đó là chủ ý. Cách ly giữ các working copy tách nhau trong lúc chạy, nhưng MXterm Pro không tự động merge. Hãy coi mỗi nhánh worktree như một feature branch bất kỳ: xem diff, rồi merge hoặc mở PR theo cách bạn vẫn làm.

Trải nghiệm ngay

Terminal đa pane, Command Recipes (Cmd+J), và Control Room (trước đây là War Room) đa agent: miễn phí để bắt đầu.

Tải MXterm Pro Miễn Phí

Đã có MXterm Pro? Đọc hướng dẫn cài đặt →

Chưa dùng MXterm Pro? Xem bảng giá →

Câu hỏi thường gặp

Multi-Agent Control Room trong MXterm Pro là gì?

Đó là một workspace dùng chung ở panel bên phải để chạy nhiều AI CLI agent cùng nhau. Mỗi thành viên có một chấm trạng thái (đang làm, bị chặn, đang rảnh hoặc xong, với các agent mà MXterm đọc được), việc gửi prompt bị giữ lại khi bạn đang gõ, và toàn bộ phiên nhiều agent xuất ra thành báo cáo Markdown. Nó tách biệt với cách ly worktree của split pane: bạn dùng riêng cái nào cũng được, hoặc dùng cả hai.

Có cần git worktree để chạy Claude Code và Codex trong các split pane không?

Không. Bạn có thể chạy chúng trong hai pane thường không cách ly nếu chúng làm trên các repo khác nhau, hoặc nếu bạn tự quản lý việc chuyển nhánh. Cách ly worktree cần thiết khi cả hai agent cùng làm trong một repository cùng lúc. Nếu không có nó, lệnh git checkout của một agent có thể đổi nhánh ngay dưới chân agent còn lại.

Có dùng được CLI agent nào khác ngoài Claude Code và Codex không?

Có. Mọi công cụ CLI chạy được trong shell (Aider, Ollama hay một script tự viết) đều chạy được trong pane terminal thường, và chế độ Broadcast không quan tâm bạn khởi chạy binary nào. Cách ly worktree áp dụng cho các pane agent bạn chọn trong composer (Claude Code, Codex, Gemini CLI, OpenCode và các agent tích hợp sẵn khác). Pane thường vẫn nằm ở thư mục gốc của repo.

Chạy được bao nhiêu agent trước khi chạm giới hạn?

Split pane không giới hạn ở gói Free. Mỗi Control Room tối đa 2 thành viên ở gói Free (Pro không giới hạn). Hai agent, Claude Code và Codex, nằm gọn trong gói Free.

Broadcast một prompt có chờ agent này xong rồi mới gửi sang agent kế không?

Không. Gửi Lệnh Đồng Thời (Broadcast) sao chép phím bạn gõ sang mọi pane trong nhóm theo thời gian thực. Nó không xếp thứ tự và không chờ output của agent. Nó dành cho các chỉ dẫn ngắn, giống hệt nhau (chạy test, pull bản mới nhất), không phải cuộc hội thoại mà bạn muốn mỗi agent trả lời riêng.

Hỏi AI về MXterm Pro

Mở câu trả lời trực tiếp trong ChatGPT, Claude hoặc Perplexity, dựa trên trang này. Trợ lý AI tự viết, không phải chúng tôi, nên hãy kiểm tra nguồn nó trích dẫn.

Câu hỏi được gửiChạy Claude Code và Codex song song trong các pane terminal chia đôi trên Mac thế nào?