devvm là gì?
devvm tạo một máy ảo độc lập cho từng thư mục dự án. Máy ảo chứa các toolchain mà dự án cần và cung cấp một sandbox, nơi bạn hoặc coding agent có thể làm việc mà không cần cài trực tiếp agent trên máy chủ.
Mỗi máy ảo chạy thông qua Lima. Theo mặc định, devvm chỉ mount thư mục dự án đã chọn và hiển thị thư mục đó bên trong máy ảo tại cùng đường dẫn được sử dụng trên máy chủ. Chạy lại devvm trong thư mục đó sẽ mở lại chính máy ảo trước đó.
Tính năng chính
- Một máy ảo cho mỗi dự án: Mỗi thư mục dự án có một môi trường độc lập riêng.
- Tự động phát hiện toolchain: devvm kiểm tra các tệp dự án để xác định những toolchain cần thiết. Ví dụ, dự án chứa
package.jsonsẽ được cung cấp các công cụ Node.js. - Hỗ trợ coding agent: Claude Code, Codex, opencode và pi có thể chạy bên trong máy ảo cùng với các thiết lập, skill và máy chủ MCP của chúng.
- Mạng được kiểm soát: Máy ảo mới mặc định sử dụng tầng mạng allowlist và chỉ có thể kết nối đến các host đã được phê duyệt.
- Bí mật ở phía máy chủ: Thông tin xác thực như token GitHub và Claude Code vẫn nằm trên máy chủ ở mọi tầng mạng.
- Image có thể tái sử dụng: Máy ảo được sao chép từ một image cơ sở, còn các toolchain được chia sẻ ở chế độ chỉ đọc giữa các máy ảo. Sau lần thiết lập ban đầu, máy ảo mới có thể khởi động trong vài giây.
- Layer tùy chọn: Các layer tích hợp gồm
docker,nixvàdesktop. Bạn cũng có thể tạo layer riêng. - Chế độ clone: Máy ảo có thể làm việc trên bản clone Git riêng thay vì mount working tree trên máy chủ.
Yêu cầu hệ thống
devvm hỗ trợ macOS 13 trở lên và Linux trên arm64 hoặc x86_64. Công cụ này yêu cầu Lima 2.2 trở lên cùng các yêu cầu của Lima tương ứng. Dự án được kiểm thử trên máy Mac dùng Apple silicon và các hệ thống Linux sử dụng arm64 và x86_64, nhưng chưa được kiểm thử trên máy Mac dùng Intel.
Cài đặt devvm
Cài đặt trên macOS bằng Homebrew
Công thức Homebrew sẽ cài đặt devvm và Lima:
brew trust --formula devvmhq/tap/devvm
brew install devvmhq/tap/devvmCài đặt trên Linux
Chạy script cài đặt chính thức:
curl -fsSL https://github.com/devvmhq/devvm/releases/latest/download/install.sh | bashScript này cũng hoạt động trên macOS. Trước khi cài đặt Lima, QEMU hoặc truy cập /dev/kvm, script sẽ yêu cầu bạn xác nhận.
Mỗi bản phát hành được ký bằng khóa minisign của devvm:
RWSjzFsn7ETaijKJ2y7F4DtZobXmyv+LmdclJwZP/KmAkLUwOCzWF/2b. Hãy xem hướng dẫn xác minh script cài đặt nếu bạn muốn xác minh bản tải xuống trước khi chạy.
Kiểm tra quá trình cài đặt
Sau khi cài đặt, hãy chạy lệnh chẩn đoán:
devvm doctorLệnh này kiểm tra những gì devvm cần trên máy tính của bạn và giải thích cách cài đặt mọi thành phần còn thiếu. Xem hướng dẫn cài đặt đầy đủ để biết tất cả yêu cầu và tùy chọn trình cài đặt.
Tạo máy ảo đầu tiên cho dự án
- Mở thư mục dự án. Trong terminal, chuyển đến thư mục chứa dự án.
- Chạy devvm. Xem lại cấu hình máy ảo được đề xuất và xác nhận.
- Làm việc bên trong máy ảo. devvm mở một shell với dấu nhắc bắt đầu bằng
(devvm).
cd ~/some-project
devvmdevvm phát hiện các toolchain được yêu cầu trong các tệp của dự án. Trước khi tạo máy ảo, bạn cũng có thể tùy chỉnh toolchain, coding agent, layer, tầng mạng và kích thước của máy ảo.
Lần chạy đầu tiên sẽ đặt một số câu hỏi để thiết lập giá trị mặc định cho các máy ảo mới và image cơ sở. Các tùy chọn này gồm kích thước máy ảo mặc định, coding agent và các thành phần bổ sung tùy chọn của image cơ sở. Việc xây dựng image cơ sở chỉ mất vài phút một lần; các máy ảo dự án về sau thường khởi động trong vài giây.
Mở lại cùng máy ảo
Quay lại thư mục dự án và chạy lại lệnh tương tự:
cd ~/some-project
devvmVì mỗi thư mục dự án lưu máy ảo riêng, devvm sẽ mở lại môi trường hiện có thay vì tạo một máy ảo không liên quan.
Chạy coding agent
Sau khi shell của máy ảo mở, hãy khởi động một agent được hỗ trợ từ bên trong máy ảo. Ví dụ, chạy Claude Code bằng lệnh:
claudeCách này giữ coding agent bên trong sandbox thay vì cài đặt agent trên máy chủ. devvm lưu các thiết lập và thông tin đăng nhập của những agent được hỗ trợ trong kho lưu trữ riêng.
Đăng nhập Claude Code
Trước khi khởi động Claude Code lần đầu, hãy bắt đầu quy trình đăng nhập từ máy ảo:
devvm agent login claudeThông tin đăng nhập được lưu trên máy tính của bạn. Xem hướng dẫn đăng nhập Claude Code để biết thêm chi tiết.
Nhập cấu hình agent hiện có
Nếu bạn đã sử dụng một coding agent được hỗ trợ trên máy chủ, devvm có thể sao chép cấu hình hiện có của agent đó vào kho lưu trữ riêng:
devvm agent importTính năng này dùng để đưa vào các thiết lập được sử dụng bởi một agent cục bộ hiện có. Các tích hợp được hỗ trợ gồm Claude Code, Codex, opencode và pi.
Bảo vệ working tree bằng chế độ clone
Ở chế độ mặc định, trình soạn thảo trên máy chủ và máy ảo dùng chung các tệp dự án đã mount. Vì vậy, những thay đổi được thực hiện bên trong máy ảo sẽ xuất hiện trong cùng working tree.
Để tách biệt mạnh hơn, hãy khởi động devvm với --clone. Khi đó, VM sẽ nhận một bản sao riêng của kho lưu trữ, ngăn các tiến trình bên trong truy cập cây làm việc của máy chủ hoặc thư mục .git của máy chủ.
devvm --cloneSau khi hoàn tất công việc và commit bên trong VM, hãy lấy các thay đổi trên máy chủ thông qua remote devvm:
git fetch devvmCác nhánh đã lấy sẽ có sẵn dưới những tên như devvm/main. Hãy xem xét sự khác biệt trước khi hợp nhất:
git log -p main..devvm/mainQuy trình này đảm bảo công việc trong VM chỉ được đưa vào kho lưu trữ của bạn khi bạn chủ động lấy các thay đổi. Xem Làm việc trên bản sao để biết toàn bộ quy trình.
Mẹo cấu hình nâng cao
Lựa chọn bộ công cụ một cách có chủ đích
Tính năng tự động phát hiện cung cấp một điểm khởi đầu hữu ích, nhưng hãy xem xét thiết lập được đề xuất trước khi tạo VM. Quy trình tạo cho phép bạn tùy chỉnh các bộ công cụ khi lựa chọn được phát hiện không phù hợp với môi trường dự kiến của bạn. Tài liệu về bộ công cụ liệt kê các tùy chọn được hỗ trợ.
Thêm các lớp môi trường
Sử dụng các lớp tích hợp docker, nix hoặc desktop khi dự án yêu cầu những khả năng đó. Để bắt đầu định nghĩa một lớp tùy chỉnh, hãy dùng:
devvm layer newXem tài liệu về các lớp trước khi tùy chỉnh image.
Xem xét quyền truy cập mạng
VM mới mặc định nhận tầng mạng allowlist. Hãy giữ danh sách máy chủ có thể truy cập ở mức hẹp nhất có thể, đặc biệt khi chạy một tác nhân lập trình tự động. Các tầng mạng khác được mô tả trong hướng dẫn an toàn mạng.
Hiểu ranh giới sandbox
VM giúp giảm rủi ro, nhưng không loại bỏ mọi lỗ hổng bảo mật. Hãy hiểu những gì VM có thể truy cập, tránh để lộ các tài nguyên không cần thiết và xem xét các thay đổi được tạo ra trước khi chấp nhận. Đọc Giữ an toàn trước khi giao cho VM một dự án quan trọng.
Tham khảo tài liệu CLI
Để biết các lệnh, cờ và đối số ngoài phạm vi hướng dẫn này, hãy sử dụng tài liệu tham khảo CLI chính thức. Tài liệu sử dụng tổng quát hơn cũng đề cập đến cổng, kích thước VM, liên kết giữa các VM, SSH, trình soạn thảo, image và khắc phục sự cố.
Kết luận
devvm cung cấp một cách thiết thực để dành cho mỗi dự án một môi trường phát triển biệt lập. Hãy cài đặt công cụ, kiểm tra máy chủ bằng devvm doctor, chạy devvm từ thư mục dự án và khởi động tác nhân lập trình bên trong shell được tạo ra. Với công việc nhạy cảm, hãy kết hợp mạng bị hạn chế với devvm --clone và xem xét các thay đổi đã lấy trước khi hợp nhất.
