Skip to content

yurukusa/cc-safe-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cc-safe-setup

npm version npm downloads tests

One command to make Claude Code safe for autonomous operation.

Not just a destructive command blocker — 8 hooks covering safety, quality, monitoring, and developer experience.

npx cc-safe-setup

Installs 8 production-tested safety hooks in ~10 seconds. Zero dependencies. No manual configuration.

  cc-safe-setup
  Make Claude Code safe for autonomous operation

  Prevents real incidents:
  ✗ rm -rf deleting entire user directories (NTFS junction traversal)
  ✗ Untested code pushed to main at 3am
  ✗ Force-push rewriting shared branch history
  ✗ API keys committed to public repos via git add .
  ✗ Syntax errors cascading through 30+ files
  ✗ Sessions losing all context with no warning

  Hooks to install:

  ● Destructive Command Blocker
  ● Branch Push Protector
  ● Post-Edit Syntax Validator
  ● Context Window Monitor
  ● Bash Comment Stripper
  ● cd+git Auto-Approver
  ● Secret Leak Prevention

  Install all 8 safety hooks? [Y/n] Y

  ✓ Done. 8 safety hooks installed.

Why This Exists

A Claude Code user lost their entire C:\Users directory when rm -rf followed NTFS junctions. Another had untested code pushed to main at 3am. API keys got committed via git add .. Syntax errors cascaded through 30+ files before anyone noticed.

Claude Code ships with no safety hooks by default. This tool fixes that.

What Gets Installed

Hook Prevents Related Issues
Destructive Guard rm -rf /, git reset --hard, git clean -fd, git checkout --force, sudo + destructive, NFS mount detection #36339 #36640
Branch Guard Pushes to main/master + force-push (--force) on all branches
Secret Guard git add .env, credential files, git add . with .env present #6527
Syntax Check Python, Shell, JSON, YAML, JS errors after edits
Context Monitor Session state loss from context window overflow (40%→25%→20%→15% warnings)
Comment Stripper Bash comments breaking permission allowlists #29582
cd+git Auto-Approver Permission prompt spam for cd /path && git log #32985 #16561
API Error Alert Silent session death from rate limits or API errors — desktop notification + log

Each hook exists because a real incident happened without it.

How It Works

  1. Writes hook scripts to ~/.claude/hooks/
  2. Updates ~/.claude/settings.json to register the hooks
  3. Restart Claude Code — hooks are active

Safe to run multiple times. Existing settings are preserved. A backup is created if settings.json can't be parsed.

Preview first: npx cc-safe-setup --dry-run

Check status: npx cc-safe-setup --status — see which hooks are installed (exit code 1 if missing).

Verify hooks work: npx cc-safe-setup --verify — sends test inputs to each hook and confirms they block/allow correctly.

Uninstall: npx cc-safe-setup --uninstall — removes all hooks and cleans settings.json.

Requires: jq for JSON parsing (brew install jq / apt install jq).

Note: Hooks are skipped when Claude Code runs with --bare or --dangerously-skip-permissions. These modes bypass all safety hooks by design.

Known limitation: In headless mode (-p / --print), hook exit code 2 may not block tool execution (#36071). For CI pipelines, use interactive mode with hooks rather than -p mode.

Before / After

Run npx cc-health-check to see the difference:

Before After
Safety Guards 25% 75%
Overall Score 50/100 95/100
Destructive commands Unprotected Blocked
Force push Allowed Blocked
.env in git Possible Blocked
Context warnings None 4-stage alerts

Configuration

Variable Hook Default
CC_ALLOW_DESTRUCTIVE=1 destructive-guard 0 (protection on)
CC_SAFE_DELETE_DIRS destructive-guard node_modules:dist:build:.cache:__pycache__:coverage
CC_PROTECT_BRANCHES branch-guard main:master
CC_ALLOW_FORCE_PUSH=1 branch-guard 0 (protection on)
CC_SECRET_PATTERNS secret-guard .env:.env.local:credentials:*.pem:*.key
CC_CONTEXT_MISSION_FILE context-monitor $HOME/mission.md

After Installing

Verify your setup:

npx cc-health-check

Full Kit

cc-safe-setup gives you 8 essential hooks. For the complete autonomous operation toolkit:

Claude Code Ops Kit — 16 hooks + 5 templates + 3 exclusive tools + install.sh. Production-ready in 15 minutes.

Or start with the free hooks: claude-code-hooks

Examples

Need custom hooks beyond the 8 built-in ones? See examples/ for ready-to-use recipes:

  • auto-approve-git-read.sh — Auto-approve git status, git log, even with -C flags
  • auto-approve-ssh.sh — Auto-approve safe SSH commands (uptime, whoami, etc.)
  • enforce-tests.sh — Warn when source files change without corresponding test files
  • notify-waiting.sh — Desktop notification when Claude Code waits for input (macOS/Linux/WSL2)
  • edit-guard.sh — Block Edit/Write to protected files (defense-in-depth for #37210)
  • auto-approve-build.sh — Auto-approve npm/yarn/cargo/go/python build, test, and lint commands
  • auto-approve-docker.sh — Auto-approve docker build, compose, ps, logs, and other safe commands

Learn More

FAQ

Q: I installed hooks but Claude says "Unknown skill: claude-code-hooks:setup"

cc-safe-setup installs hooks, not skills or plugins. Hooks run automatically in the background — you don't invoke them manually. After install + restart, try running a dangerous command; the hook will block it silently.

Q: cc-health-check says to run cc-safe-setup but I already did

cc-safe-setup covers Safety Guards (75-100%) and Monitoring (context-monitor). The other health check dimensions (Code Quality, Recovery, Coordination) require additional CLAUDE.md configuration or manual hook installation from claude-code-hooks.

Q: Will hooks slow down Claude Code?

No. Each hook runs in ~10ms. They only fire on specific events (before tool use, after edits, on stop). No polling, no background processes.

Contributing

Found a false positive? Open an issue. Want a new hook? Open a feature request.

If cc-safe-setup saved your project from a destructive command, consider giving it a star — it helps others find this tool.

License

MIT

About

One command to make Claude Code safe for autonomous operation. 8 hooks: destructive blocker, branch guard, secret guard, syntax check, context monitor, and more. 82 tests.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors