Allowlist Configuration
Allowlists control who is authorized to send messages to your SimpleClaw assistant on each messaging channel. SimpleClaw supports both configuration-based and dynamic pairing-based allowlists.Allowlist Types
1. Configuration Allowlists
Static allowlists defined in youropenclaw.json or openclaw.yaml configuration:
2. Dynamic Allowlists (Pairing Store)
Automatically maintained when you approve pairing requests:- Stored in
~/.simpleclaw/credentials/<channel>-allowFrom.json - Updated when you run
simpleclaw pairing approve <channel> <code> - Persists across SimpleClaw restarts
3. Combined Allowlists
SimpleClaw merges both sources:dmPolicy: "allowlist", only configuration allowlists are used (pairing store is ignored).
Configuration Syntax
Basic Allowlist
Allow specific users by ID:Wildcard (Allow All)
Allow all senders:Channel-Specific Prefixes
You can use channel-specific ID formats:Telegram
Discord
Slack
Signal
Group Access Control
Separate controls for group messages vs. direct messages:Group Policies
open (Default)
Allow all group messages, only enforce mention-gating:
allowlist
Only allow group messages from senders in groupAllowFrom (or allowFrom if not set):
disabled
Block all group messages:
Group Allowlist Inheritance
IfgroupAllowFrom is not specified:
groupAllowFrom.
Account-Scoped Allowlists
For channels with multiple accounts (e.g., WhatsApp with multiple phone numbers):Configuration
Storage
Account-scoped pairing stores:- Format:
<channel>-<accountId>-allowFrom.json - Example:
whatsapp-15551234567-allowFrom.json
Backward Compatibility
Legacy channel-level allowlists are still honored:Mutable Allowlist Detection
SimpleClaw warns about allowlist entries that may change over time.Discord Mutable Entries
Mutable (may change):discord:prefix without IDuser:prefix without ID- Bare usernames or display names
- Numeric user IDs:
123456789012345678 - Mention format:
<@123456789012345678> - PluralKit system IDs:
pk:abcdef(if ID is included)
Slack Mutable Entries
Mutable:slack:oruser:prefix without ID- Bare usernames or display names
- User IDs:
U1234567890 - Mention format:
<@U1234567890>
Google Chat Mutable Entries
Mutable:- Email addresses (e.g.,
[email protected]) - Display names
- User resource names:
users/123456789012345678 - With prefix:
googlechat:users/123456789012345678
MS Teams Mutable Entries
Mutable:- Email addresses
- Display names with spaces
- Object IDs (GUIDs)
- Azure AD user IDs
Mattermost Mutable Entries
Mutable:- Usernames (can be changed)
- 26-character user IDs:
abcdefghijklmnopqrstuvwxyz
IRC Mutable Entries
Mutable:- Bare nicknames (can change)
- NickServ account format:
nickname!user@host
CLI Management
View Current Allowlist
Read from pairing store:Add to Allowlist
Approve a pending pairing request:Remove from Allowlist
Currently, removal requires manual editing:- Edit
~/.simpleclaw/credentials/<channel>-allowFrom.json - Remove the sender ID from the
allowFromarray - Restart SimpleClaw or reload configuration
openclaw.json/openclaw.yaml.
Security Audit Integration
Thesimpleclaw security audit command checks allowlist configurations:
Detected Issues
- Wildcard allowlists: Warns if
allowFrom: ["*"]is used - Mutable entries: Warns if allowlist contains unstable identifiers
- Multi-user DM setups: Flags configurations with multiple allowed senders
- Empty allowlists with
dmPolicy: allowlist: Critical finding
Example Audit Output
Normalization
SimpleClaw normalizes allowlist entries for matching:Telegram
- Strips
telegram:anduser:prefixes - Converts to string
- Trims whitespace
Discord
- Strips
discord:,user:,pk:prefixes - Extracts ID from mention format
<@123>or<@!123> - Trims whitespace
WhatsApp/Signal
- Normalizes to E.164 format (
+15551234567) - Adds
+prefix if missing - Validates phone number format
Slack
- Strips
slack:anduser:prefixes - Extracts ID from mention format
<@U123> - Trims whitespace
- Converts to uppercase for Slack IDs
Best Practices
1. Use Stable Identifiers
Prefer user IDs over usernames/display names:2. Avoid Wildcards in Production
Only use["*"] for testing or fully trusted environments: