Chạy Cursor Agent trong terminal nhiều pane trên Mac

Bạn có thể chạy Cursor Agent trong terminal trên Mac: MXterm Pro mở một pane Cursor bằng template Cursor Agent, template này gõ cursor-agent, CLI agent của Cursor, vào một pane terminal thật (một PTY). Lệnh cursor là launcher của trình soạn thảo và mở cửa sổ Cursor. Bản Windows x64 cũng đã có. MXterm bổ sung nhận biết trạng thái trực tiếp mỗi 300 mili giây, cùng chế độ tách biệt git worktree tùy chọn (opt-in).
Công cụ này là gì và dành cho ai
MXterm Pro không can thiệp vào việc cursor-agent làm. Đây là ứng dụng desktop đa terminal, đa agent (xây trên Tauri 2 và Rust, không dùng Electron), gõ cursor-agent vào một pane terminal thật qua template Cursor Agent của nó.
Ngoài ra, MXterm Pro thêm hai thứ mà terminal thường không có. Một là chỉ báo trạng thái cho bạn biết ngay agent có cần bạn hay không. Hai là chế độ tách biệt git worktree tùy chọn (opt-in), dùng khi có nhiều agent cùng sửa một repo.
Phần này dành cho developer đã quen điều khiển agent của Cursor từ dòng lệnh. Họ muốn chạy nó cạnh một terminal thứ hai do mình điều khiển, hoặc cạnh agent thứ hai và thứ ba. Claude Code, Codex, Gemini CLI, OpenCode và các agent khác chạy được trong cùng workspace, mỗi agent làm một phần khác nhau của cùng codebase. Bạn không phải canh nhiều cửa sổ hệ điều hành riêng để biết agent nào đang kẹt.
Cài đặt một pane Cursor Agent
Để mở pane Cursor Agent, bạn chỉ cần một thứ: file thực thi cursor-agent nằm trong PATH hoặc trong các thư mục bin thông dụng như /opt/homebrew/bin và ~/.local/bin. Đó là CLI agent; cursor là launcher của trình soạn thảo và mở cửa sổ Cursor. Nếu MXterm không tìm thấy cursor-agent, dòng Cursor Agent trong màn hình thiết lập (MXterm gọi là composer) hiện "Chưa cài đặt" thay vì nút tăng giảm số lượng.
1. Lần đầu mở app, hoặc khi không có tab đã lưu nào quay lại, MXterm Pro mở ở composer; nếu không, bấm ⌘T để mở một composer mới.
2. Chọn thư mục dự án. Đây là thư mục làm việc của mọi pane bạn tạo.
3. Dùng nút tăng giảm dưới mục "Cursor Agent" để gán một hoặc nhiều pane cho nó. Các pane còn lại để làm shell thường, hoặc chia cho Claude Code, Codex hay các CLI agent khác mà MXterm nhận ra.
4. Nếu chạy nhiều hơn một agent, bật "Tách biệt tính năng bằng Git Worktree" (giải thích bên dưới).
5. Bấm ⌘/Ctrl+Enter. MXterm gõ cursor-agent vào shell của pane đó.
MXterm quét lại các agent mỗi lần bạn mở lại composer. Nếu bạn cài CLI khi MXterm đang chạy, hãy đóng rồi mở lại composer. Bạn không cần khởi động lại app.
Tab và bố cục pane được lưu và khôi phục khi mở lại app, nhưng các tiến trình bên trong không được tiếp tục. Mỗi pane nhận một terminal mới trong thư mục của nó. Pane Cursor Agent được khôi phục sẽ chạy lại cursor-agent như một lần khởi động mới, không resume và không có brief ban đầu.
Nhận biết trạng thái trực tiếp: MXterm biết Cursor đang làm gì bằng cách nào
Đây không phải tích hợp API của Cursor: MXterm không bao giờ nói chuyện với backend của Cursor cho việc này. Nó so khớp mẫu trong văn bản đang hiển thị sẵn trong pane. Một nhịp đọc màn hình chạy khoảng mỗi 300 mili giây, và bỏ qua lần đọc khi pane đang rảnh và chưa có gì mới được in ra.
Ba quy tắc quyết định trạng thái. Dòng khớp permission, allow…? hoặc do you want to được coi là bị chặn. Dòng khớp thinking…, generating…, working… hoặc analyzing được coi là đang làm việc. Dòng kết thúc bằng cursor> được coi là rảnh, và màn hình không khớp gì cũng quay về rảnh.
Mã nguồn của MXterm ghi rằng các mẫu Cursor này được viết tay và chưa được kiểm tra với một phiên Cursor thật. Hãy coi chấm trạng thái chỉ là gợi ý.
Ngay sau khi pane khởi chạy, trạng thái là chưa rõ trong khoảng ba giây, lúc đó màn hình khởi động bị bỏ qua. Nếu tiến trình terminal của pane thoát, trạng thái vẫn là chưa rõ, nên pane chỉ hiện chấm hoạt động thường (và chỉ khi nó đang in ra) cho đến khi pane được khởi chạy lại. Mỗi lần khởi chạy lại bắt đầu một khoảng chờ ba giây mới.
Cùng bộ quy tắc này chạy cho Claude Code, Codex, Gemini, OpenCode và các CLI agent khác mà MXterm hỗ trợ. Vì vậy header của pane Cursor dùng đúng các màu chấm như bất kỳ agent nào trong số đó: đỏ là bị chặn, vàng là đang làm việc, xanh lá là xong, và chấm hoạt động thường khi trạng thái chưa rõ.
Các tab không hoạt động trên thanh tab mang tối đa hai dấu: dấu bận khi agent đang làm việc, và chấm đỏ (bị chặn) hoặc chấm xanh lá (xong). Sidebar liệt kê các terminal của tab đang hoạt động, mỗi terminal có chấm riêng.
Pane chạy nền cũng phát âm báo khoảng một giây rưỡi sau khi bị chặn hoặc xong. Trong Cài đặt → Thông báo & Âm thanh, bạn có thể tắt riêng cảnh báo cho Cursor (âm báo và banner) mà không ảnh hưởng Claude Code hay Codex.
Resume phiên Cursor: phần tự động và phần bạn tự làm
MXterm tự tìm được phiên của Claude Code, Codex, Gemini và OpenCode, nhưng không tìm được phiên của Cursor. Composer của MXterm có danh sách Khôi phục phiên cũ, đọc lịch sử trên đĩa của từng CLI và mở lại một cuộc trò chuyện cũ thành pane mới chỉ với một cú bấm. Kho phiên của Cursor chưa được quét, nên nó không xuất hiện trong danh sách đó.
MXterm không có danh sách phiên Cursor và không có ô nhập ID phiên Cursor. Để resume một cuộc trò chuyện Cursor cụ thể, hãy tự chạy CLI agent của Cursor (cursor-agent) trong shell của pane. Mọi thứ xung quanh (pane, chấm trạng thái, worktree nó đang chạy) vẫn là cùng một workspace MXterm dù bạn làm cách nào.
Chạy Cursor cạnh Claude Code hoặc Codex: tách biệt bằng git worktree
Bật Tách biệt tính năng bằng Git Worktree trong composer, và mọi pane agent nó tạo ra, kể cả Cursor, đều có worktree riêng tại <repo>/.worktrees/<slug>. Slug là tên nhánh với dấu gạch chéo đổi thành dấu gạch ngang. Với nhánh swarm/azure-falcon, thư mục là .worktrees/swarm-azure-falcon.
Nhánh là nhánh mới, tên ngẫu nhiên, như swarm/azure-falcon. MXterm cũng tự thêm .worktrees/ vào .gitignore của bạn, nên các bản checkout dùng tạm này không bao giờ bị commit nhầm. Pane shell thường, và mọi pane bạn không tách biệt, vẫn ở thư mục gốc của repo.
Tác dụng thực tế khá rõ, nhưng đây không phải sandbox. Cursor làm việc trong swarm/azure-falcon còn Claude Code làm việc trong swarm/mint-otter thì sửa hai thư mục khác nhau trên hai nhánh khác nhau. Một chỉnh sửa dở dang của agent này khó rơi vào file mà agent kia đang làm hơn nhiều.
Git worktree cho mỗi agent giảm khả năng lỗi của agent này chạm vào bản làm việc của agent khác. Nó làm vậy bằng cách cho mỗi agent một bản checkout riêng, không phải bằng cách hạn chế những gì mỗi agent được phép làm.
Hai quy tắc bảo vệ kết quả. Đóng pane hay workspace không bao giờ xóa worktree của nó, và agent không thể xóa worktree đang có thay đổi chưa commit. Khi một nhánh đã được merge, hãy dọn nó từ danh sách worktree trong panel Git.
Free và Pro: cái gì thực sự bị giới hạn
Bật tách biệt worktree không tốn gì: tính năng này không bị giới hạn ở gói Pro. Thứ bị khóa là quy mô. Mặc định, gói Free không giới hạn số pane. Gói này cho phép 2 terminal dùng chung một Control Room (trước đây là War Room), 5 host SSH đã lưu và 1 Machine đã lưu. Pro gỡ giới hạn Control Room.
Với bộ Cursor cùng các agent khác, giới hạn Control Room là con số cần để ý. Đặt Cursor, Claude Code và Codex vào cùng một phòng thì thành viên thứ ba cần Pro.
Giới hạn pane ít quan trọng hơn với một bố cục multi-agent nhỏ, nhưng đó là một nguồn dùng chung. Một pane Cursor, một pane Claude Code và năm shell thường đều lấy từ cùng con số 10 đó.
MXterm Pro so với iTerm2, Warp và terminal thường cho việc này
iTerm2 và Terminal.app đều là những terminal xuất sắc, đã trưởng thành, và chạy cursor-agent trong terminal nào cũng tốt như nhau. Không cái nào được xây quanh việc theo dõi agent đang bị chặn, đang làm việc hay rảnh, tự động hóa worktree, hoặc điều phối agent thứ hai ở tab khác. Bạn nhận output thô và tự đọc.
Warp là một phép so sánh khác: một terminal xây chủ yếu quanh agent AI và command block của chính nó. Bạn vẫn có thể chạy cursor-agent trong một block của Warp như mọi lệnh khác. Hãy xem tài liệu của Warp để biết công cụ agent của nó hiện bao gồm những gì.
Nếu công việc là chạy Cursor cạnh Claude Code và Codex và thấy ngay cái nào cần bạn, MXterm Pro sinh ra cho việc đó. Nó là một lựa chọn thay thế cho việc chạy cursor-agent một mình trong cửa sổ terminal thường.
Xử lý sự cố và giới hạn hiện tại
Cursor Agent hiện "Chưa cài đặt" trong composer: MXterm không tìm thấy file thực thi cursor-agent trong PATH hoặc các thư mục bin thông dụng. Hãy cài nó, rồi mở lại composer. Không cần khởi động lại app.
Pane không hiện màu ngay sau khi khởi chạy: bình thường. Trạng thái chưa rõ trong khoảng ba giây sau khi khởi chạy, trước lần đọc thật đầu tiên.
Không có mục Cursor trong "Khôi phục phiên cũ": đúng như dự kiến hiện nay, như đã nêu ở phần resume phía trên.
Pane quay lại nhưng phiên cũ thì không: sau khi mở lại app, tab và bố cục quay lại với một terminal mới trong mỗi pane. Pane Cursor Agent chạy lại cursor-agent như một phiên mới, không có brief ban đầu. MXterm không mở lại cuộc trò chuyện Cursor trước đó cho bạn.
Bỏ brief là chủ đích: phát lại nó trên một worktree đã thay đổi sẽ làm lại toàn bộ tác vụ.
Linux: MXterm Pro có bản Linux beta (một file .deb và một AppImage cho Ubuntu 22.04 trở lên), nhưng quy trình này được mô tả cho macOS và Windows, nên hãy coi là chưa kiểm thử trên Linux.
Terminal đa pane, Command Recipes (Cmd+J), và Control Room (trước đây là War Room) đa agent: miễn phí để bắt đầu.
Đã 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
Không. MXterm Pro khởi tạo một PTY thật và gõ lệnh của template Cursor Agent (cursor-agent) vào shell của nó. Nó không bọc lệnh đó. Nhận biết trạng thái chỉ đọc output đã hiển thị của pane, và không chặn hay thay đổi những gì lệnh in ra hoặc nhận vào.
Có. Mỗi cái chạy trong pane riêng của nó, với git worktree riêng nếu chế độ tách biệt được bật. MXterm không thiết lập các công cụ Control Room của nó cho Cursor, nên một pane Cursor không kết nối vào phòng theo cách Claude Code hoặc Codex làm.
Chưa tự động được. Danh sách "Khôi phục phiên cũ" của composer hiện chỉ đọc lịch sử từ Claude Code, Codex, Gemini và OpenCode. Kho phiên riêng của Cursor chưa được nối vào lần quét đó. Bạn vẫn resume bằng tay trong shell của pane với CLI agent của Cursor (cursor-agent). Theo tài liệu CLI của Cursor, cursor-agent ls liệt kê các chat cũ và cursor-agent resume mở lại chat mới nhất. cursor-agent --resume nhận một ID chat.
Windows x64 cung cấp PowerShell, cmd, Git Bash (cùng PowerShell 7 hoặc WSL nếu đã cài), chọn theo từng pane hoặc đặt làm mặc định trong Cài đặt. Nhận biết trạng thái và tách biệt worktree chưa xác minh trên đó. Trên Windows, Control Room không nhận ra agent bạn tự chạy trong pane shell thường. 1.1.0 là bản Windows công khai đầu tiên.
Bản thân tách biệt worktree miễn phí. Thứ bị khóa là quy mô: mặc định, gói Free không giới hạn số pane nhưng giới hạn một Control Room ở 2 terminal, cộng với số host SSH và Machines đã lưu. Gói Pro trả phí gỡ các giới hạn đó. Một phòng ba agent gồm Cursor, Claude Code và Codex cần Pro.