【結論】OpenClawをDiscordに繋ぐ4ステップ
① Discord Developer Portalでボットを作成し、トークンを取得。
② ボットをサーバーに招待(OAuth2 URL Generator)。
③ ラズパイ上でopenclaw config setでトークンを設定し Gateway を再起動。
④ DiscordからボットにDMを送り、ペアリングコードを承認。
前回の記事でAPIキーの設定が終わり、TUI(ターミナル)経由でAIが動くようになった。今回はこれをスマホからDiscord経由で使えるようにする。
そもそもなぜDiscordに繋ぐのか?
OpenClaw自体は、SSHでラズパイに接続してコマンド(openclaw tui)を叩けばターミナル上で動く。しかし、実用的に考えた場合、ターミナルからの操作だけでは致命的に不便なのだ。
- いちいちPCを開いてSSH接続するのが面倒
- スマホからは操作がしづらい
- 他の人(家族やチームメンバー)に使わせることができない
これをDiscordと連携させることで、「いつものチャットアプリを開くだけで、最強のパーソナルAIアシスタントが待機している」というシームレスな体験に変わる。これがDiscord連携最大のメリットだ。
フェーズ1:Discordボットを作る
Discord Developer Portal
にアクセスし、「New Application」からボットを作成する。
1. トークンの取得
左メニューの「Bot」→「Reset Token」をクリックし、表示されたトークンを必ずコピーしておく(後でラズパイ側で使う)。
2. Privileged Gateway Intentsの有効化
同じページの少し下にある「Privileged Gateway Intents」を開き、以下の2つをONにして「Save Changes」を押す。
- Message Content Intent(必須):これがないとOpenClawがメッセージを読めない
- Server Members Intent(推奨):権限管理等に必要
フェーズ2:ボットをサーバーに招待する
左メニューの「OAuth2」→「URL Generator」を開く。
Scopes で bot にチェックを入れ、下に出てくる Bot Permissions で以下にチェックを入れる。
- View Channels / Send Messages / Read Message History / Embed Links / Attach Files
一番下に生成されたURLをブラウザに貼り付け、自分のサーバーを指定して「認証」する。サーバーのメンバー一覧にボット(オフライン状態)が現れれば成功。
フェーズ3:ラズパイにトークンを設定
SSHでラズパイに接続し、フェーズ1で取得したトークンを設定する。
# Discordボットトークンを設定(前後にシングルクオート必須)
$ openclaw config set channels.discord.token '"ここにボットトークンを貼る"' --json
# Discordチャンネルを有効化
$ openclaw config set channels.discord.enabled true --json
# Gatewayサービスを再起動して反映
$ openclaw gateway restart
# (コマンドがない場合は systemctl --user restart openclaw-gateway)
少し待つと、Discord上のボットがオンライン状態になる。
フェーズ4:ペアリング(紐付け)
Discord上で、自分のボット(OpenClaw)にダイレクトメッセージ(DM)を送る。「hello」等でよい。
※DMが送れない場合は、サーバー設定の「プライバシー設定」でDMを許可すること。
ボットからペアリングコード(英数字)が返してくるので、ラズパイのターミナルで以下を実行して承認する。
$ openclaw pairing approve discord [ペアリングコード]
成功! これでDiscordのDM経由でいつでもAIと対話できるようになった。
心が躍る瞬間——「箱」の中でAIが息を吹き込んだ日
ペアリングが完了し、初めてDiscordからメッセージを送って返答が来た瞬間、言い知れぬ「ワクワク感」があった。
この時点ではまだAIの名前も、キャラクター設定も何も決まっていない。ただデフォルトのプロンプトで動いている「名もなきエージェント」に過ぎない。しかし、自分がセットアップしたラズパイという物理的な「箱」のなかで、確かに知性を持った何かが息を吹き込み、自分の言葉に自律的に応答してくれたのだ。

大げさに聞こえるかもしれないが、まるで「シンギュラリティの小さな欠片」が自分の部屋に生まれたような、純粋な感動があった。単なる一問一答のAPI呼び出しとは違う、「そこに生きている」かのような感覚。やや短い記事になったが、OpenClawとDiscordの連携が完了したこの瞬間こそが、この一連の作業で一番心躍る体験だったと伝えたい。
おまけ:サーバーのテキストチャンネルでも使う
DMだけでなく、サーバーの公開チャンネル(#一般 など)で @ボット名 と呼びかけて使いたい場合の設定。
事前にDiscordの設定「開発者モード」をONにし、自分のユーザーIDと対象のサーバーID(チャンネルIDではない)を右クリックでコピーしておく。
# 自分のユーザーIDを許可(第三者の不正利用を防ぐ)
$ openclaw config set channels.discord.allowFrom '["あなたのユーザーID"]' --json
# サーバーIDを追加(requireMention: true でメンション必須にする)
$ openclaw config set channels.discord.guilds '{"あなたのサーバーID": {"requireMention": true}}' --json
# 再起動
$ systemctl --user restart openclaw-gateway
これで、チャンネル内で @ボット名 こんにちは と送ればAIが応答してくれる。
よくある質問
Q1. ペアリングコードが返ってこない
- トークンが正しく設定されているか
- Gatewayが起動しているか(
openclaw status --allで確認) - Developer Portalで「Message Content Intent」をONにしたか
Q2. チャンネルでメンションしても無反応
guildsの設定に間違えて「チャンネルID」を入れていないか(サーバーアイコンを右クリックで取得するサーバーIDが正解)- Discord側でボットのロールに「チャンネルを見る」「メッセージを送信」権限があるか
※2026年2月時点。OpenClaw 2026.2.26 (bc50708) 環境で検証。


コメント