Giới thiệu
Bạn đã bao giờ cảm thấy "lo lo" khi chạy npm install từ một repository lạ hoắc trên GitHub, hay khi để các AI Agent (như Claude Code, Cursor) tự ý thực thi các lệnh terminal trên máy mình chưa? Một sai lầm nhỏ trong script có thể dẫn đến việc rò rỉ dữ liệu hoặc xóa nhầm file hệ thống.
Fence chính là giải pháp cho vấn đề này. Đây là một công cụ sandbox siêu nhẹ, không cần container (container-free), giúp bao bọc các lệnh CLI trong một môi trường bị hạn chế quyền truy cập mạng và hệ thống tệp.
- Ngôn ngữ chính: Go
- Thống kê: 481 stars, 5 forks
- Mục tiêu: Tạo ra một lớp bảo vệ "defense-in-depth" cho các thao tác dòng lệnh hàng ngày.
Tính năng nổi bật
- Cô lập mạng tuyệt đối: Theo mặc định, Fence chặn toàn bộ kết nối ra bên ngoài. Bạn chỉ có thể cho phép các domain cụ thể thông qua cấu hình.
- Kiểm soát hệ thống tệp: Giới hạn quyền đọc/ghi tại các đường dẫn nhất định, ngăn chặn các lệnh can thiệp vào dữ liệu nhạy cảm.
- Chặn lệnh nguy hiểm: Bạn có thể thiết lập danh sách đen các lệnh không được phép thực thi, ví dụ:
rm -rf /hoặcgit push. - Chế độ giám sát (Monitor mode): Ghi lại các vi phạm (violations) trong thời gian thực mà không làm gián đoạn quy trình làm việc.
- Tích hợp AI Agent: Hỗ trợ cực tốt cho Claude Code, Cursor Agent, Gemini CLI... giúp các "trợ lý" này làm việc an toàn hơn.

Cài đặt
Việc cài đặt Fence rất đơn giản trên macOS và Linux. Bạn có thể sử dụng script cài đặt nhanh:
curl -fsSL https://raw.githubusercontent.com/Use-Tusk/fence/main/install.sh | sh
Hoặc nếu bạn đã cài đặt Go, hãy sử dụng lệnh:
go install github.com/Use-Tusk/fence/cmd/fence@latest
Lưu ý cho người dùng Linux: Bạn cần cài đặt thêm bubblewrap để tính năng sandbox hoạt động ổn định.
Hướng dẫn sử dụng
Chạy lệnh cơ bản
Thử nghiệm chặn truy cập mạng khi chạy lệnh curl:
fence curl https://example.com
# Kết quả sẽ trả về lỗi 403 Forbidden do bị chặn mặc định
Sử dụng Template cho lập trình
Nếu bạn muốn chạy npm install nhưng vẫn muốn an toàn, hãy dùng template code đã được cấu hình sẵn để cho phép truy cập các registry phổ biến:
fence -t code npm install
Cấu hình tùy chỉnh
Bạn có thể tạo file cấu hình tại ~/.config/fence/fence.json để định nghĩa các quy tắc riêng:
{
"network": { "allowedDomains": ["api.github.com"] },
"filesystem": { "allowWrite": ["."] },
"command": { "deny": ["npm publish"] }
}

Kết luận
Ưu điểm
- Cực kỳ nhẹ, khởi động tức thì, không nặng nề như Docker.
- Cấu hình linh hoạt dựa trên JSON.
- Hỗ trợ tốt cho các AI Agent hiện đại.
Nhược điểm
- Cần cài đặt thêm phụ trợ trên Linux (bubblewrap, socat).
- Đang trong giai đoạn phát triển nên cần kiểm tra kỹ trước khi dùng cho các hệ thống production quan trọng.
Fence là công cụ không thể thiếu cho các nhà phát triển thường xuyên làm việc với mã nguồn mở hoặc đang sử dụng AI để hỗ trợ viết code. Hãy thử cài đặt và bảo vệ máy tính của mình ngay hôm nay!
Discussion