Docs
HomeClaude Code PRO
Blog

Getting Started

  • Documentation
  • Claude Code Setup
  • Claude Code Configuration
  • Claude Code Security

Claude Code PRO

  • guideCheatsheet
  • skill/apex
  • skill/brainstorm
  • skill/debug
  • skill/clean-code
  • skill/review-code
  • skill/ci-fixer
  • skill/claude-memory
  • skill/create-prompt
  • skill/create-slash-commands
  • skill/prompt-creator
  • skill/create-skills-workflow
  • skill/skill-creator
  • skill/hook-creator
  • skill/subagent-creator
  • scriptStatusline
  • scriptCommand Validator
  • scriptAuto-Rename Session
  • scriptClaude Code AI
  • agentSnipper
  • agentCode Reviewer
  • agentExplore Codebase
  • agentExplore Docs
  • agentAction
  • agentWeb Search
  • cmd/oneshot
  • cmd/refactor
  • cmd/ultrathink
  • cmd/commit
  • cmd/create-pr
  • cmd/fix-pr-comments
  • cmd/merge
  • cmd/fix-errors
  • cmd/utils/fix-grammar
  • cmd/copywriting

Command Validator

Security validation hook that blocks dangerous bash commands.

Security validation hook that blocks dangerous bash commands before execution.

Features

  • Blocks destructive commands (rm -rf /, dd, mkfs)
  • Detects privilege escalation (sudo, chmod)
  • Protects system paths (/etc, /usr, /bin)
  • Validates command chains (&&, ||, ;)
  • Logs blocked commands to data/security.log

Protected Commands

CategoryCommands
Criticaldel, format, mkfs, shred, dd, fdisk
Privilegesudo, su, passwd, chmod, chown
Networknc, netcat, nmap, telnet, ssh-keygen
Systemsystemctl, service, kill, mount

Protected Paths

  • /etc/, /usr/, /sbin/, /boot/
  • /sys/, /proc/, /dev/, /root/

Commands

CommandDescription
validator:cliRun validator CLI
validator:testRun tests
validator:lintLint code

Setup

Add to ~/.claude/settings.json:

JSON
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bun ~/.claude/scripts/command-validator/src/cli.ts"
          }
        ]
      }
    ]
  }
}

Programmatic Usage

TYPESCRIPT
import { CommandValidator } from "./src/lib/validator";

const validator = new CommandValidator();
const result = validator.validate("rm -rf /");

if (!result.isValid) {
  console.log(`Blocked: ${result.violations.join(", ")}`);
  console.log(`Severity: ${result.severity}`);
}
StatuslineAuto-Rename Session