Ưu, nhược và chỗ chưa rõ
| Ưu | README ghi dcg chặn sẵn các lệnh git và xóa file nguy hiểm mà không cần cấu hình, và có hơn 50 gói luật cho database, Docker, Kubernetes, AWS, Terraform mà bạn bật thêm khi cần. | README, TL;DR |
|---|---|---|
| Ưu | Bài so sánh của Daniel Vaughan (07/2026) nhận xét dcg chạy dưới 1 mili giây nên agent không bị chậm, và nó đọc được cả lệnh giấu trong heredoc như cat <<EOF | bash, chỗ mà các hook so chuỗi đơn giản bỏ sót. | Daniel Vaughan, Codex Knowledge Base |
| Ưu | README ghi mỗi bản phát hành đều có file SHA256, chữ ký minisign và gói cosign, nên bạn có thể tự kiểm binary rồi cài tay mà không cần chạy curl | bash. | README, Manual install |
| Nhược | Giấy phép có điều khoản riêng cấm OpenAI, Anthropic và người làm thay mặt họ dùng phần mềm. Công ty bạn làm dịch vụ cho hai bên này thì nên đọc kỹ file LICENSE trước khi cài. | LICENSE |
| Nhược | Vẫn có báo chặn nhầm: ngày 15/10/2026 một người dùng báo lệnh python3 - <<'PY' trên Linux bị chặn bởi luật dành cho Windows. Tác giả sửa trên nhánh main ngày 20/10, sau bản v0.15.3 (08/10), nên bản v0.15.3 có thể vẫn còn lỗi này. Cùng tuần còn ít nhất ba issue chặn nhầm khác (#548, #561, #567). | Issue #569 |
| Nhược | Tháng 8/2026 Windows Defender trên Windows 11 cách ly dcg.exe vì nghi là trojan (cảnh báo dạng học máy). Tác giả hướng dẫn kiểm SHA256, Microsoft gỡ cảnh báo, và bản v0.12.1 thêm thông tin phiên bản vào file. Binary vẫn chưa có chữ ký Authenticode. | Issue #303 |
| Nhược | README tự ghi giới hạn: dcg không đọc bên trong script khi agent chạy ./deploy.sh, không chặn việc agent ghi file trực tiếp bằng Python hay JavaScript, và không cản được người cố tình lách. | README, Inherent Limitations |
| Chưa rõ | Bài của Daniel Vaughan (07/2026) ghi dcg cho lệnh chạy qua khi phân tích bị quá giờ hoặc lỗi. README ở commit mình đọc (10/2026) ghi quá giờ nay chuyển thành hỏi lại hoặc chặn, còn JSON hook hỏng thì vẫn cho qua trừ khi bật fail_closed. Mình chỉ đọc, chưa chạy thử để biết bản v0.15.3 làm đúng như README hay không. | README, Bounded Failure Policy |
| Chưa rõ | Mỗi lần hook chạy, dcg tự ghi lại mục của nó vào settings.json nếu bị mất. README lại hướng dẫn gỡ dcg bằng cách xóa mục đó. Mình chưa thấy tài liệu nói hai việc này có đụng nhau không; muốn gỡ hẳn thì dùng dcg uninstall hoặc tắt self_heal_hook trước. | src/config.rs |
Khi nên dùng
- Bạn cho agent chạy lệnh shell mà không duyệt từng lệnh, và repo có code chưa commit mà một lệnh git reset --hard hay rm -rf có thể xóa mất.
Khi không nên dùng
- Bạn làm việc cho OpenAI, Anthropic hoặc thay mặt họ (giấy phép cấm), hoặc bạn cần chặn cả việc agent ghi file bằng Python và script bên trong ./deploy.sh: dcg không xem tới những chỗ đó.
Cách cài
V=v0.15.3; T=x86_64-unknown-linux-musl; curl -fLO "https://github.com/Dicklesworthstone/destructive_command_guard/releases/download/$V/dcg-$T.tar.xz" && curl -fLO "https://github.com/Dicklesworthstone/destructive_command_guard/releases/download/$V/dcg-$T.tar.xz.minisig" && minisign -Vm "dcg-$T.tar.xz" -P RWSoYi6NXJWzaRs1mJmOwwXrZfPWcq6MXnQlNMLBYKzlIQTLwuVQG6uO && tar -xJf "dcg-$T.tar.xz" && install -m 0755 dcg ~/.local/bin/dcg && dcg installTheo tài liệu của tác giảcurl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/efbd488cfba91520e9959eccfd829b01461c31bb/install.sh" | bash -s -- --easy-mode --version v0.15.3Theo tài liệu của tác giả& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/efbd488cfba91520e9959eccfd829b01461c31bb/install.ps1"))) -EasyMode -Verify -Version v0.15.3Theo tài liệu của tác giảNó chạm vào những gì
- File đọc và ghi
- Lệnh `dcg install` (và script cài) ghi một mục PreToolUse vào ~/.claude/settings.json (hoặc $CLAUDE_CONFIG_DIR/settings.json), ~/.codex/hooks.json và file hook của các agent khác nó tìm thấy trên máy. Mỗi lần hook chạy trong Claude Code, dcg kiểm tra lại settings.json và tự thêm lại mục của nó nếu bị mất (tắt bằng self_heal_hook = false hoặc DCG_NO_SELF_HEAL). Cấu hình ở ~/.config/dcg/config.toml. Lịch sử lệnh (SQLite) chỉ ghi khi bạn bật [history] enabled = true. File cache ~/.cache/dcg/version_check.json.
- Gọi mạng
- Hook không gọi mạng. Khi bạn tự gõ lệnh dcg trong terminal, nó hỏi GitHub Releases API (repo Dicklesworthstone/destructive_command_guard) tối đa một lần mỗi 24 giờ để báo có bản mới; tắt bằng check_updates = false hoặc DCG_NO_UPDATE_CHECK=1. Script cài tải binary từ github.com/releases và có thể tải rustup nếu phải build từ mã nguồn.
- Script lúc cài
- install.sh / install.ps1 tải binary, kiểm SHA256 (bắt buộc), minisign và cosign (nếu có trên máy), thêm vào PATH, ghi hook cho mọi agent tìm thấy, và xóa bản Python cũ git_safety_guard.py nếu có.
- Tiến trình
- Mỗi lệnh Bash, PowerShell hoặc Monitor của Claude Code chạy qua binary dcg trước. Có thêm chế độ dcg mcp-server, chỉ chạy khi bạn tự cấu hình.
Đọc từ: config.rs#L1953-L1961, cli.rs#L2459-L2489, update.rs#L543-L557, update.rs#L955-L970, README.md#command-history, install.sh
Mục này chạy mã trên máy bạn với quyền của tài khoản bạn. Theo tài liệu Claude Code, hook và MCP server chạy ngoài sandbox. Đọc phần trên và file của tác giả trước khi cài. Tài liệu bảo mật plugin
