Overview
This guide shows you how to connect OpenRouter to Nostr using OpenClaw. You'll configure the messaging channel, set up AI provider authentication, and deploy your assistant.
Nostr Capabilities
- Direct messages
- Reactions
OpenRouter Features
- Access to 100+ models
- Unified billing
- Model comparison
- Automatic fallbacks
Step 1: Configure Nostr
- Generate a Nostr key pair
- Choose relay servers
- Configure nostr in openclaw.json
- Start the gateway
- Publish your public key
Step 2: Configure OpenRouter
OpenRouter API key
- Create account at openrouter.ai
- Generate API key
- Set OPENROUTER_API_KEY environment variable
Environment variable: OPENROUTER_API_KEY
Step 3: Combined Configuration
Add both configurations to your openclaw.json:
{
"agents": {
"defaults": {
"model": {
"primary": "openrouter/anthropic/claude-sonnet-4"
}
}
},
"models": {
"providers": {
"openrouter": {
"models": {
"providers": {
"openrouter": {
"apiKey": "${OPENROUTER_API_KEY}
}
},
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"relays": ["wss://relay.damus.io", "wss://nos.lol"]
}
}
}
} Step 4: Start and Test
# Start the gateway
openclaw gateway start
# Check connection status
openclaw status
# View real-time logs
openclaw logs --follow Access Control
Nostr supports the following access control policies:
DM Policies
| Policy | Description |
|---|---|
allowlist | Only senders in allowFrom list are processed |
open | All DMs are processed (requires allowFrom: ["*"]) |
Group Policies
| Policy | Description |
|---|---|
open | All groups are processed |
Deploy Options
Choose how to deploy your Nostr + OpenRouter setup:
Local Deployment
Run on your personal machine with local-only access
View Guide →VPS Deployment
Always-on deployment on a Linux VPS
View Guide →Cloud Deployment
Managed container deployment on Fly.io or similar
View Guide →Docker Deployment
Containerized deployment with Docker
View Guide →