- Môi trường máy ảo Linux nhẹ để chạy AI agent, hoạt động dựa trên Virtualization.framework của macOS. Không cần Docker
- Mọi lần chạy đều mặc định bắt đầu ở chế độ dùng một lần (Ephemeral), nên mọi cài đặt hoặc thay đổi sẽ tự động được đặt lại khi kết thúc
- Thông qua tính năng Checkpoint, có thể lưu trạng thái đĩa dưới dạng snapshot và khôi phục, phân nhánh, tái sử dụng
- Có thể kiểm soát chi tiết mạng, CPU, bộ nhớ, kích thước đĩa bằng tùy chọn dòng lệnh hoặc tệp cấu hình
- Cung cấp môi trường sandbox cục bộ an toàn và có thể tái lập cho việc chạy mã AI, cài đặt gói, đánh giá và kiểm thử
Tổng quan về sandbox local-first shuru
- Cấu trúc chạy Linux VM nhẹ cho AI agent trên macOS
- Sử dụng Apple Virtualization.framework để mang lại tốc độ native ARM64 không cần giả lập
- Không phụ thuộc Docker và mặc định là kiểu chạy tạm thời (Ephemeral)
- Mỗi lần chạy bắt đầu từ rootfs sạch, và mọi thay đổi sẽ không được giữ lại trừ khi được lưu
Quản lý trạng thái và snapshot
- Có thể lưu trạng thái đĩa thành snapshot có tên bằng tính năng Checkpoint
- Snapshot đã lưu có thể được khôi phục, phân nhánh và chạy lặp lại
- Có thể quản lý phiên bản môi trường như Git commit
- Ví dụ lệnh:
$ shuru checkpoint create myenv --allow-net -- sh -c 'apk add nodejs npm' → lưu snapshot myenv
$ shuru run --from myenv -- node -e 'console.log("ready")' → chạy ngay trong môi trường đã lưu
Tính năng CLI
- Cung cấp giao diện CLI đơn giản để khởi động và tắt VM bằng một lệnh duy nhất
$ shuru run -- echo "hello from the sandbox" → chạy lệnh bên trong sandbox
$ shuru run -- cat /etc/os-release | head -1 → kiểm tra môi trường Alpine Linux
- Truy cập mạng bị tắt theo mặc định, có thể bật NAT bằng cờ
--allow-net
- Thiết lập tài nguyên: điều chỉnh môi trường chạy bằng các tùy chọn
--cpus, --memory, --disk-size
- Hỗ trợ port forwarding: có thể kết nối giữa host và guest theo dạng
-p 8080:8000
Chạy và ứng dụng cho AI agent
- Cung cấp môi trường VM cô lập để chạy mã do AI tạo ra
- Có thể kiểm tra đầu ra theo thời gian thực
- Thực hiện an toàn cài đặt gói, biên dịch mã, sử dụng công cụ hệ thống
- Có thể thực hiện đánh giá nhất quán giữa các môi trường bằng chạy sandbox song song
- Có thể dùng như môi trường Linux dùng một lần cho kiểm thử, gỡ lỗi, tạo prototype
Cài đặt và bắt đầu
- Cả cài đặt và chạy đều có thể thực hiện bằng một lệnh duy nhất
- Với khởi tạo nhanh và môi trường có thể hủy bỏ, công cụ cung cấp không gian chạy an toàn cho cả nhà phát triển lẫn hệ thống AI
1 bình luận
Ý kiến trên Hacker News
Điều quan trọng ở đây không phải bản thân “VM cục bộ”, mà là hướng mặc định bị đảo ngược
Hầu hết các hệ thống mặc định là trạng thái liên tục và có kết nối mạng, còn cái này thì ngược lại: mặc định là môi trường tạm thời và bị cô lập
Sự khác biệt này khá quan trọng khi chạy mã không đáng tin cậy
Tôi đang nghĩ đến việc làm một phiên bản local-first của microterm.dev cho macOS
Mục tiêu là giữ cùng một môi trường trên mọi mục tiêu, chỉ khác về tốc độ và dung lượng RAM
Tôi đang dùng terminal alpine trên điện thoại và thực sự rất muốn biết liệu nó chạy trong trình duyệt hay không
Tôi thắc mắc “local first” ở đây nghĩa là gì. Chỉ đơn giản là chạy trên máy cục bộ thôi sao?
Các dịch vụ như E2B, sprites.dev cung cấp sandbox trên đám mây, còn shuru dùng Virtualization.framework của Apple để chạy VM cục bộ
Tức là dữ liệu không rời khỏi máy Mac
Stack tác tử đang dần được chia thành một cấu trúc tầng lớp chuyên biệt hơn, và sandboxing đang phát triển thành một mảng độc lập
Có những ví dụ như Shuru, E2B, Modal, các wrapper cho Firecracker
Trong bài tôi từng viết “Don’t go monolithic — the agent stack is stratifying”, tôi cũng đã nói về sự thay đổi cấu trúc này và giới hạn của cách tiếp cận monolithic
Nếu không lưu lại ngữ cảnh của các quyết định thiết kế do lập trình viên và AI cùng đưa ra, thì thông tin quan trọng sẽ bị mất
Tuy vậy, tôi không chắc bài này có liên hệ trực tiếp đến chủ đề micro VM hay không
Tôi tò mò nó khác gì so với dự án container của Apple
Dòng chảy đổi mới trong lĩnh vực này thật thú vị
Trong khi đó, shuru tập trung vào micro VM có tính năng checkpoint nên phạm vi đơn giản hơn nhiều
Tôi thắc mắc có trường hợp nào triển khai thứ như thế này cho Windows không
WSL cần thiết lập khi phân phối ứng dụng cho người dùng phổ thông, nên không phù hợp cho sản phẩm hướng người tiêu dùng
Dự án này thật sự rất hay. Tôi đã chờ một micro VM dựa trên Virtualization.framework suốt mấy tháng rồi
Docker cũng ổn, nhưng vấn đề là overhead khá lớn
Tôi thích việc mặc định là tạm thời và tắt mạng
Tôi cũng tò mò liệu có kế hoạch thêm tính năng ánh xạ thư mục host hay không
Tôi đang vận hành một máy chủ MCP cho sandbox ephemeral hỗ trợ nhiều backend (Docker, E2B, Modal, WASM, v.v.), nên định thử tích hợp cái này vào
Liên kết dự án Kilntainers
Tôi tò mò nó có ưu điểm gì so với Lima
Khác biệt nằm ở mặc định và mức độ đơn giản của thiết lập ban đầu
shuru cung cấp sẵn mặc định VM tạm thời, tắt mạng, và rootfs sạch sau mỗi lần chạy
Không cần file cấu hình, chỉ cần nhập
shuru runlà chạy ngayCheckpoint và branching cũng được tích hợp sẵn trong CLI
Lima là dự án lớn hơn và trưởng thành hơn nhiều, nhưng shuru đang được phát triển như một công cụ đơn giản, phù hợp để học tập
Tôi đã tìm thứ như thế này cho một dự án mới
Thứ tôi đang làm là một công cụ kết hợp retool + OpenClaw, là giải pháp giúp các doanh nghiệp vừa và nhỏ xây dựng ứng dụng nội bộ nhanh hơn
Shuru thật sự rất tuyệt
Tôi cũng đang phát triển một công cụ dựa trên MicroVM cho Linux với ý tưởng tương tự
Mặc định là offline, chưa đến giai đoạn công khai, nhưng nội bộ thì đã dogfooding rồi