openclaw message
メッセージ送信とチャンネル操作のための統合コマンドです (Discord/Google Chat/Slack/Mattermost(プラグイン)/Telegram/WhatsApp/Signal/iMessage/MS Teams)。
使い方
openclaw message <subcommand> [flags]
チャンネル選択:
--channel: 複数のチャンネルが設定されている場合は必須です。- チャンネルが1つだけ設定されている場合、それがデフォルトになります。
- 指定可能な値:
whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams(Mattermostはプラグインが必要)
ターゲット形式(--target):
- WhatsApp: E.164形式またはグループJID
- Telegram: チャットIDまたは
@username - Discord:
channel:<id>またはuser:<id>(<@id>メンション形式も可。数値のみのIDはチャンネルとして扱われます) - Google Chat:
spaces/<spaceId>またはusers/<userId> - Slack:
channel:<id>またはuser:<id>(チャンネルIDの直接指定も可) - Mattermost(プラグイン):
channel:<id>、user:<id>、または@username(IDのみの場合はチャンネルとして扱われます) - Signal:
+E.164、group:<id>、signal:+E.164、signal:group:<id>、またはusername:<name>/u:<name> - iMessage: ハンドル、
chat_id:<id>、chat_guid:<guid>、またはchat_identifier:<id> - MS Teams: 会話ID(
19:[email protected])、conversation:<id>、またはuser:<aad-object-id>
名前検索:
- 対応プロバイダ(Discord/Slackなど)では、
Helpや#helpのようなチャンネル名がディレクトリキャッシュ経由で解決されます。 - キャッシュミス時、プロバイダが対応していればライブディレクトリ検索を試みます。
共通フラグ
--channel <name>--account <id>--target <dest>(send/poll/readなどの対象チャンネルまたはユーザー)--targets <name>(繰り返し指定可。broadcastのみ)--json--dry-run--verbose
アクション
コア
-
send- チャンネル: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost(プラグイン)/Signal/iMessage/MS Teams
- 必須:
--target、および--messageまたは--media - 任意:
--media、--reply-to、--thread-id、--gif-playback - Telegram限定:
--buttons(channels.telegram.capabilities.inlineButtonsの有効化が必要) - Telegram限定:
--thread-id(フォーラムトピックID) - Slack限定:
--thread-id(スレッドタイムスタンプ。--reply-toも同じフィールドを使用) - WhatsApp限定:
--gif-playback
-
poll- チャンネル: WhatsApp/Telegram/Discord/Matrix/MS Teams
- 必須:
--target、--poll-question、--poll-option(繰り返し指定) - 任意:
--poll-multi - Discord限定:
--poll-duration-hours、--silent、--message - Telegram限定:
--poll-duration-seconds(5-600)、--silent、--poll-anonymous/--poll-public、--thread-id
-
react- チャンネル: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal
- 必須:
--message-id、--target - 任意:
--emoji、--remove、--participant、--from-me、--target-author、--target-author-uuid - 注意:
--removeには--emojiが必要です(--emojiを省略すると、対応プロバイダでは自分のリアクションをクリアします。詳細は /tools/reactions を参照) - WhatsApp限定:
--participant、--from-me - Signalグループのリアクション:
--target-authorまたは--target-author-uuidが必要
-
reactions- チャンネル: Discord/Google Chat/Slack
- 必須:
--message-id、--target - 任意:
--limit
-
read- チャンネル: Discord/Slack
- 必須:
--target - 任意:
--limit、--before、--after - Discord限定:
--around
-
edit- チャンネル: Discord/Slack
- 必須:
--message-id、--message、--target
-
delete- チャンネル: Discord/Slack/Telegram
- 必須:
--message-id、--target
-
pin/unpin- チャンネル: Discord/Slack
- 必須:
--message-id、--target
-
pins(一覧表示)- チャンネル: Discord/Slack
- 必須:
--target
-
permissions- チャンネル: Discord
- 必須:
--target
-
search- チャンネル: Discord
- 必須:
--guild-id、--query - 任意:
--channel-id、--channel-ids(繰り返し指定)、--author-id、--author-ids(繰り返し指定)、--limit
スレッド
-
thread create- チャンネル: Discord
- 必須:
--thread-name、--target(チャンネルID) - 任意:
--message-id、--message、--auto-archive-min
-
thread list- チャンネル: Discord
- 必須:
--guild-id - 任意:
--channel-id、--include-archived、--before、--limit
-
thread reply- チャンネル: Discord
- 必須:
--target(スレッドID)、--message - 任意:
--media、--reply-to
絵文字
-
emoji list- Discord:
--guild-id - Slack: 追加フラグ不要
- Discord:
-
emoji upload- チャンネル: Discord
- 必須:
--guild-id、--emoji-name、--media - 任意:
--role-ids(繰り返し指定)
スタンプ
-
sticker send- チャンネル: Discord
- 必須:
--target、--sticker-id(繰り返し指定) - 任意:
--message
-
sticker upload- チャンネル: Discord
- 必須:
--guild-id、--sticker-name、--sticker-desc、--sticker-tags、--media
ロール / チャンネル / メンバー / ボイス
role info(Discord):--guild-idrole add/role remove(Discord):--guild-id、--user-id、--role-idchannel info(Discord):--targetchannel list(Discord):--guild-idmember info(Discord/Slack):--user-id(Discordの場合は--guild-idも必要)voice status(Discord):--guild-id、--user-id
イベント
event list(Discord):--guild-idevent create(Discord):--guild-id、--event-name、--start-time- 任意:
--end-time、--desc、--channel-id、--location、--event-type
- 任意:
モデレーション(Discord)
timeout:--guild-id、--user-id(任意で--duration-minまたは--until。両方省略するとタイムアウトを解除)kick:--guild-id、--user-id(+--reason)ban:--guild-id、--user-id(+--delete-days、--reason)timeoutも--reasonをサポート
ブロードキャスト
broadcast- チャンネル: 設定済みの任意のチャンネル。
--channel allですべてのプロバイダを対象に指定可能 - 必須:
--targets(繰り返し指定) - 任意:
--message、--media、--dry-run
- チャンネル: 設定済みの任意のチャンネル。
使用例
Discordでリプライを送信:
openclaw message send --channel discord \
--target channel:123 --message "hi" --reply-to 456
Discordでコンポーネント付きメッセージを送信:
openclaw message send --channel discord \
--target channel:123 --message "Choose:" \
--components '{"text":"Choose a path","blocks":[{"type":"actions","buttons":[{"label":"Approve","style":"success"},{"label":"Decline","style":"danger"}]}]}'
完全なスキーマについては Discord components を参照してください。
Discordで投票を作成:
openclaw message poll --channel discord \
--target channel:123 \
--poll-question "Snack?" \
--poll-option Pizza --poll-option Sushi \
--poll-multi --poll-duration-hours 48
Telegramで投票を作成(2分後に自動終了):
openclaw message poll --channel telegram \
--target @mychat \
--poll-question "Lunch?" \
--poll-option Pizza --poll-option Sushi \
--poll-duration-seconds 120 --silent
Teamsでプロアクティブメッセージを送信:
openclaw message send --channel msteams \
--target conversation:19:[email protected] --message "hi"
Teamsで投票を作成:
openclaw message poll --channel msteams \
--target conversation:19:[email protected] \
--poll-question "Lunch?" \
--poll-option Pizza --poll-option Sushi
Slackでリアクション:
openclaw message react --channel slack \
--target C123 --message-id 456 --emoji "✅"
Signalグループでリアクション:
openclaw message react --channel signal \
--target signal:group:abc123 --message-id 1737630212345 \
--emoji "✅" --target-author-uuid 123e4567-e89b-12d3-a456-426614174000
Telegramでインラインボタンを送信:
openclaw message send --channel telegram --target @mychat --message "Choose:" \
--buttons '[ [{"text":"Yes","callback_data":"cmd:yes"}], [{"text":"No","callback_data":"cmd:no"}] ]'