OpenClaw Signal チャンネル
signal-cli(Signal プロトコル用のサードパーティ製オープンソースコマンドラインインターフェース)を使用して OpenClaw を Signal に接続します。この統合により、完全なエンドツーエンド暗号化を備えたプライバシー重視の AI メッセージングが実現します。OpenClaw は HTTP JSON-RPC と Server-Sent Events を介して signal-cli デーモンと通信し、AI アシスタントが Signal でメッセージの送受信を行えるようにします。ボットアカウントには専用の電話番号が必要です。
Signal 対応機能
テキストメッセージ
対応
メディア・ファイル
対応
リアクション
対応
スレッド
非対応
音声メッセージ
非対応
グループチャット
対応
Signal 前提条件
- Signal ボットアカウント用の専用電話番号(個人番号とは別の番号)
- サーバーに Java Runtime Environment(JRE 25+)がインストール済み
- signal-cli がインストールされ、PATH に設定済み
- OpenClaw Gateway が稼働・設定済み
- ボットをリンクするための既存の Signal アカウント(または新規登録)
Signal クイックセットアップ
signal-cli をインストール
公式 GitHub リポジトリから signal-cli をダウンロードしてインストールします。Java 25 以降が必要です。ターミナルで 'signal-cli --version' を実行してインストールを確認してください。
Signal アカウントをリンクまたは登録
'signal-cli link -n "OpenClaw"' を実行し、別のデバイスから QR コードをスキャンして既存の Signal アカウントにリンクします。または、'signal-cli -a +15551234567 register' で新しいアカウントを登録します。専用の番号を使用してください。個人アカウントで実行するとセルフメッセージのループが発生します。
Signal チャンネル設定を追加
~/.openclaw/openclaw.json に Signal チャンネルの設定を追加します。'account' フィールドにボットの E.164 形式の電話番号を設定し、dmPolicy(pairing、allowlist、または open)を設定してアシスタントにメッセージを送信できるユーザーを制御します。
Gateway を起動してテストメッセージを送信
Gateway プロセスを起動します。OpenClaw は自動的に signal-cli デーモンを開始します。別の Signal アカウントからボットの番号にメッセージを送信してください。デフォルトの pairing ポリシーを使用している場合は、'openclaw pairing approve signal <code>' で送信者を承認してください。
Signal 設定例
{
"channels": {
"signal": {
"enabled": true,
"account": "+15551234567",
"dmPolicy": "pairing"
}
}
}Signal 詳細ドキュメント
アーキテクチャ概要
Signal アカウントのセットアップ
{
"channels": {
"signal": {
"account": "+15551234567",
"cliPath": "/usr/local/bin/signal-cli"
}
}
}外部デーモンモード
{
"channels": {
"signal": {
"account": "+15551234567",
"httpUrl": "http://127.0.0.1:8080/api/v1/rpc"
}
}
}DM ポリシー
{
"channels": {
"signal": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567", "uuid:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
}
}グループチャット管理
{
"channels": {
"signal": {
"groupPolicy": "open",
"historyLimit": 50
}
}
}プライバシーとエンドツーエンド暗号化
リアクション
{
"channels": {
"signal": {
"reactionLevel": "minimal"
}
}
}メディアと添付ファイル
{
"channels": {
"signal": {
"mediaMaxMb": 8,
"ignoreAttachments": false
}
}
}タイピングインジケーターと既読確認
{
"channels": {
"signal": {
"sendReadReceipts": true
}
}
}テキストのチャンク分割と配信
{
"channels": {
"signal": {
"textChunkLimit": 4000,
"chunkMode": "newline"
}
}
}Signal 設定リファレンス
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Signal チャンネルの有効/無効を切り替え |
| account | string | "" | ボットの電話番号(E.164 形式、例:+15551234567)。必須 |
| cliPath | string | "signal-cli" | signal-cli 実行ファイルのパス |
| httpUrl | string | "" | 外部 signal-cli デーモンの完全な URL。設定すると自動起動が無効化されます |
| httpHost | string | "127.0.0.1" | 自動起動される signal-cli デーモンがバインドするホストアドレス |
| httpPort | number | 8080 | 自動起動される signal-cli デーモンがバインドするポート |
| autoStart | boolean | true | Gateway 起動時に signal-cli デーモンを自動的に起動するかどうか |
| startupTimeoutMs | number | 30000 | signal-cli デーモンが利用可能になるまでの最大待機時間(ミリ秒)。最大 120000 |
| dmPolicy | string | "pairing" | ボットに DM を送信できるユーザーを制御。オプション:pairing、allowlist、open、disabled |
| allowFrom | string[] | [] | ボットにメッセージを送信できる電話番号(E.164)または uuid:<id> 識別子のリスト |
| dmHistoryLimit | number | 50 | 会話ごとに AI コンテキストとして含める最近の DM メッセージ数 |
| groupPolicy | string | "disabled" | グループチャットポリシー。オプション:disabled、allowlist、open |
| groupAllowFrom | string[] | [] | グループでボットをトリガーできる電話番号または UUID(groupPolicy が allowlist の場合) |
| historyLimit | number | 50 | AI コンテキストに含める最大グループメッセージ数。0 で無効化 |
| sendReadReceipts | boolean | false | 承認済み DM 連絡先に既読確認を転送するかどうか |
| textChunkLimit | number | 4000 | チャンク分割前の送信メッセージあたりの最大文字数 |
| chunkMode | string | "length" | テキストのチャンクモード。オプション:length(ハード分割)、newline(段落対応) |
| mediaMaxMb | number | 8 | 受信/送信添付ファイルの最大メディアファイルサイズ(メガバイト) |
| ignoreAttachments | boolean | false | 受信メディア添付ファイルのダウンロードをスキップ |
| ignoreStories | boolean | false | Signal ストーリーイベントを完全に無視 |
| receiveMode | string | "" | メッセージ受信モード。オプション:on-start(起動時に取得)、manual |
| configWrites | boolean | true | /config コマンドによるチャンネル設定のランタイム変更を許可 |
| reactionLevel | string | "ack" | ボットのリアクション機能。オプション:off、ack、minimal、extensive |
Signal チャンネルの有効/無効を切り替え
ボットの電話番号(E.164 形式、例:+15551234567)。必須
signal-cli 実行ファイルのパス
外部 signal-cli デーモンの完全な URL。設定すると自動起動が無効化されます
自動起動される signal-cli デーモンがバインドするホストアドレス
自動起動される signal-cli デーモンがバインドするポート
Gateway 起動時に signal-cli デーモンを自動的に起動するかどうか
signal-cli デーモンが利用可能になるまでの最大待機時間(ミリ秒)。最大 120000
ボットに DM を送信できるユーザーを制御。オプション:pairing、allowlist、open、disabled
ボットにメッセージを送信できる電話番号(E.164)または uuid:<id> 識別子のリスト
会話ごとに AI コンテキストとして含める最近の DM メッセージ数
グループチャットポリシー。オプション:disabled、allowlist、open
グループでボットをトリガーできる電話番号または UUID(groupPolicy が allowlist の場合)
AI コンテキストに含める最大グループメッセージ数。0 で無効化
承認済み DM 連絡先に既読確認を転送するかどうか
チャンク分割前の送信メッセージあたりの最大文字数
テキストのチャンクモード。オプション:length(ハード分割)、newline(段落対応)
受信/送信添付ファイルの最大メディアファイルサイズ(メガバイト)
受信メディア添付ファイルのダウンロードをスキップ
Signal ストーリーイベントを完全に無視
メッセージ受信モード。オプション:on-start(起動時に取得)、manual
/config コマンドによるチャンネル設定のランタイム変更を許可
ボットのリアクション機能。オプション:off、ack、minimal、extensive
Signal よくある質問
Signal トラブルシューティング
Java がインストールされていないか、インストールされたバージョンが古すぎます。signal-cli には Java 25 以降が必要です。
account フィールドが正しくない、signal-cli デーモンが実行されていない、または送信者がペアリングで承認されていない可能性があります。
送信者が allowFrom リストに含まれていない(allowlist ポリシー使用時)、または送信者の識別子形式が一致していない可能性があります。
groupPolicy が 'disabled'(デフォルト)に設定されているか、グループが許可リストに含まれていません。
signal-cli デーモンが実行されていない、URL が正しくない、またはファイアウォールが接続をブロックしています。