Features
- End-to-end encrypted messaging
- Direct messages and group chats
- Media support (images, videos, documents)
- Reactions
- Privacy-focused with no phone number disclosure
- Message streaming with coalescing
Requirements
- signal-cli installed and configured
- Signal phone number registered with signal-cli
- signal-cli daemon running (for real-time message reception)
Setup
Install signal-cli
Register Phone Number
Register your Signal phone number with signal-cli:Replace
+1234567890 with your phone number in E.164 format.Start signal-cli Daemon
Run signal-cli in daemon mode with HTTP API:This starts an HTTP server on port 8080.
Configuration
Basic Configuration
Alternative Configuration Options
Using HTTP host and port:Multi-Account Setup
Use multiple Signal accounts:Security
DM Policy
Group Policy
Pairing Workflow
WithdmPolicy: pairing, users must be approved:
- User sends first message
- You receive pairing request
- Approve:
simpleclaw pairing approve signal +1234567890 - User receives approval notification
Message Features
Sending Messages
Target Formats
- Phone number:
+1234567890(E.164 format) - UUID:
uuid:12345678-1234-1234-1234-123456789abc - Group:
group:base64-encoded-group-id - Signal prefix:
signal:+1234567890orsignal:group:...
Reactions
React to messages:Media Support
Message Streaming
Signal supports message streaming with coalescing:Group Management
Creating Groups
Create groups using signal-cli:Getting Group IDs
List groups:Group Configuration
Currently, Signal groups use the account-levelgroupPolicy setting. Per-group configuration is not yet supported in the channel plugin.
Advanced Configuration
Custom signal-cli Path
Media File Limits
Default Recipient
Troubleshooting
signal-cli Not Found
signal-cli Not Found
Ensure signal-cli is installed and in PATH:If using custom path, set
cliPath in config.Daemon Not Running
Daemon Not Running
Verify signal-cli daemon is running:Start daemon if needed:
Messages Not Received
Messages Not Received
Check SimpleClaw can reach signal-cli daemon:Verify
httpUrl in config matches daemon address.Phone Number Format
Phone Number Format
Use E.164 format (international format with country code):
- Correct:
+1234567890 - Incorrect:
1234567890,(123) 456-7890
Group Messages Not Working
Group Messages Not Working
Ensure bot account is a member of the group.Group IDs must be in base64 format, not human-readable names.
CLI Commands
Running signal-cli as a Service
systemd (Linux)
Create/etc/systemd/system/signal-cli.service:
launchd (macOS)
Create~/Library/LaunchAgents/com.signal-cli.daemon.plist:
API Reference
Signal channel implementation:extensions/signal/src/channel.ts
Channel ID
signal
Target ID Format
- Phone:
+1234567890(E.164) - UUID:
uuid:12345678-1234-1234-1234-123456789abc - Group:
group:base64-idorsignal:group:base64-id
Capabilities
- Chat types:
direct,group - Features:
media,reactions - Delivery mode:
direct - Text chunk limit: 4000 characters
- Streaming: Supported with coalescing (minChars: 1500, idleMs: 1000)
Configuration Schema
SeeSignalConfigSchema in source for full schema.
Best Practices
Use Pairing Mode
Enable pairing to control access:
Run Daemon as Service
Use systemd/launchd for automatic startup and restarts
E.164 Phone Format
Always use international format:
Limit Media Size
Prevent large uploads:
Next Steps
signal-cli Documentation
Learn more about signal-cli
Security Configuration
Configure DM policies and allowlists