Nostr
Status: Optionales Plugin (standardmäßig deaktiviert). Nostr ist ein dezentrales Protokoll für soziale Netzwerke. Dieser Kanal ermöglicht OpenClaw, verschlüsselte Direktnachrichten (DMs) über NIP-04 zu empfangen und zu beantworten.
Installation (bei Bedarf)
Onboarding (empfohlen)
- Der Onboarding-Assistent (
openclaw onboard) undopenclaw channels addlisten optionale Kanal-Plugins auf. - Bei Auswahl von Nostr werden Sie aufgefordert, das Plugin bei Bedarf zu installieren.
Standard-Installation:
- Dev-Kanal + Git-Checkout verfügbar: nutzt den lokalen Plugin-Pfad.
- Stable/Beta: lädt von npm herunter.
Sie können die Auswahl in der Eingabeaufforderung jederzeit überschreiben.
Manuelle Installation
openclaw plugins install @openclaw/nostrLokaler Checkout (Dev-Workflows):
openclaw plugins install --link <path-to-openclaw>/extensions/nostrGateway nach dem Installieren oder Aktivieren von Plugins neu starten.
Schnelleinrichtung
- Nostr-Schlüsselpaar erzeugen (falls nötig):
# Using nak
nak key generate- Zur Konfiguration hinzufügen:
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}"
}
}
}- Schlüssel exportieren:
export NOSTR_PRIVATE_KEY="nsec1..."- Gateway neu starten.
Konfigurationsreferenz
| Key | Type | Default | Description |
|---|---|---|---|
privateKey | string | required | Private key in nsec or hex format |
relays | string[] | ['wss://relay.damus.io', 'wss://nos.lol'] | Relay URLs (WebSocket) |
dmPolicy | string | pairing | DM access policy |
allowFrom | string[] | [] | Allowed sender pubkeys |
enabled | boolean | true | Enable/disable channel |
name | string | - | Display name |
profile | object | - | NIP-01 profile metadata |
Profil-Metadaten
Profildaten werden als NIP-01-Event kind:0 veröffentlicht. Sie können sie in der Control UI (Channels -> Nostr -> Profile) verwalten oder direkt in der Konfiguration setzen. Beispiel:
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"profile": {
"name": "openclaw",
"displayName": "OpenClaw",
"about": "Personal assistant DM bot",
"picture": "https://example.com/avatar.png",
"banner": "https://example.com/banner.png",
"website": "https://example.com",
"nip05": "openclaw@example.com",
"lud16": "openclaw@example.com"
}
}
}
}Hinweise:
- Profil-URLs müssen
https://verwenden. - Import von Relays führt Felder zusammen und behält lokale Overrides bei.
Zugriffskontrolle
DM-Richtlinien
- pairing (Standard): unbekannte Absender erhalten einen Kopplungscode.
- allowlist: nur Pubkeys in
allowFromkönnen DM senden. - open: öffentliche eingehende DMs (erfordert
allowFrom: ["*"]). - disabled: eingehende DMs ignorieren.
Zulassen-Listen-Beispiel
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"dmPolicy": "allowlist",
"allowFrom": ["npub1abc...", "npub1xyz..."]
}
}
}Schlüsselformate
Akzeptierte Formate:
- Private key:
nsec...oder 64-Zeichen-Hex - Pubkeys (
allowFrom):npub...oder Hex
Relays
Standard: relay.damus.io und nos.lol.
{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"relays": [\
"wss://relay.damus.io",\
"wss://relay.primal.net",\
"wss://nostr.wine"\
]
}
}
}Tipps:
- 2–3 Relays für Redundanz nutzen.
- Zu viele Relays vermeiden (Latenz, Duplikate).
- Bezahlte Relays können die Zuverlässigkeit verbessern.
- Lokale Relays sind für Tests in Ordnung (
ws://localhost:7777).
Protokollunterstützung
| NIP | Status | Description |
|---|---|---|
| NIP-01 | Supported | Basic event format + profile metadata |
| NIP-04 | Supported | Encrypted DMs (kind:4) |
| NIP-17 | Planned | Gift-wrapped DMs |
| NIP-44 | Planned | Versioned encryption |
Testen
Lokales Relay
# Start strfry
docker run -p 7777:7777 ghcr.io/hoytech/strfry{
"channels": {
"nostr": {
"privateKey": "${NOSTR_PRIVATE_KEY}",
"relays": ["ws://localhost:7777"]
}
}
}Manueller Test
- Bot-Pubkey (npub) aus den Logs notieren.
- Nostr-Client öffnen (Damus, Amethyst usw.).
- Bot-Pubkey per DM kontaktieren.
- Antwort prüfen.
Fehlerbehebung
Keine Nachrichten empfangen
- Prüfen, ob der private Schlüssel gültig ist.
- Sicherstellen, dass Relay-URLs erreichbar sind und
wss://(oderws://lokal) verwenden. - Bestätigen, dass
enablednichtfalseist. - Gateway-Logs auf Relay-Verbindungsfehler prüfen.
Keine Antworten gesendet
- Prüfen, ob das Relay Schreibzugriffe akzeptiert.
- Ausgehende Konnektivität prüfen.
- Auf Relay-Ratenlimits achten.
Doppelte Antworten
- Erwartet bei Nutzung mehrerer Relays.
- Nachrichten werden anhand der Event-ID dedupliziert; nur die erste Zustellung löst eine Antwort aus.
Sicherheit
- Private Schlüssel niemals committen.
- Umgebungsvariablen für Schlüssel verwenden.
- Für Produktions-Bots
allowlisterwägen.
Einschränkungen (MVP)
- Nur Direktnachrichten (keine Gruppenchats).
- Keine Medienanhänge.
- Nur NIP-04 (NIP-17 Gift-Wrap geplant).
Zuletzt aktualisiert am: