「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」 を買ってみるかと思って手に入れてました。
- Raspberry Pi 4 + Umbrel で Bitcoin フルノードを立ち上げ、Lightning Network (Diamond Hands プロジェクト) に参加してみる
- Raspberry Pi 4 で運用中の umbrelOS 0.5.4 を umbrelOS 1.0 にアップデートする



で、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 を探してインストール、立ち上げてチュートリアルに従い初期設定をするだけです。

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

これだけでチャット画面が開いて 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 に対応していることもあって設定も簡単です。

OAuth & Permissions メニューからスコープを設定する
次にメニューから OAuth & Permissions に進み、アプリのスコープを設定します。
今回付与したスコープは以下の通りです。
app_mentions:read: メンションを受け取るためchat:write: 返信するためgroups:history: プライベートチャンネルの会話履歴を取得するためgroups:read: プライベートチャンネルの情報を取得するため
ちなみに、groups:*** となっているのはプライベートチャンネルが対象で、パブリックチャンネルの場合はそれぞれ channels:history、channels:read をスコープに与える必要があります。

Event Subscriptions の設定
次に、Event Subscriptions メニューに進み、「Enable Events」 を有効にします。
さらに、「Subscribe to bot events」 項目を開いて、スコープを設定します。以下の 2 つを設定してください。
app_mentionmessage.groups

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

また、Umbrel 側での設定に必要ですので、Slack アプリの設定画面 (「Basic Information」 のページで確認できます) から以下の情報をコピーしておきます。
- App Token :
xapp-から始まるやつ - Bot Token :
xoxb-から始まるやつ
合わせて、Slack チャンネルの情報として、「チャンネル ID」 が必要ですので、Slack 側でこちらも確認しておきます。先ほど作ったプライベートチャンネルに入って、「チャンネル詳細」 を表示すると表示されますのでこれもコピーしておきましょう。

Umbrel OpenClaw アプリで設定を依頼
前述したとおり、以下の情報をメモってあると思いますが、あとは Umbrel の OpenClaw アプリから、AI エージェントに設定をお願いします。
- App Token :
xapp-から始まるやつ - Bot Token :
xoxb-から始まるやつ - チャンネル 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 を無効にしてくれていたりとっても優秀。

ここまで終わったら、あとは Slack 側から @OpenClaw でメンションしてみて、反応があれば成功です。
ちょっとまだ何をさせるのか決めていないのですが、しばらく試してみようかなと思います。
余談ですが、Claude Tag という Slack と Claude を簡単に連携できるツールが公開されましたね。
現状では Team および Enterprise プランを契約しているユーザー向けにベータ版として提供されている状態で、私は Claude を Max プラン (個人用) で契約しているので残念ながら利用できないんですが、単にメンションしたら AI が作業してくれるというレベルではなく、Slack 内を自立的に AI が動き回って、ほぼ従業員のように働くらしいですよ。マジか。