Skip to main content

The Five Modes

profClaw’s security mode determines how tool calls are validated before execution. The mode can be set globally, per channel, per user, or per conversation.
No tool execution allowed.All tool calls are blocked regardless of which tool or who is calling. The AI can still respond conversationally but cannot execute any actions.Use for: Read-only channels, demo environments, untrusted public chats.
security:
  mode: deny

Mode Comparison

Featuredenysandboxallowlistaskfull
Tool executionNeverIn containerPre-approved onlyWith approvalAlways
Approval prompts---For moderate/dangerousNever
Filesystem accessNoneContainer onlyListed pathsGuardedGuarded
Network accessNoneContainer onlyListed URLsSSRF-guardedSSRF-guarded
Best forPublicExecutionProductionPersonalDev only

Per-Channel Mode Override

Set different modes for different channels:
security:
  mode: ask                 # global default

channels:
  slack:
    security:
      mode: allowlist       # stricter for Slack

  webchat:
    security:
      mode: full            # permissive for local webchat

  telegram:
    security:
      mode: deny            # block all tools on Telegram

Per-User Policies

Apply different modes based on the authenticated user:
security:
  execPolicies:
    - id: admin-policy
      name: "Admin users"
      match:
        users: ["user-id-123", "user-id-456"]
      action: allow
      priority: 100
      enabled: true

    - id: guest-policy
      name: "Guest users"
      match:
        users: ["*"]
      action: ask
      priority: 1
      enabled: true

Granular Exec Policies

Policies can match on tools, commands, paths, users, and channels with priority ordering:
security:
  execPolicies:
    - id: no-write-from-slack
      match:
        tools: ["write_file", "edit_file"]
        channels: ["C01234"]         # Slack channel ID
      action: deny
      priority: 90
      enabled: true

    - id: git-requires-approval
      match:
        tools: ["git_commit", "git_remote"]
      action: ask
      priority: 80
      enabled: true
Higher priority values are evaluated first.