Worktrunk: quản lý Git worktree cho nhiều AI agent song song
Worktrunk là CLI giúp quản lý Git worktree theo tên branch, phù hợp khi chạy nhiều AI coding agent trên các task riêng. Tool rút gọn thao tác tạo, chuyển, liệt kê và dọn worktree; đồng thời có hooks, workflow merge và cache chia sẻ.
Bạn có một agent sửa lỗi đăng nhập, một agent nâng cấp dependency, trong khi Claude Code viết test cho API. Nếu tất cả cùng làm trong một thư mục repo, thay đổi chưa commit rất dễ bị lẫn giữa các task.
Git đã có worktree: mỗi nhánh có thể có working directory riêng. Nhưng trải nghiệm dùng Git thuần khá dài dòng. Worktrunk là một CLI quản lý Git worktree, được thiết kế cho tình huống chạy nhiều AI agent song song.
Theo dữ liệu chủ đề, dự án đang có 10.260 stars trên GitHub. Worktrunk không thay Git hay thay AI agent; nó giúp thao tác với worktree gọn hơn để mỗi task có một không gian làm việc riêng.
Vì sao worktree hữu ích khi chạy agent song song?
AI agent như Claude Code và Codex có thể xử lý các tác vụ dài mà không cần giám sát liên tục. Khi chạy nhiều task cùng lúc, Git worktree cho mỗi agent một working directory riêng, tránh việc các agent cùng sửa trong một thư mục.
Với Git thuần, ví dụ tạo worktree mới cho branch feat trong tài liệu Worktrunk là:
bash
git worktree add -b feat ../repo.feat && \
cd ../repo.feat
Bạn cần lặp lại tên branch, tự theo dõi quy ước đường dẫn và tự chuyển sang thư mục vừa tạo.
Worktrunk định danh worktree bằng tên branch và tính đường dẫn từ một template có thể cấu hình. Các lệnh nhận branch cũng có thể nhận đường dẫn của worktree đang checkout branch đó.
Về mặt quy ước làm việc, mô hình “một task, một branch, một thư mục, một phiên agent” giúp team dễ phân biệt thay đổi của từng task hơn.
Cài đặt và bật shell integration
Trên macOS hoặc Linux với Homebrew:
bash
brew install worktrunk && wt config shell install
Hoặc cài bằng Cargo:
bash
cargo install worktrunk && wt config shell install
Tài liệu cho biết shell integration cho phép lệnh thay đổi thư mục hiện hành, điều quan trọng với workflow chuyển qua lại giữa các worktree.
Trên Arch Linux:
bash
sudo pacman -S worktrunk && wt config shell install
Trên Windows, wt mặc định là lệnh của Windows Terminal. Vì vậy, bản cài qua Winget cũng cài Worktrunk với tên git-wt:
bash
winget install max-sixty.worktrunk
git-wt config shell install
Một lựa chọn khác là tắt alias của Windows Terminal tại:
Settings → Apps → Advanced app settings → App execution aliases
Sau đó bạn có thể dùng wt trực tiếp.
Worktrunk cũng được cung cấp qua Conda và Pixi; feedstock Conda được cộng đồng duy trì:
bash
conda install -c conda-forge worktrunk && wt config shell install
Tạo worktree và mở Claude cho một task
Tài liệu minh họa workflow tạo worktree rồi chạy Claude bằng một lệnh:
bash
wt switch -c -x claude feat
Trong bảng so sánh của dự án, đây là thao tác “tạo worktree và khởi chạy Claude” cho branch feat. Bản Git thuần tương ứng là:
bash
git worktree add -b feat ../repo.feat && \
cd ../repo.feat && \
claude
Để chuyển sang worktree theo tên branch:
bash
wt switch feat
Để liệt kê worktree cùng trạng thái:
bash
wt list
README mô tả git worktree list chủ yếu hiển thị đường dẫn, còn wt list là lệnh liệt kê có status.
Khi hoàn tất task, lệnh dọn dẹp cơ bản là:
bash
wt remove
Ví dụ Git thuần trong tài liệu cần chuyển về repo chính, xóa worktree rồi xóa branch:
bash
cd ../repo && \
git worktree remove ../repo.feat && \
git branch -d feat
Tính năng đáng chú ý khi số agent tăng lên
Ba lệnh lõi là switch, list và remove. Worktrunk còn công bố các khả năng mở rộng cho workflow nhiều worktree:
Hooks để chạy lệnh khi tạo worktree, trước merge, sau merge và các thời điểm khác.
LLM commit messages để tạo commit message từ diff.
Merge workflow để squash, rebase, merge và dọn dẹp trong một lệnh.
Interactive picker để duyệt worktree, với CI status dạng streaming cùng preview diff, log, PR và comment.
Checkout pull request trực tiếp:
bash
wt switch pr:123
wt list --full hiển thị CI status và AI-generated summary theo branch.
Aliases và biến trạng thái theo branch để mở rộng lệnh và dùng trong hook template.
Dev server riêng cho mỗi worktree qua filter hashport.
Chia sẻ build cache cho target/, nodemodules/ và các thư mục ignored khác mà không cần build lại hoặc copy. Tài liệu nêu tính năng này dùng copy-on-write trên APFS, btrfs và XFS.
Chia sẻ cache là điểm đáng chú ý với dự án Rust, Node.js hoặc monorepo, nơi mỗi worktree mới có thể cần dependency và artifact build riêng. Tuy vậy, cần kiểm tra filesystem trước khi kỳ vọng tính năng copy-on-write hoạt động.
Đừng bỏ qua giới hạn của worktree
Worktree cô lập working directory, nhưng không tự giải quyết xung đột logic. Hai agent vẫn có thể sửa cùng một module trên hai branch khác nhau; khi merge, bạn vẫn cần review diff và xử lý conflict theo workflow Git thông thường.
Hooks cũng chạy lệnh tự động trên máy local. Trước khi dùng hook để cài dependency, khởi động service hoặc thực hiện merge, hãy review command và phạm vi tác động.
Tài liệu được cung cấp không nêu chi tiết về cách lưu khóa API, nhà cung cấp model, chi phí hoặc giới hạn sử dụng cho tính năng LLM commit message. Nếu dùng tính năng liên quan LLM trong repo công việc, nên kiểm tra cấu hình và chính sách dữ liệu của team trước.
Worktrunk được phát hành theo giấy phép lựa chọn MIT hoặc Apache-2.0.
Kết luận: một “workspace router” cho agent
Nếu bạn chỉ chạy một agent rồi chờ task hoàn tất, Worktrunk có thể chưa tạo khác biệt lớn. Nhưng khi duy trì nhiều task đồng thời, Git worktree trở thành cách thực tế để tách môi trường làm việc của từng agent.
Một checklist ngắn để thử:
Cài Worktrunk và shell integration.
Tạo task thử bằng wt switch -c -x claude feat.
Dùng wt list để kiểm tra các worktree.
Review diff trước khi merge như workflow Git bình thường.
Dùng wt remove khi task kết thúc.
Chỉ thêm hooks, LLM commit message hoặc merge workflow sau khi đã kiểm tra command tự động và chính sách team.
Điểm cốt lõi của Worktrunk là biến thao tác tách worktree thành một phần nhanh, đều tay của workflow chạy AI agent song song.