Nhiều agent. Một repo. Merge cái đứng vững.

crossweave cho mỗi agent lập trình một git worktree và một shell riêng, cho bạn thấy cái nào đang chạy, đang hỏi hay đã xong, và trial merge chạy nền để bạn chỉ land (đưa vào nhánh chính) cái đứng vững. Dành cho lập trình viên đã chạy Claude Code, Codex hoặc Gemini trong nhiều terminal.

Cài đặt (macOS và Linux)

curl -fsSL https://raw.githubusercontent.com/NMHx2005/crossweave/main/install.sh | sh

v0.6.0 · 11 thg 10, 2026 · Có gì mới →
macOS (arm64, x64) và Linux (x64). Cài cw và cwd vào ~/.local/bin và, trên Apple Silicon, cả ứng dụng Cockpit.

Một bản demo có kịch bản trên một dự án bịa ra, quay trên bản đang phát triển (v0.6.0): session, commit và merge là thật, màn hình agent là kịch bản và các dấu trạng thái được gửi bằng cw notify.

Bản demo cho thấy gì
  1. Ba session xuất hiện trên thanh bên, mỗi cái một worktree và một shell.
  2. Màn hình agent đầy dần và các dấu trên thanh bên đổi: một cái đang chạy, một cái đang hỏi, một cái đã xong.
  3. Con trỏ mở thay đổi của session đã xong; một nhãn file rủi ro hiện ra.
  4. Trial merge cho thấy một session merge sạch và hai session xung đột.
  5. Land hỏi lại trước vì session đụng đến một file workflow; con trỏ xác nhận và session rời khỏi thanh bên.

Cách hoạt động

Ba bước, đều trong terminal và shell của chính bạn.

main api ✓ web ✗ docs ✗ trial merge land
  1. Bắt đầu các session

    cw session new api

    Mỗi cái có worktree, branch và dải port riêng, và một shell trong đó.

    Thanh bên liệt kê ba session mới
  2. Chạy agent của bạn

    claude

    Gõ claude, codex hoặc lệnh của riêng bạn trong từng shell. Thanh bên cho biết ai đang chạy, đang hỏi hay đã xong.

    Các ngăn agent cạnh nhau với dấu trạng thái trên thanh bên
  3. Land cái đứng vững

    cw converge status

    Trial merge chạy nền và cho thấy cái nào merge sạch và theo thứ tự nào. Rồi bạn land: cw land session api --yes.

    Bằng chứng trial merge và nút Land trên một session

Bạn nhận được gì

Nhóm theo việc bạn đang làm. Mỗi thẻ một câu; giới hạn nằm sau một cú bấm.

Chạy

Một session là một worktree cộng với shell của bạn

Mỗi session là một git worktree và một branch riêng, có dải port và một shell của chính bạn.

Giới hạn · Một session là một worktree cộng với shell của bạn

Mỗi session có branch riêng, một dải port ($PORT), thư mục cache và tên database hoặc Docker tuỳ chọn. Gõ gì trong shell — claude, codex, một dev server — là việc của bạn.

Các lease chỉ mang tính hợp tác: một tiến trình phớt lờ chúng vẫn có thể đụng độ với session khác.

Một prompt, nhiều session

Viết prompt một lần và gửi cho nhiều session, có bản xem trước chính xác.

Giới hạn · Một prompt, nhiều session

Viết prompt một lần, tuỳ chọn tinh chỉnh bằng chương trình bạn đặt tên, rồi gửi cho một hoặc nhiều session với bản xem trước chính xác. Chỉ bấm Enter khi bạn tick chọn.

Việc một session có chạy agent hay không chỉ là đoán; bản nháp chỉ nằm trong bộ nhớ.

Công thức session một cú bấm

Một cú bấm khởi động session với launcher, các terminal phụ và một trình duyệt trên port của nó.

Giới hạn · Công thức session một cú bấm

Một preset khởi động session với launcher của nó, các terminal phụ mỗi cái chạy một lệnh, và một ngăn Browser trên port của session.

Các lệnh nằm trong file settings của riêng bạn, và không có gì chờ server sẵn sàng.

Theo dõi

Một thanh bên, trạng thái trung thực

Một danh sách cho biết session nào đang chạy, đang hỏi hay đã xong, suy ra từ shell.

Giới hạn · Một thanh bên, trạng thái trung thực

Mọi session nằm trên một danh sách và cho biết nó đang chạy, đang chờ bạn, đã xong hay thất bại — suy ra từ chính shell, không cần cấu hình gì.

Suy ra từ chữ trên màn hình, output và cây tiến trình: đáng tin với Claude Code, Codex và Gemini, chỉ gần đúng với các agent khác. cw hooks install claude (hoặc codex) làm chúng chính xác ở những chỗ agent báo cáo.

Vì sao lỗi, ở một chỗ

Phần cuối log lỗi, các dòng lỗi, lỗi console và diff trong một ngăn, sẵn để gửi.

Giới hạn · Vì sao lỗi, ở một chỗ

Ngăn Debug gom phần cuối log test lỗi, các dòng lỗi, lỗi console của các ngăn trình duyệt và diff, rồi soạn sẵn để bạn gửi. cw debug in một bộ tương tự (kết quả check, lỗi của terminal, diffstat và những lời cuối của agent) để bạn dán cho một AI.

Nhận diện dòng lỗi và che secret chỉ là heuristic, không phải đảm bảo.

Cho agent dùng một ngăn trình duyệt, theo điều kiện của bạn

Cho agent đọc hoặc điều khiển một ngăn trình duyệt: mặc định tắt, và hỏi trước khi làm.

Giới hạn · Cho agent dùng một ngăn trình duyệt, theo điều kiện của bạn

cw browser đọc và điều khiển một ngăn Browser sau công tắc Off, Read hoặc Control cho từng ngăn. Mặc định Off; điều khiển ngoài localhost, và chạy một đoạn script ở bất cứ đâu, đều hỏi bạn cho từng lệnh.

Chữ trên trang có thể mang chỉ thị độc hại và được đánh dấu là không tin cậy; công tắc theo từng ngăn và không bao giờ được nhớ.

Land

Land cái đứng vững

Trial merge chạy nền cho thấy cái nào merge sạch và theo thứ tự nào; cw land dựa trên bằng chứng đó.

Giới hạn · Land cái đứng vững

Các trial merge chạy nền cho biết session nào merge không xung đột và theo thứ tự nào, và cw land dựa trên bằng chứng đó.

Bằng chứng chỉ có giá trị với base commit mà nó được thử, nên sau một lần land các session còn lại hiện unknown cho đến khi được thử lại. Nó cho thấy xung đột chứ không đảm bảo đúng đắn, và --force có thể land khi bằng chứng chưa đủ.

So sánh hai session

Thay đổi của hai session cạnh nhau, file chung được đánh dấu, kèm kết quả test mỗi bên.

Giới hạn · So sánh hai session

Thay đổi đã commit của hai session cạnh nhau, các file chung được đánh dấu, kèm kết quả test mỗi bên và nút Land riêng.

Chỉ công việc đã commit, và hai session cùng đụng một file không có nghĩa là xung đột.

Duyệt

Một checkpoint quanh các lượt của agent

Một commit git ẩn quanh mỗi lượt của agent được nhận diện: xem nó đổi gì, lấy lại file.

Giới hạn · Một checkpoint quanh các lượt của agent

Khi một agent được nhận diện bắt đầu và kết thúc một lượt, crossweave ghi worktree thành một commit git ẩn. Xem lượt đó đã đổi gì, hoặc lấy lại các file; khôi phục luôn chạy thử trước và để lại một điểm quay về.

Cần session có worktree riêng và một agent được nhận diện; ranh giới lượt là suy đoán và một checkpoint tự động có thể bị bỏ qua; file bị ignore không được ghi; giữ 50 checkpoint mới nhất. Checkpoint là đối tượng git trong repository của bạn, thấy được bằng git log --all và git push --mirror, và chứa cả file không bị ignore như secret.

Comment trên diff, dán vào shell

Bấm vào một dòng diff, viết ghi chú, và các ghi chú được dán vào shell của session.

Giới hạn · Comment trên diff, dán vào shell

Bấm vào một dòng trong ngăn Changes hoặc một checkpoint, viết ghi chú, và các ghi chú được dán vào shell của session thành một khối. Không có gì tự bấm Enter thay bạn.

Comment chỉ nằm trong bộ nhớ, và một shell thường không có agent sẽ bị từ chối.

Chạy test sau mỗi lượt, nếu bạn muốn

Bật lên: lệnh test đã tin cậy chạy khi agent kết thúc lượt, và lỗi có thể báo cho bạn.

Giới hạn · Chạy test sau mỗi lượt, nếu bạn muốn

Bật lên thì lệnh test bạn đã tin cậy sẽ chạy khi một agent kết thúc lượt có đổi file. Khi lỗi, có thể gửi vào shell (đã che secret) và có thông báo desktop không bao giờ hiện output.

Mặc định tắt. Việc một lượt kết thúc là suy đoán nên một lần chạy có thể bị bỏ sót hoặc lặp lại. Nó chạy code agent vừa viết, ngoài mọi sandbox, cho mọi project bạn đã tin cậy lệnh; thông báo đến từ cửa sổ đang mở nên chỉ project nó đang mở mới báo.

Nhìn kỹ hơn những file rủi ro

File secret, CI, migration và dependency được gắn nhãn, và Land hỏi trước với secret và CI.

Giới hạn · Nhìn kỹ hơn những file rủi ro

File có tên giống secret, cấu hình CI và hook, migration và manifest dependency mang một nhãn trong Changes, Checkpoints và Compare, và nút Land của Cockpit hỏi trước với file giống secret và file automation.

Chỉ dựa vào tên file: có thể bỏ sót một key dán vào file thường và gắn nhãn nhầm file vô hại. cw land và Land all ready không hỏi, và câu hỏi bị bỏ qua nếu không đọc được diff.

Nó có dành cho bạn không?

Dành cho bạn nếu

  • Bạn chạy từ hai agent lập trình trở lên trên một repository.
  • Bạn quen với git và terminal.
  • Bạn muốn thấy trạng thái trong một cái nhìn và land dựa trên bằng chứng.

Không dành cho bạn nếu

  • Bạn cần Windows.
  • Bạn muốn một IDE.
  • Bạn muốn công cụ tự chọn, sandbox hay giám sát agent.
  • Bạn muốn điều khiển từ điện thoại (ứng dụng iOS thuần đang được dự định).

Dùng được với các agent bạn đang chạy

Một session mới có thể khởi động bằng một launcher — hoặc chỉ là một shell.

  • Claude Code
  • Codex
  • Gemini CLI
  • OpenCode
  • Cursor Agent
  • Copilot CLI
  • Aider
  • Amp
  • Qwen Code

Hoặc wrapper của riêng bạn (cx, một script, một dev server). crossweave không chọn hay cấu hình agent: một launcher gõ lệnh bạn đã lưu vào shell của session rồi chạy nó, và bạn cũng có thể bắt đầu bằng một shell thường.

Sao không chỉ dùng git worktree và tmux?

Làm tay so với crossweave
Làm tay (git worktree + tmux)crossweave
Một branch và một bản checkout cho mỗi agentBạn tự tạo và xoá từng worktree.cw session new tạo worktree và branch; cw gc thu hồi những gì đã kết thúc.
Port, cache, databaseTuỳ bạn nhớ mà đặt.Mỗi session một dải port, một thư mục cache và tên database hoặc Docker tuỳ chọn (mang tính hợp tác, không ép buộc).
Ai đang cần bạnLật qua từng cửa sổ.Một thanh bên: đang chạy, đang hỏi, đã xong hoặc thất bại. Trạng thái được suy ra từ hoạt động của terminal; độ chính xác tuỳ agent.
Merge cái nào trướcTuỳ phán đoán của bạn.Trial merge cho thấy cái nào merge sạch và một thứ tự đề xuất. Chúng cho thấy xung đột, không đảm bảo đúng đắn.
Bản ghi từng lượt của agentReflog, nếu bạn có commit.Mỗi lượt được nhận diện một checkpoint để xem và khôi phục (v0.6.0).

crossweave thêm một daemon và một ứng dụng vào quy trình trên; nếu bạn chỉ chạy hai agent, worktree thường là đủ.

Bản phát hành gần đây

  • v0.6.0

    0.6.0 makes the loop with an AI agent safer and faster without choosing or configuring the agent for you: a checkpoint around every agent turn you can look at and…

  • v0.5.0

    0.5.0 gives the cockpit a Settings page in the manner of Cursor's and a Dashboard that shows what your projects and sessions cost in disk and memory — and proposes,…

  • v0.4.0

    0.4.0 is the release where the cockpit and the shell talk to each other, and where running several agents at once gets easier to supervise: a session can say it is done,…

Toàn bộ lịch sử thay đổi →

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

crossweave là gì?

Một công cụ ưu tiên chạy cục bộ để chạy nhiều session trên một repository rồi land chúng về. Một session là một git worktree cộng một shell trong đó, như một cửa sổ tmux có branch riêng. Một daemon chạy nền (cwd) lo phần sổ sách; cw, một dashboard terminal và ứng dụng Cockpit nói chuyện với nó.

Nó có phải IDE hay editor không?

Không. Nó có ngăn xem file gọn nhẹ và ngăn diff, nhưng không cố thay editor của bạn. Cmd+click mở file trong editor bạn chọn.

Nó dùng được với những agent nào?

Bất cứ thứ gì bạn chạy được trong shell. Có launcher cho Claude Code, Codex, Gemini CLI, OpenCode, Cursor Agent, Copilot CLI, Aider, Amp và Qwen Code, và bạn thêm được launcher riêng. Dấu hiệu trạng thái đáng tin nhất với Claude Code, Codex và Gemini.

Nó có chọn agent thay tôi không?

Không. Bạn chọn một launcher, hoặc một shell thường, và tự sửa lệnh của từng launcher trong Settings. Khởi động session bằng launcher sẽ gõ lệnh đã lưu đó vào shell và chạy nó. crossweave không chọn, không cấu hình và không giám sát agent.

Code của tôi đi đâu?

Bản thân crossweave không gửi gì đi đâu và không có telemetry: một daemon cục bộ sau một unix socket. Nó chỉ dùng mạng khi installer tải về, khi cw update, và khi kiểm tra bản mới tuỳ chọn với GitHub. Lệnh Refine là chương trình bạn đặt tên, còn các agent bạn chạy và các trang bạn mở có hành vi mạng riêng của chúng.

Chạy được trên nền tảng nào?

CLI, daemon và dashboard terminal chạy trên macOS (Apple Silicon và Intel) và Linux (x64). Ứng dụng Cockpit chạy trên macOS Apple Silicon. Windows không phải mục tiêu.

Giá bao nhiêu và giấy phép gì?

Miễn phí và mã nguồn mở theo giấy phép MIT.

Vì sao ứng dụng chưa được notarize?

Notarize cần tài khoản Apple Developer trả phí, mà tác giả chưa có. Vì vậy tải ứng dụng bằng trình duyệt sẽ gặp cảnh báo của macOS; đường cài bằng installer và các bước thủ công ở trang Tải về tránh hoặc gỡ được cảnh báo đó.

Cập nhật thế nào?

Chạy cw update. cw cũng tự kiểm tra bản mới ở nền (kết quả được lưu trong một ngày) và báo cho bạn khi có; cw config update-check off tắt việc đó.

Test tự động có tự chạy không?

Chỉ khi bạn bật (Settings → Checks, mặc định tắt) và chỉ với lệnh test bạn đã tin cậy bằng cw config trust. Nó chạy code agent vừa viết, ngoài mọi sandbox.

Gỡ cài đặt thế nào?

Thoát ứng dụng, dừng daemon của từng project bằng cw daemon stop, xoá các session không còn cần, rồi xoá các file đã cài. Các bước chính xác, theo đúng thứ tự, nằm trong tài liệu cài đặt.

Tôi có cần ứng dụng không, hay CLI là đủ?

CLI và daemon làm được mọi thứ; Cockpit là giao diện desktop trên chúng, chạy trên macOS Apple Silicon. Trên Linux, hoặc khi không dùng ứng dụng, hãy dùng cw và dashboard terminal (cw tui).

Land làm gì với branch gốc của tôi?

Nó merge phần việc đã commit của session vào branch gốc trong checkout chính của bạn, mặc định dạng squash (merge và rebase cấu hình được). Checkout phải sạch, session đang chạy cần --force, và xung đột sẽ dừng lại. Sau đó worktree và branch của session bị xoá, nên mọi thứ chưa commit trong worktree đó không được giữ lại.

Nó khác các IDE có agent thế nào?

IDE có agent là một trình soạn thảo với agent bên trong. crossweave là lớp nằm dưới các công cụ của bạn: cho mỗi công cụ một worktree và shell cô lập, cho thấy trạng thái của chúng và land phần việc của chúng. Nó không thay trình soạn thảo hay chọn agent thay bạn.

Worktree tốn bao nhiêu ổ đĩa?

Một worktree dùng chung kho đối tượng của repository, nên nó chứa file làm việc của bạn chứ không phải một bản sao lịch sử khác. Thứ phình ra là các dependency cài riêng cho từng worktree (node_modules). Dashboard cho thấy ổ đĩa mỗi session chiếm (là cận dưới khi phép đo còn đang chạy), và cw gc thu hồi các session đã kết thúc.

Vì sao là “crossweave”?

Các agent của bạn chạy như những sợi dọc song song. crossweave là sợi ngang: sợi chéo buộc chúng lại để tấm vải đứng vững.

Thử trên một repository bạn dám mang ra thí nghiệm

Hai worktree, hai shell, một thanh bên. Làm theo phần bắt đầu nhanh.