Permission Modes
Cyberstrike offers different permission modes to balance security and automation needs.
📊 DIAGRAM: permission-modes.mmd
Permission mode comparison flowchart
Overview
| Mode | Behavior | Use Case |
|---|---|---|
| Default | Prompts for dangerous operations | Interactive sessions |
| Plan | Read-only, no modifications | Research and exploration |
| Auto | Automatically approves all | CI/CD and automation |
Default Mode
The standard mode for interactive sessions.
Behavior
- Read operations proceed automatically
- Write operations prompt for approval
- Command execution prompts based on risk
- User can approve once or always
Configuration
{ "permissions": { "mode": "default" }}Command Line
cyberstrike --permission defaultPermission Prompt
┌─────────────────────────────────────────────┐│ Bash: rm -rf node_modules │├─────────────────────────────────────────────┤│ Allow this command? ││ ││ [y] Yes, once ││ [a] Yes, always for this pattern ││ [n] No ││ [v] View details │└─────────────────────────────────────────────┘Approval Options
| Key | Action |
|---|---|
y | Approve this instance only |
a | Approve and add to allow list |
n | Deny this operation |
v | Show more details |
Esc | Deny and cancel |
Plan Mode
Read-only mode for research and exploration.
Behavior
- All read operations allowed
- All write operations blocked
- Command execution blocked
- No changes to filesystem
Configuration
{ "permissions": { "mode": "plan" }}Command Line
cyberstrike --permission planUse Cases
- Code exploration - Understand codebase without changes
- Security research - Analyze without modification
- Learning - Safe exploration of AI capabilities
- Planning - Design approach before implementing
Allowed Operations
| Tool | Allowed |
|---|---|
| Read | Yes |
| Glob | Yes |
| Grep | Yes |
| Write | No |
| Edit | No |
| Bash | No (read-only commands only) |
| Browser | Read-only navigation |
Read-Only Bash Commands
Some commands are allowed in plan mode:
# Allowedls, cat, head, tail, grep, findgit status, git log, git diffnpm list, pip list
# Blockedrm, mv, cp, mkdirgit commit, git pushnpm install, pip installAuto Mode (YOLO)
Automatically approves all operations.
Behavior
- All operations proceed without prompting
- No user interaction required
- Full trust in AI decisions
- Maximum automation
Danger
Auto mode executes all operations without confirmation. Only use in controlled environments with trusted prompts.
Configuration
{ "permissions": { "mode": "auto" }}Command Line
cyberstrike --permission auto# orcyberstrike --yoloUse Cases
- CI/CD pipelines - Automated security scanning
- Batch processing - Processing multiple targets
- Controlled scripts - Pre-defined automation
- Testing - Automated test execution
Safety Considerations
Even in auto mode:
- Scope limitations - Restrict working directory
- Deny patterns - Block dangerous operations
- Hooks - Validate before execution
- Logging - Audit all operations
Safe Auto Mode Configuration
{ "permissions": { "mode": "auto", "deny": [ "Bash(rm -rf *)", "Bash(dd *)", "Write(~/.ssh/*)", "Write(.env*)" ] }}Switching Modes
During Session
/permission plan/permission default/permission autoPer-Command
# Single command in auto modecyberstrike run "scan target" --permission auto
# Interactive session defaults to defaultcyberstrikeMode Comparison
Security vs Automation
Security ←──────────────────────→ Automation
Plan Default Auto │ │ │ │ Read-only │ Balanced │ Full auto │ Max safety │ User control │ Max speedDecision Flowchart
Start │ ▼Is operation read-only? │ ├─ Yes → Allow │ └─ No → Check mode │ ├─ Plan → Block │ ├─ Auto → Allow │ └─ Default → Check patterns │ ├─ Allow pattern → Allow │ ├─ Deny pattern → Block │ └─ Unknown → Prompt userMixing Modes
Default with Allow List
Most common configuration:
{ "permissions": { "mode": "default", "allow": [ "Bash(npm *)", "Bash(git status)", "Write(reports/**)" ] }}Auto with Deny List
Automation with safety rails:
{ "permissions": { "mode": "auto", "deny": [ "Bash(rm -rf *)", "Bash(sudo *)", "Write(.env*)" ] }}Plan with Exceptions
Research with specific capabilities:
{ "permissions": { "mode": "plan", "allow": [ "Write(notes/**)" ] }}Best Practices
- Start with plan - Explore safely first
- Use default - For interactive security testing
- Auto for CI/CD - With proper deny lists
- Document mode - Note in project config
- Review logs - Audit auto mode operations
Tip
Start in plan mode to understand what operations will be performed, then switch to default for execution.
Related Documentation
- Permissions Overview - Permission system basics
- Patterns - Pattern syntax
- Automation - CI/CD setup