- Công cụ cho phép chạy tác nhân AI coding với toàn quyền hệ thống nhưng vẫn ngăn rủi ro làm hỏng thư mục home của người dùng
- Các AI CLI chính như Claude Code, Codex, Gemini CLI, OpenCode được cấu hình sẵn để có thể chạy ở “chế độ YOLO”
- Chỉ mount thư mục dự án bên trong container Docker hoặc Podman, còn thư mục home mặc định bị loại trừ
- Bên trong container cung cấp quyền sudo và volume bền vững để giữ lại công cụ và cấu hình giữa các phiên
- Cung cấp môi trường sandbox cô lập để lập trình viên thử nghiệm an toàn các tính năng tự động hóa AI
Tổng quan
- Yolobox là công cụ chạy tác nhân AI coding bên trong container, giúp bảo vệ hệ thống nhưng vẫn cấp toàn quyền thực thi
- Ngay cả khi AI vô tình chạy lệnh phá hoại như
rm -rf ~ trong lúc thực thi lệnh, thư mục home vẫn không bị ảnh hưởng
- Thư mục dự án được mount vào
/workspace, còn thư mục home mặc định không được mount
- Công cụ và cấu hình được giữ lại giữa các phiên nhờ volume bền vững
Thành phần và tính năng chính
- Bên trong container, tác nhân AI có quyền sudo và có thể tự do chạy lệnh
- Image mặc định bao gồm
- AI CLI: Claude Code, Gemini CLI, OpenAI Codex, OpenCode (tất cả đều được thiết lập ở chế độ tự động chạy)
- Môi trường phát triển: Node.js 22, Python 3, make, cmake, gcc, Git, GitHub CLI
- Tiện ích: ripgrep, fd, fzf, jq, vim
- Khi cần, người dùng có thể tự cài thêm gói bằng sudo
Cách chạy và lệnh
- Dùng lệnh
yolobox để vào shell sandbox
- Có thể chạy một lệnh đơn với
yolobox run
- Cung cấp các lệnh quản lý như
yolobox upgrade, yolobox config, yolobox reset --force, yolobox version
- Các cờ chính
--runtime: chọn docker hoặc podman
--no-network: tắt mạng
--readonly-project: mount dự án ở chế độ chỉ đọc
--claude-config: sao chép cấu hình Claude từ host vào container
Mô hình bảo mật
- Dùng cách ly container làm ranh giới bảo mật
- Container tách biệt filesystem, tiến trình và mạng thông qua Linux namespace
- AI có quyền root bên trong container nhưng không thể truy cập hệ thống bên ngoài
- Các thành phần được bảo vệ
- Thư mục home, khóa SSH, thông tin xác thực, dotfiles, các dự án khác, file hệ thống của host
- Các thành phần không được bảo vệ
- Thư mục dự án (mặc định có thể đọc/ghi)
- Truy cập mạng (có thể chặn bằng tùy chọn)
- Lỗ hổng kernel hoặc các cuộc tấn công thoát container
Các bước tăng cường bảo mật
- Chế độ mặc định: cách ly container tiêu chuẩn
- Cấp 2: giảm bề mặt tấn công bằng tùy chọn
--no-network --readonly-project
- Cấp 3: dùng Rootless Podman để loại bỏ đặc quyền root trên host
- root trong container được ánh xạ thành người dùng thường trên host, giúp giảm thiểu thiệt hại nếu bị thoát ra ngoài
- Cấp 4: chạy trong VM để loại bỏ việc chia sẻ kernel
- Trên macOS có thể dùng UTM, Parallels, Lima; trên Linux có thể dùng Podman machine hoặc VM chuyên dụng
Cách ly mạng
- Rootless Podman mặc định dùng mạng slirp4netns để tách khỏi mạng của host
- Có thể chặn truy cập mạng cục bộ bằng cấu hình
allow_host_loopback=false
Giấy phép và thông tin khác
- Phát hành theo giấy phép MIT
- Thành phần ngôn ngữ của kho mã: Go 75.9%, Dockerfile 13.6%, Shell 8.7%, Makefile 1.8%
- Tên gọi “Yolobox” bắt nguồn từ tinh thần “YOLO (You Only Live Once)”, mang ý nghĩa chạy AI tự do nhưng trong môi trường cách ly an toàn
1 bình luận
Ý kiến trên Hacker News
Gần đây tôi đã làm một dự án tương tự tên là Litterbox (trang demo)
Chỉ dành cho Linux vì nó phụ thuộc vào Podman. Thay vào đó, nó có những ưu điểm phù hợp với nhu cầu của tôi
Tôi cũng đang thử nghiệm thứ tương tự.
Sẽ tốt hơn nếu README giải thích rõ cách nó hoạt động và ranh giới tin cậy (dựa trên Docker container). Vẫn có rủi ro thoát khỏi container vì có thể khai thác lỗ hổng kernel
Tôi đang dùng Rootless Podman và
slirp4netnsđể giảm tối đa truy cập mạng.Bước tiếp theo là dùng Podman machine để tách hẳn kernel, nhưng mount volume không hoạt động tốt
Có người đề xuất nên thêm Ba định luật robot của Asimov vào
agents.mdhoặcclaude.mdclaude.md, mô hình sẽ nhận khái niệm đó theo kiểu “gieo vào đầu”. Các model đời cũ từng cho ra kết quả kỳ quặc khi bảo “đừng dùng từ con voi”, vì chúng lại quá chú ý đến chính từ đóKhuyên nên xem Shai. Nó chạy cục bộ và có thể kiểm soát quyền truy cập thư mục cũng như lưu lượng mạng
shai -rw .cho phép đọc/ghi thư mục hiện tại,shai -u rootcó thể chạy dưới người dùng khácShai theo triết lý chặn mặc định, chỉ cho phép khi được bật rõ ràng (opt-in). Tôi khuyên nên chia sẻ
.shai/config.yamltrong repo để cả nhóm dùng cùng cấu hình--no-networkTôi đang phát triển yolo-cage. Nếu Yolobox tập trung vào việc bảo vệ máy cục bộ, thì yolo-cage tập trung vào ngăn rò rỉ bí mật và cộng tác đa agent
Nó chạy trên Kubernetes và quét toàn bộ lưu lượng egress để ngăn rò rỉ API key hay token.
Nó buộc cách ly Git branch để agent không thể tự merge PR của chính nó — “agent đưa ra đề xuất, con người phê duyệt”
Nó cũng tích hợp framework kiểm tra thoát ly, buộc Claude tự thử cách trốn thoát. Prompt đó nằm ngay trong repo để xác minh agent có phải là thật hay không
Tôi thắc mắc vì sao cần gắn nhãn “claude” vào commit. Người ta đâu có ghi kiểu OS hay phiên bản vim. LLM rốt cuộc chỉ là công cụ biên dịch tiếng Anh thành mã
Tôi cũng từng thử cách tương tự. Tôi đã làm Toadbox với thêm một số tính năng tiện lợi
Có rất nhiều bàn luận về sandbox cho AI, nhưng thực ra Claude Code, Codex, Gemini CLI đã có sandbox tích hợp sẵn
Tôi đang dùng Apple Container Framework để triển khai thứ tương tự. Không biết bạn đã xem qua chưa
Tuy vậy, nó thiếu tương thích Docker API và khả năng kết hợp. Tôi đã tổng hợp thảo luận liên quan ở đây
Ban đầu tôi định chạy Shai trên Apple Container nhưng đã bỏ cuộc vì vấn đề đóng gói
Tôi cũng đang làm thứ tương tự → sandbox-codex
Vẫn đang trong quá trình phát triển, và độ dễ đọc của log tmux còn kém. Vì Docker không phải sandbox hoàn chỉnh nên tôi chạy trên VirtualBox