Security

GoClaw implements multiple layers of security to protect your system, data, and credentials from both accidental misuse and malicious prompts.

Topics

TopicDescription
Panic stopEmergency stop to immediately cancel agent runs
Environment variables and secretsWhy GoClaw uses the config file for secrets; env var substitution
External content wrappingProtection against prompt injection from external sources

Rate Limiting

GoClaw applies rate limiting to protect against brute-force attacks:

HTTP authentication — After a failed login attempt, the IP is blocked for 10 seconds. This prevents rapid password guessing while minimizing impact on legitimate users who mistype.

User authentication tool — The user_auth tool (for in-conversation authentication) limits attempts to 3 per minute per user. This prevents agents from being tricked into brute-forcing passwords.

Rate limits are not currently configurable. They use sensible defaults that balance security with usability.

Tool Restrictions by Purpose

Certain session purposes automatically restrict which tools are available:

PurposeDenied ToolsRationale
hassexec, write, editHome Assistant automations shouldn’t modify files or run commands
webhookexec, write, edit, cronWebhook-triggered sessions are untrusted by default

This prevents a malicious webhook payload from using the agent to execute arbitrary commands or write files.

Custom Restrictions

Override or extend restrictions in goclaw.json:

{
  "security": {
    "toolRestrictions": {
      "webhook": {
        "deny": ["exec", "write", "edit", "cron", "skills"]
      },
      "custom_purpose": {
        "deny": ["exec"]
      }
    }
  }
}

User-defined restrictions replace the defaults for that purpose, they don’t merge.

Access Control

GoClaw enforces role-based access at multiple levels:

Memory

  • MEMORY.md and daily memory files are only loaded for owners
  • Non-owners cannot see memories from other users’ sessions
  • Memory graph tools (memory_update, memory_forget) require owner role

This prevents personal context from leaking to shared or public sessions.

Transcripts

  • Owners see all messages in transcripts
  • Non-owners only see messages they sent or received
  • Session history is filtered by user identity

Tools

  • Tools can be restricted by role or per-user (see Tool Permissions )
  • Skills can be flagged and require explicit whitelist (see Skills )
  • Certain tools are always denied for specific purposes (see above)

Supervision

  • Session supervision (pause, guidance, interrupt) is owner-only
  • The supervision API requires owner authentication
  • Non-owners cannot observe or control other users’ sessions

Defense Layers

GoClaw’s security is layered — no single mechanism provides complete protection:

LayerProtects Against
SandboxFile access escape, command injection
URL safetySSRF, internal network access
Panic stopRunaway agents, unwanted actions
External content wrappingPrompt injection from fetched content
RolesUnauthorized access, privilege escalation
Tool permissionsLimiting user capabilities
Rate limitingBrute-force attacks
Tool restrictionsMalicious webhook/automation payloads

Best Practices

  1. Use the sandbox — Enable bubblewrap for the exec tool in production
  2. Principle of least privilege — Give users the minimum role they need
  3. Review skills — Audit skills before enabling, especially flagged ones
  4. Keep panic stop enabled — It’s your emergency brake
  5. Separate workspaces — Use different workspaces for different trust levels
  6. Monitor sessions — Use supervision for sensitive operations
  • Sandbox — Execution isolation, file access control, URL safety
  • Roles — User roles and permissions
  • Tools — Tool list and permissions
  • Deployment — Production security considerations