Umbrel Home で OpenClaw を立ち上げ、Slack に招待して遊んでみる

Umbrel アプリとして公開されている OpenClaw を導入して、Slack に招待するまでの手順を簡単にまとめました。Umbrel Home など umbrelOS デバイスを運用している人はかなり簡単に OpenClaw を導入することができます。

「Umbrel Home」 は、ビットコインやライトニングネットワークのノードを手軽に建てられるホームサーバです。

もともと umbrelOS という PolyForm Noncommercial ライセンスで公開されている OS (Debian ベースの Linux ディストリビューション) がありまして、Raspberry Pi などと組み合わせて ビットコインフルノードやライトニングノードを簡単に立ち上げられるってことで注目されたんですが、バージョンアップで機能を増やし、独自のアプリストア (Umbrel App Store)などの拡充もあって、現状ではビットコインノードのホストだけでなく、汎用的なホームクラウドプラットフォームになっています。

この umbrelOS に最適化したハードウェアとして発売されたミニ PC が、「Umbrel Home」 です。過去にこの Blog でも書いたんですが、Raspberry Pi 4 と umbrelOS でノードの立ち上げを過去にやってまして、何年か運用して、Raspberry Pi をリプレースしようかなって思ったところで、面白そうだから、「Umbrel Home」 を買ってみるかと思って手に入れてました。

Umbrel Home 外箱

Umbrel Home 上部から

Umbrel Home 斜め上から

で、Umbrel App Store には様々なアプリが公開されているんですが、AI や AI エージェント系のアプリも揃っていて、OpenClaw の公式アプリなんかもちょっと前から公開されています。

Umbrel App のよいところは、設計上、各アプリが Docker コンテナで分離されているので、ホスト上の既存データやほかのアプリと切り離した状態で手軽に OpenClaw を実行できる点です。巷では専用機(Mac mini が人気ですね)を用意して OpenClaw を~ みたいなのが流行っていますが、お試しという意味ではそこまでしなくても、Umbrel を利用することで同様に分離された環境が手に入ります。

Umbrel 自体はかなり前から運用しているし、OpenClaw アプリの公開当初から使ってみようと思っていたんですが、なんだかんだ手を付けずにいたらアプリのバージョンも上がって動作も安定してきたっぽいので、思い立って Umbrel Home に OpenClaw アプリをインストール、会社の Slack に招待して Slack から OpenClaw にメンションすることでタスクを処理してもらえるようにしてみました。その手順について簡単にまとめておきます。

今回やったこと

  • Umbrel Home に OpenClaw をインストールして初期設定
  • Slack ワークスペースに OpenClaw とやりとりする専用のプライベートチャンネルを作成
  • Slack アプリとして OpenClaw アプリを作成
  • Umbrel Home 上の OpenClaw に Slack 接続用の設定を追加
  • プライベートチャンネルに OpenClaw ボットを招待
  • @OpenClaw にメンションしてタスクを依頼できるように

今回はあえてプライベートチャンネルを作って、そこに自分と OpenClaw ボットだけを招待してかなりクローズドな環境で動作するようにしています。また、@OpenClaw に対してメンションしたときのみ反応するようにしました。

これは、チャンネル上の会話に不用意に反応されても困るし、パブリックチャンネルで私以外が @OpenClaw にメンションしたりして無駄にトークン消費されても嫌だなということでこうしていますが、OpenClaw アプリの権限設定次第で、パブリックチャンネルでも使用できます。

手順

ということで簡単に手順を紹介しておきます。

Umbrel に OpenClaw アプリをインストールして初期設定

こちらは簡単。Umbrel App Store から OpenClaw を探してインストール、立ち上げてチュートリアルに従い初期設定をするだけです。

画面キャプチャ:Umbrel App Store で OpenClaw をインストール

チュートリアル内でモデルの選択などができますが、ここはお好みで。私は Claude Sonnet 4.6 をデフォルトで使用するように設定しました。API キーなどは事前に用意しておきましょう。

画面キャプチャ:OpenClaw アプリを初期設定

これだけでチャット画面が開いて OpenClaw と対話可能になります。一旦ここまでで止めておいて、Slack 側の設定を進めましょう。

Slack アプリの設定

api.slack.com/apps から新規の Slack アプリを設定します。

OpenClaw をプライベートチャンネルに招待してメンションで会話するという今回の用途に必要な設定は以下の通りです。

Socket Mode を有効にする

Socket Mode を有効にすることで、WebSocket のコネクション経由でやりとりすることができるようになります。

ちなみに、「なぜ Socket Mode を有効にするのか」 についてですが、通常の HTTP モードだと、Slack 側からサーバーへリクエストを送るために、公開 URL やポート開放、SSL 証明書が必要になります。しかし Umbrel Home は基本的には外部に公開されていないホームネットワーク内のサーバですから、この方式は使えません。

Socket Mode なら、OpenClaw 側から Slack へ WebSocket で接続しにいくので、公開 URL もポート開放も不要ですし、ファイアウォールの内側にある Umbrel からでも、そのまま Slack と双方向にやり取りできます。OpenClaw が標準で Slack の Socket Mode に対応していることもあって設定も簡単です。

画面キャプチャ:Slack アプリ設定画面で Socket Mode を有効にする

OAuth & Permissions メニューからスコープを設定する

次にメニューから OAuth & Permissions に進み、アプリのスコープを設定します。

今回付与したスコープは以下の通りです。

  • app_mentions:read : メンションを受け取るため
  • chat:write : 返信するため
  • groups:history : プライベートチャンネルの会話履歴を取得するため
  • groups:read : プライベートチャンネルの情報を取得するため

ちなみに、groups:*** となっているのはプライベートチャンネルが対象で、パブリックチャンネルの場合はそれぞれ channels:historychannels:read をスコープに与える必要があります。

画面キャプチャ:OAuth & Permissions スコープを設定

Event Subscriptions の設定

次に、Event Subscriptions メニューに進み、「Enable Events」 を有効にします。

さらに、「Subscribe to bot events」 項目を開いて、スコープを設定します。以下の 2 つを設定してください。

  • app_mention
  • message.groups

画面キャプチャ:Event Subscriptions の設定を行う

OpenClaw Bot の設定完了

ここまでで Slack アプリの設定は完了です。あとは細かい設定、例えば Bot のアイコンの設定などをして、作成したプライベートチャンネルにこの Bot くんを招待しましょう。例えば今回は 「OpenClaw」 という名前で Bot を作成していますので、作成したプライベートチャンネル (今回は 「ai-assistant」 を作成) で /invite @OpenClaw して Bot を召喚します。

画面キャプチャ:OpenClaw Bot のアイコンなどを設定する

また、Umbrel 側での設定に必要ですので、Slack アプリの設定画面 (「Basic Information」 のページで確認できます) から以下の情報をコピーしておきます。

  • App Tokenxapp- から始まるやつ
  • Bot Tokenxoxb- から始まるやつ

合わせて、Slack チャンネルの情報として、「チャンネル ID」 が必要ですので、Slack 側でこちらも確認しておきます。先ほど作ったプライベートチャンネルに入って、「チャンネル詳細」 を表示すると表示されますのでこれもコピーしておきましょう。

画面キャプチャ:チャンネル詳細でチャンネル ID を表示させた例

Umbrel OpenClaw アプリで設定を依頼

前述したとおり、以下の情報をメモってあると思いますが、あとは Umbrel の OpenClaw アプリから、AI エージェントに設定をお願いします。

  • App Tokenxapp- から始まるやつ
  • Bot Tokenxoxb- から始まるやつ
  • チャンネル ID : OpenClaw Bot を招待したプライベートチャンネルの ID

チャットから以下のようなプロンプトを入力するだけでうまいこと設定してくれます。

Slack を使えるように config を書いて設定して。Socket Modeで、App Tokenは xapp-*****、Bot Tokenは xoxb-*****。プライベートチャンネル ai-assistant(ID: C0B*******)だけで動作し、メンションされたときだけ反応するようにしてください。

これだけで、OpenClaw に Slack プラグインがインストールされていなければインストールして、言われた内容に即した config を書いてくれるので簡単。

設定完了後に念のため以下のようなプロンプトで config が正しくされているかを確認してみます。

~/.openclaw/openclaw.json(実際のconfigファイル)の Slack チャンネル設定部分を、トークン類(appToken、botToken)は値をマスクした状態でそのまま見せて。要約や言い換えはせず、ファイルの実際の中身を表示して。

その出力が以下。頼んでもいないのに DM を無効にしてくれていたりとっても優秀。

画面キャプチャ:OpenClaw に設定内容を出力してもらった例

ここまで終わったら、あとは Slack 側から @OpenClaw でメンションしてみて、反応があれば成功です。

ちょっとまだ何をさせるのか決めていないのですが、しばらく試してみようかなと思います。


余談ですが、Claude Tag という Slack と Claude を簡単に連携できるツールが公開されましたね。

現状では Team および Enterprise プランを契約しているユーザー向けにベータ版として提供されている状態で、私は Claude を Max プラン (個人用) で契約しているので残念ながら利用できないんですが、単にメンションしたら AI が作業してくれるというレベルではなく、Slack 内を自立的に AI が動き回って、ほぼ従業員のように働くらしいですよ。マジか。

記事をここまで御覧頂きありがとうございます。
この記事が気に入ったらサポートしてみませんか?