
AI coding assistants like Claude Code are transforming how developers build software — automating refactors, running tests, and even deploying code. But with great power comes great risk: one misconfigured permission or careless flag can wipe out an entire project.
Developers have already shared horror stories of agents deleting databases, overwriting configs, or corrupting source code. The problem isn’t Claude itself — it’s how we configure its permissions.
This guide shows how to secure Claude Code agents using project-scoped permissions, sandbox isolation, automated backups, and real-time monitoring tools like ccstatusline, so you can work faster without risking your system.
⚠️ The Real Danger: System-Wide Permissions
Claude Code includes a robust permission framework that requests approval before making changes. Unfortunately, some users bypass this protection with:
--dangerously-skip-permissions
Also known as “YOLO mode,” it gives Claude unrestricted control of your environment — effectively removing every safety check.
What Can Go Wrong
- Databases dropped without backups
.envand credential files overwritten- Source files deleted or corrupted
- Production configs modified unexpectedly
Once you remove guardrails, even a single incorrect command can cascade into system-wide damage.
🧩 Understanding Claude Code’s Permission Model
Claude’s permission model operates on three granular levels:
| Permission | Description |
|---|---|
| Allow | Agent performs actions autonomously |
| Ask | Requires explicit user approval |
| Deny | Action is fully blocked |
By default, Claude operates in read-only mode and prompts for approval before executing sensitive commands — a secure, least-privilege starting point.
🛡️ Project-Scoped Permissions: The Smart Default
Rather than granting system-wide access, scope permissions to the specific project the agent is working on.
Claude uses a hierarchical configuration:
Enterprise > User (~/.claude/settings.json) > Project (.claude/settings.json)
Example Safe Configuration
{
"permissions": {
"allow": [
"Read",
"Edit(src/**)",
"Write(src/**)",
"Bash(git status)",
"Bash(git diff)",
"Bash(npm run test:*)"
],
"deny": [
"Read(.env*)",
"Write(./config/database.*)",
"Bash(rm:*)",
"Bash(sudo:*)",
"Bash(*drop*database*)"
]
}
}
Security Patterns:
- Limit file access to
src/ - Deny destructive commands (
rm,sudo,migrate reset) - Block access to environment and credential files
🧱 Sandbox Isolation: The Ultimate Safety Net
Anthropic’s sandboxing system confines Claude Code’s access to specified directories and trusted domains — preventing accidental or malicious access to sensitive areas.
Example Sandbox Configuration
{
"sandbox": {
"filesystem": {
"allowedPaths": ["/project/src"],
"deniedPaths": ["/project/.env"]
},
"network": {
"allowedDomains": ["github.com", "registry.npmjs.org"],
"mode": "restricted"
}
}
}
Even if a prompt injection occurs, Claude cannot exfiltrate credentials or modify protected files.
🧩 Database Safety Measures
Databases require extra protection. A single migration or reset can permanently delete data.
Safe Database Practices
- Deny destructive commands:
"deny": ["Bash(*drop*database*)", "Bash(*truncate*)"] - Require approval for migrations:
"ask": ["Bash(*migrate*)", "Bash(prisma db push)"] - Pre-operation backup hooks:
./scripts/backup-database.sh - Use read-only credentials for analytics and debugging.
🧰 File System Protection Best Practices
- Restrict write access:
"allow": ["Write(src/**)", "Write(tests/**)"], "deny": ["Write(node_modules/**)", "Write(dist/**)"] - Protect sensitive configs:
"deny": ["Edit(.env*)", "Edit(secrets.yaml)"] - Add Git safety hooks:
"PostToolUse": [ { "matcher": "Write(src/**/*.ts)", "hooks": [{"type": "command", "command": "git add $file"}] } ]
🔄 Backup, Undo & Monitoring Tools
🧩 ccundo
Use ccundo to checkpoint and revert changes made by Claude Code:
npm install -g ccundo
ccundo checkpoint "before-refactor"
If something goes wrong:
ccundo undo
📊 ccstatusline
One of the most valuable add-ons for Claude Code developers, ccstatusline provides real-time visibility of your AI coding sessions directly inside your terminal.
Key Features:
- Displays model name, token usage, and context length
- Shows Git branch, staged changes, and session time
- Provides system metrics and Claude Code operation logs
- Cross-platform: macOS, Linux, and Windows
- Customizable themes and Powerline integration
Installation:
npx ccstatusline@latest
# or with Bun
bunx ccstatusline@latest
Why It Matters:
Monitoring your Claude session helps detect unusual activity early — sudden token spikes, unauthorized file edits, or git commits.
It’s a lightweight, proactive security layer that complements your sandbox and permission settings.
🚨 Emergency Recovery Plan
If you ever encounter a rogue session or accidental deletion, act fast:
- Rollback instantly:
ccundo undo git reset --hard HEAD^ - Restore backups:
pg_restore -d mydb backups/latest.sql - Lock down permissions immediately:
"deny": ["*"], "allow": ["Read", "LS"]
✅ Best Practices Summary
| Principle | Description |
|---|---|
| Least Privilege | Grant only necessary permissions |
| Project Scope | Avoid global system access |
| Deny by Default | Explicitly allow safe operations |
| Backup First | Always checkpoint before risky changes |
| Sandbox Everything | Isolate file and network access |
| Monitor Continuously | Use ccstatusline for live oversight |
Red Flags to Watch:
🚫 sudo or destructive shell commands
🚫 Unapproved .env edits
🚫 Database resets
🚫 Unrecognized network connections
💡 Conclusion
Claude Code agents can accelerate your workflow — but safety must come first.
By setting project-scoped permissions, enabling sandboxing, using monitoring tools like ccstatusline, and maintaining automatic backups, you can fully harness AI without risking data loss.
Never use --dangerously-skip-permissions in production.
Remember: the agent only has the access you give it.
🔗 Additional Resources
- Claude Code Security Documentation
- Anthropic’s Sandboxing Guide
- Claude Code Best Practices
- ccstatusline GitHub
- ccundo Undo Tool
- Anthropic’s Safe Agent Framework