CLI commands
Nachricht
openclaw message
Ein einzelner ausgehender Befehl zum Senden von Nachrichten und Ausführen von Kanalaktionen über Discord, Google Chat, iMessage, Matrix, Mattermost (Plugin), Microsoft Teams, Signal, Slack, Telegram und WhatsApp.
openclaw message <subcommand> [flags]Kanalauswahl
--channel <name>ist erforderlich, wenn mehr als ein Kanal konfiguriert ist; bei genau einem konfigurierten Kanal wird dieser standardmäßig verwendet.- Werte:
discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp(Mattermost erfordert das Plugin). - Ziele mit Kanalpräfix (zum Beispiel
discord:channel:123) lösen das zuständige Plugin ohne explizites--channelauf.
Zielformate (-t, --target)
| Kanal | Format |
|---|---|
| Discord | channel:<id>, user:<id>, <@id>-Erwähnung oder eine reine numerische ID (wird als Kanal-ID behandelt) |
| Google Chat | spaces/<spaceId> oder users/<userId> |
| iMessage | Handle, chat_id:<id>, chat_guid:<guid> oder chat_identifier:<id> |
| Mattermost (Plugin) | channel:<id>, user:<id>, @username oder eine reine ID (wird als Kanal behandelt) |
| Matrix | @user:server, !room:server oder #alias:server |
| Microsoft Teams | conversation:<id> (19:[email protected]), eine reine Konversations-ID oder user:<aad-object-id> |
| Signal | +E.164, group:<id>, uuid:<id>, username:<name>/u:<name> oder eines dieser Formate mit vorangestelltem signal: |
| Slack | channel:<id> oder user:<id> (eine reine ID wird als Kanal behandelt) |
| Telegram | Chat-ID, @username oder ein Forenthemenziel: <chatId>:topic:<topicId> (oder --thread-id <topicId>) |
E.164, Gruppen-JID ([email protected]) oder Kanal-/Newsletter-JID (...@newsletter) |
Suche nach Kanalnamen: Bei Providern mit einem Verzeichnis (Discord/Slack usw.) werden Namen
wie Help oder #help über den Verzeichnis-Cache aufgelöst. Bei einem Cache-Fehltreffer
wird auf eine Live-Verzeichnissuche zurückgegriffen, sofern der Provider diese unterstützt.
Gemeinsame Flags
Jede Aktion akzeptiert: --channel <name>, --account <id>, --json,
--dry-run, --verbose. Aktionen mit einem Ziel akzeptieren außerdem
-t, --target <dest>.
SecretRef-Auflösung
openclaw message löst SecretRefs von Kanälen vor Ausführung der Aktion
mit möglichst engem Geltungsbereich auf:
- kanalbezogen, wenn
--channelfestgelegt ist (oder aus einem Ziel mit Präfix abgeleitet wird) - kontobezogen, wenn zusätzlich
--accountfestgelegt ist - alle konfigurierten Kanäle, wenn keines von beiden festgelegt ist
Nicht aufgelöste SecretRefs nicht betroffener Kanäle blockieren eine gezielte Aktion niemals; eine nicht aufgelöste SecretRef des ausgewählten Kanals/Kontos führt zu einem sicheren Abbruch der Aktion.
Aktionen
Kernfunktionen
| Aktion | Kanäle | Erforderlich | Hinweise |
|---|---|---|---|
send |
Discord, Google Chat, iMessage, Matrix, Mattermost (Plugin), Microsoft Teams, Signal, Slack, Telegram, WhatsApp | --target sowie eines von --message/--media/--presentation |
Siehe unten Senden. |
poll |
Discord, Matrix, Microsoft Teams, Telegram, WhatsApp | --target, --poll-question, --poll-option (wiederholbar) |
Siehe unten Umfrage. |
react |
Discord, Matrix, Nextcloud Talk, Signal, Slack, Telegram, WhatsApp | --message-id, --target |
--emoji, --remove (erfordert --emoji; lassen Sie es weg, um eigene Reaktionen zu entfernen, sofern unterstützt, siehe Reaktionen). WhatsApp: --participant, --from-me. Reaktionen in Signal-Gruppen erfordern --target-author oder --target-author-uuid. Nextcloud Talk fügt nur Reaktionen hinzu; --remove führt zu einem Fehler. |
reactions |
Discord, Matrix, Microsoft Teams, Slack | --message-id, --target |
--limit. |
read |
Discord, Matrix, Microsoft Teams, Slack | --target |
--limit, --message-id, --before, --after. Discord: --around, --include-thread. Slack: --message-id liest einen bestimmten Zeitstempel; kombinieren Sie es mit --thread-id, um eine genaue Thread-Antwort abzurufen. |
edit |
Discord, Matrix, Microsoft Teams, Slack, Telegram | --message-id, --message, --target |
Telegram-Forenthreads verwenden --thread-id. |
delete |
Discord, Matrix, Microsoft Teams, Slack, Telegram | --message-id, --target |
|
pin / unpin |
Discord, Matrix, Microsoft Teams, Slack | --message-id, --target |
unpin akzeptiert auch --pinned-message-id (Microsoft Teams: die Ressourcen-ID zum Anheften/Auflisten angehefteter Elemente, nicht die ID der Chatnachricht). |
pins (Liste) |
Discord, Matrix, Microsoft Teams, Slack | --target |
--limit. |
permissions |
Discord, Matrix | --target |
Matrix: nur verfügbar, wenn die Verschlüsselung aktiviert ist und Verifizierungsaktionen zulässig sind. |
search |
Discord | --guild-id, --query |
--channel-id, --channel-ids (wiederholbar), --author-id, --author-ids (wiederholbar), --limit. |
member info |
Discord, Matrix, Microsoft Teams, Slack | --user-id |
--guild-id (Discord). |
Senden
openclaw message send --channel discord \ --target channel:123 --message "hi" --reply-to 456--media <path-or-url>: Bild/Audio/Video/Dokument anhängen (lokaler Pfad oder URL).--presentation <json>: gemeinsame Nutzlast mittext-,context-,divider-,chart-,table-,buttons- undselect-Blöcken, die entsprechend den Fähigkeiten des jeweiligen Kanals gerendert werden. Siehe Nachrichtendarstellung.--delivery <json>: allgemeine Zustellungspräferenzen, zum Beispiel{"pin": true}.--pinist eine Kurzform für angeheftete Zustellung, sofern der Kanal dies unterstützt.--reply-to <id>,--thread-id <id>(Telegram-Forenthema; Slack-Thread- Zeitstempel, dasselbe Feld wie--reply-to).--force-document(Telegram, WhatsApp): Bilder/GIFs/Videos als Dokumente senden, um die Komprimierung durch den Kanal zu vermeiden.--silent(Telegram, Discord): ohne Benachrichtigung senden.--gif-playback(nur WhatsApp): Videomedien als GIF-Wiedergabe behandeln.
openclaw message send --channel discord \ --target channel:123 --message "Auswählen:" \ --presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Genehmigen","value":"approve","style":"success"},{"label":"Ablehnen","value":"decline","style":"danger"}]}]}'openclaw message send --channel telegram --target @mychat --message "Auswählen:" \ --presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Ja","value":"cmd:yes"},{"label":"Nein","value":"cmd:no"}]}]}'Slack stellt unterstützte Diagrammblöcke nativ dar; andere Kanäle erhalten dieselben Daten als lesbaren Text:
openclaw message send --channel slack --target channel:C123 \ --presentation '{"blocks":[{"type":"chart","chartType":"bar","title":"Quartalsumsatz","categories":["Q1","Q2"],"series":[{"name":"Umsatz","values":[120,145]}],"xLabel":"Quartal"}]}'Slack stellt auch explizite Tabellenblöcke nativ dar. Andere Kanäle erhalten die Beschriftung und jede Zeile als deterministischen Text:
openclaw message send --channel slack --target channel:C123 \ --presentation '{"title":"Pipeline-Bericht","blocks":[{"type":"table","caption":"Offene Pipeline","headers":["Konto","Phase","ARR"],"rows":[["Acme","Won",125000],["Globex","Review",82000]],"rowHeaderColumnIndex":0}]}'Telegram-Mini-App-Schaltflächen verwenden webApp (web_app wird für älteres
JSON weiterhin geparst) und werden nur in privaten Chats zwischen einem Benutzer und dem Bot dargestellt:
openclaw message send --channel telegram --target 123456789 --message "App öffnen:" \ --presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Starten","webApp":{"url":"https://example.com/app"}}]}]}'openclaw message send --channel telegram --target @mychat \ --media ./diagram.png --force-documentopenclaw message send --channel msteams \ --target conversation:19:[email protected] \ --presentation '{"title":"Statusaktualisierung","blocks":[{"type":"text","text":"Build abgeschlossen"}]}'Umfrage
openclaw message poll --channel discord \ --target channel:123 \ --poll-question "Snack?" \ --poll-option Pizza --poll-option Sushi \ --poll-multi --poll-duration-hours 48--poll-option <choice>: 2-12-mal wiederholen.--poll-multi: Mehrfachauswahl zulassen.- Discord:
--poll-duration-hours,--silent,--message. - Telegram:
--poll-duration-seconds <n>(5-600),--silent,--poll-anonymous/--poll-public,--thread-id.
openclaw message poll --channel telegram \ --target @mychat \ --poll-question "Mittagessen?" \ --poll-option Pizza --poll-option Sushi \ --poll-duration-seconds 120 --silentopenclaw message poll --channel msteams \ --target conversation:19:[email protected] \ --poll-question "Mittagessen?" \ --poll-option Pizza --poll-option SushiThreads
thread create: Kanäle Discord. Erforderlich:--thread-name,--target(Kanal-ID). Optional:--message-id,--message,--auto-archive-min.thread list: Kanäle Discord. Erforderlich:--guild-id. Optional:--channel-id,--include-archived,--before,--limit.thread reply: Kanäle Discord. Erforderlich:--target(Thread-ID),--message. Optional:--media,--reply-to.
Emojis
emoji list: Discord (--guild-id), Slack (keine zusätzlichen Flags).emoji upload: Discord. Erforderlich:--guild-id,--emoji-name,--media. Optional:--role-ids(wiederholen).
Sticker
sticker send: Discord. Erforderlich:--target,--sticker-id(wiederholen). Optional:--message.sticker upload: Discord. Erforderlich:--guild-id,--sticker-name,--sticker-desc,--sticker-tags,--media.
Rollen, Kanäle, Sprache und Ereignisse (Discord)
role info:--guild-id.role add/role remove:--guild-id,--user-id,--role-id.channel info:--target.channel list:--guild-id.voice status:--guild-id,--user-id.event list:--guild-id.event create: erforderlich--guild-id,--event-name,--start-time; optional--end-time,--desc,--channel-id,--location,--event-type,--image <url-or-path>.
Moderation (Discord)
timeout:--guild-id,--user-id; optional--duration-minoder--until(beide weglassen, um das Timeout aufzuheben),--reason.kick:--guild-id,--user-id,--reason.ban:--guild-id,--user-id,--delete-days,--reason.
Rundsendung
openclaw message broadcast --targets <target...> [--channel all] [--message <text>] [--media <url>] [--dry-run]Sendet eine Nutzlast an mehrere Ziele. --targets akzeptiert eine durch Leerzeichen getrennte
Liste. Verwenden Sie --channel all, um jeden konfigurierten Provider als Ziel auszuwählen.