この記事をシェア
まだ読んでいない方は、先に【前編】Clawdbot完全ガイドをご覧ください。
実際にやってみたら想像以上にハマった。この記事を先に読んでいれば、あの2時間は節約できたのに。
はじめに:この記事で解決すること
前編ではClawdbotの概要と機能を紹介した。後編では、実際に動かすまでの全手順を、コマンドと設定ファイルを中心に解説する。
特にSlack連携は罠が多い。結論から言うと、Slack連携の設定はマニフェストを使えば一発だが、手動でやると地獄を見る。この記事を読めば、その地獄を回避できるはずだ。
動作環境
今回検証した環境は以下の通り。特別なスペックは必要ない。
| 項目 | 内容 |
|---|---|
| PC | ThinkPad X1 Carbon 2018 |
| OS | Windows 10/11 + WSL2 (Ubuntu) |
| Node.js | v22(nvm経由) |
| シェル | bash |
| RAM | 2GB以上推奨 |
Clawdbotの要件はNode.js 22以上なので、最新のLTS版であれば問題ない。
Step 1: WSL2の準備
WSL2の有効化(初回のみ)
まだWSL2を有効化していない場合は、PowerShellを管理者権限で開いて以下を実行する。
wsl --install
再起動を求められたら再起動する。
WSL2の起動
すでにWSL2が入っている人は、Ubuntuを起動するだけでOK。
wsl
システムの更新
Ubuntuのターミナルが開いたら、まずシステムを最新にしておこう。
sudo apt update && sudo apt upgrade -y
💡 Windows Terminalを使おう
WSLのデフォルトターミナルだと日本語が文字化けすることがある。Windows Terminalを使うと解決する。Microsoft Storeから無料でインストールでき、WSL2との相性も抜群だ。
https://aka.ms/terminal
Step 2: Node.jsのインストール(nvm経由)
Clawdbotの実行にはNode.jsが必要だ。バージョン管理ができるnvmを使うのがおすすめ。
nvmのインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
インストール後、ターミナルを再起動するか、以下を実行して反映させる。
source ~/.bashrc
Node.js v22のインストール
nvm install 22
nvm use 22
バージョン確認
node -v
# v22.21.1
npm -v
# 10.x.x
正しくバージョンが表示されればOK。
Step 3: Clawdbotのインストール
npmでグローバルインストールする。一行で終わる。
npm install -g clawdbot
バージョン確認
clawdbot --version
# v2025.1.29 など
Step 4: 初期セットアップ(onboard)
Clawdbotには対話式のセットアップコマンドが用意されている。
clawdbot onboard
このコマンドを実行すると、以下を順番に設定していく。
設定項目
- Anthropic APIキーの設定
- AnthropicのコンソールでAPIキーを取得
sk-ant-api03-...の形式で入力
- デフォルトモデルの選択
- Claude Sonnet 4(バランス型・推奨)
- Claude Opus 4(高性能・高コスト)
- Claude Haiku(軽量・低コスト)
- 基本設定の生成
- 設定ファイルが
~/.config/clawdbot/に自動生成される
- 設定ファイルが
先にAnthropicのアカウントを作成してAPIキーを発行しておこう。無料枠もあるので、まずは試してみることができる。
https://console.anthropic.com/
Step 5: ゲートウェイの起動とCLIチャット
Slack連携の前に、CLIでClawdbotが動作することを確認する。
ゲートウェイの起動
clawdbot gateway start
ゲートウェイはClawdbotのバックエンドプロセスで、各チャネル(Slack、CLI等)からのメッセージを処理する。
CLIでチャットしてみる
clawdbot chat
ターミナル上でClaudeと会話できる。
You: こんにちは!
Claude: こんにちは!何かお手伝いできることはありますか?
ここで正常に応答が返ってくれば、APIキーの設定はOKだ。Ctrl+Cで抜ける。
Step 6: Slackアプリの作成(⚠️ ここが最大の山場)
ここからがこの記事の本題であり、最もつまづきやすいパートだ。
作成方法の比較
| 方法 | 難易度 | 所要時間 | おすすめ度 |
|---|---|---|---|
| 手動で一つずつ設定 | ★★★★★ | 1〜2時間 | ❌ |
| マニフェストから作成 | ★☆☆☆☆ | 5分 | ✅✅✅ |
結論: マニフェストを使え。 理由は後述するが、手動設定は罠だらけだ。
マニフェストからSlackアプリを作成する手順
- https://api.slack.com/apps にアクセス
- 「Create New App」 をクリック
- 「From a manifest」 を選択
- ⚠️ 「From scratch」を選ばない! ここが最重要ポイント
- ワークスペースを選択
- JSON形式を選択し、以下のマニフェストを貼り付ける
Slackアプリマニフェスト(そのままコピペ可)
{
"display_information": {
"name": "cbot"
},
"features": {
"bot_user": {
"display_name": "cbot",
"always_online": false
},
"app_home": {
"messages_tab_enabled": true,
"messages_tab_read_only_enabled": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"chat:write",
"channels:history",
"channels:read",
"groups:history",
"groups:read",
"groups:write",
"im:history",
"im:read",
"im:write",
"mpim:history",
"mpim:read",
"mpim:write",
"users:read",
"app_mentions:read",
"reactions:read",
"reactions:write",
"pins:read",
"pins:write",
"emoji:read",
"commands",
"files:read",
"files:write"
]
}
},
"settings": {
"socket_mode_enabled": true,
"event_subscriptions": {
"bot_events": [
"app_mention",
"message.channels",
"message.groups",
"message.im",
"message.mpim",
"reaction_added",
"reaction_removed",
"member_joined_channel",
"member_left_channel",
"channel_rename",
"pin_added",
"pin_removed"
]
}
}
}
- 「Create」 をクリック
これだけで、必要なスコープ・イベント・Socket Mode・App Homeの設定がすべて一括で完了する。手動だと10箇所以上の設定画面を行き来する必要があるものが、JSON一発で終わる。
Step 7: トークンの取得
アプリを作成したら、2つのトークンを取得する。この2つを混同すると動かないので注意。
7-1. App-Level Token(xapp-...)の取得
Socket Mode接続に必要なトークン。
- Slackアプリの設定画面で 「Basic Information」 に移動
- 「App-Level Tokens」セクションで 「Generate Token and Scopes」 をクリック
- トークン名を入力(例:
clawdbot-socket) - スコープに
connections:writeを追加 - 「Generate」 をクリック
- 表示された
xapp-1-...で始まるトークンをコピー
7-2. Bot User OAuth Token(xoxb-...)の取得
APIリクエストに必要なトークン。
- 左メニューから 「OAuth & Permissions」 に移動
- 「Install to Workspace」 をクリック
- 権限を確認して 「許可する」 をクリック
- 表示された
xoxb-...で始まる Bot User OAuth Token をコピー
トークンの役割まとめ
| トークン | プレフィックス | 用途 |
|---|---|---|
| App-Level Token | xapp-1-... |
Socket Mode接続(WebSocket) |
| Bot User OAuth Token | xoxb-... |
Slack APIリクエスト |
役割が違うので、設定時に取り違えるとエラーになる。
Step 8: ClawdbotにSlack設定を追加
取得したトークンをClawdbotに設定する。方法は2つある。
方法A: 設定ファイルに直接書く
設定ファイルの場所: ~/.config/clawdbot/config.json
# 設定ファイルを編集
nano ~/.config/clawdbot/config.json
以下の内容を追加(既存の設定がある場合はマージ):
{
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-XXXXXXXXXXXX-XXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"botToken": "xoxb-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX"
}
}
}
方法B: 環境変数で設定(推奨)
トークンを設定ファイルに直書きしたくない場合は、環境変数でも設定できる。
export SLACK_APP_TOKEN="xapp-1-XXXXXXXXXXXX-..."
export SLACK_BOT_TOKEN="xoxb-XXXXXXXXXXXX-..."
環境変数の永続化
.bashrc に追記して永続化する。
# .bashrcに追記
echo 'export SLACK_APP_TOKEN="xapp-1-XXXXXXXXXXXX-..."' >> ~/.bashrc
echo 'export SLACK_BOT_TOKEN="xoxb-XXXXXXXXXXXX-..."' >> ~/.bashrc
# 反映
source ~/.bashrc
💡 セキュリティのヒント
- トークンをGitリポジトリに含めないよう注意
.bashrcに書く場合も、そのファイルの管理には気をつける- 本格運用するなら、1Passwordなどのシークレットマネージャーとの連携も検討
Step 9: ゲートウェイの再起動と動作確認
設定を反映するためにゲートウェイを再起動する。
ゲートウェイの再起動
clawdbot gateway restart
ステータス確認
# 基本ステータス
clawdbot status
# 詳細ステータス
clawdbot status --deep
ログ確認
clawdbot logs
Slack接続が成功していれば、ログに Slack connected のようなメッセージが表示される。
Step 10: ペアリングの承認
Slackアプリが正常に接続されたら、Slack上でbotにDMを送ってみよう。
ペアリング手順
- Slackで作成したbot(例:
cbot)を検索してDMを開く - 何かメッセージを送る(例: 「こんにちは」)
- ペアリングコードが表示される(初回のみ)
- WSL2のターミナルでペアリングを承認する
clawdbot pairing approve slack <表示されたコード>
承認後の確認
承認が完了すると、Slack経由でClaudeと会話できるようになる! 🎉
あなた: 今日の天気を教えて
cbot: 申し訳ありませんが、私はリアルタイムの天気情報にアクセスする機能を持っていません。
天気を確認するには、天気アプリやウェブサイトをご利用ください。
他にお手伝いできることはありますか?
🔥 トラブルシューティング集
ここからがこの記事で一番伝えたいことだ。実際にハマったトラブルを、症状・原因・解決策のセットで紹介する。
トラブル1: Event Subscriptionsが無効だった
症状: Slack接続は成功しているのに、botにDMを送っても一切反応がない。
原因: 手動設定で「Event Subscriptions」のトグルをONにし忘れていた。さらに厄介なのは、ONにした後に「Save Changes」を押さないと反映されないこと。
解決策:
- Slackアプリ設定 → 「Event Subscriptions」を開く
- 右上のトグルが ON になっていることを確認
- 「Subscribe to bot events」にイベントが登録されていることを確認
- ページ下部の「Save Changes」を必ずクリック
必ず「Save Changes」ボタンを押すこと。これで30分は無駄にした。
トラブル2: Botトークンのスコープ不足
症状: Slackのエラーで missing_scope が返る。
原因: 手動設定だと、必要なスコープを一つずつ追加する必要がある。「これは要らないかな」と思ってスキップしたスコープが、実は必須だったりする。
確認方法: Slack APIを直接叩いて、現在のスコープを確認できる。
curl -s -H "Authorization: Bearer xoxb-YOUR-BOT-TOKEN" \
"https://slack.com/api/conversations.list?types=im&limit=10" | jq .
エラーレスポンスの例:
{
"ok": false,
"error": "missing_scope",
"needed": "channels:read",
"provided": "app_mentions:read,im:history"
}
この例だと channels:read が足りていない。
解決策: 足りないスコープを一つずつ追加するのは非効率。マニフェストから作り直すのが最も確実。
トラブル3: ソケットは繋がるのにイベントが届かない
症状: clawdbot logs を見ると、Socket Modeの接続自体は成功している。しかし、Slackでメッセージを送っても、ログにイベント受信の痕跡がまったくない。
原因: Event Subscriptionsの「Subscribe to bot events」にイベントが一つも登録されていなかった。特に message.im(DMのメッセージイベント)が未登録だと、botにDMを送っても何も起きない。
確認方法:
- Slackアプリ設定 → 「Event Subscriptions」を開く
- 「Subscribe to bot events」セクションを確認
- 以下のイベントが登録されているか確認する
必須イベント一覧:
| イベント | 用途 |
|---|---|
message.im |
DMを受信するために絶対必要 |
message.channels |
チャンネルでのメンション対応 |
message.groups |
プライベートチャンネル対応 |
message.mpim |
グループDM対応 |
app_mention |
@メンション検知 |
推奨イベント:
| イベント | 用途 |
|---|---|
reaction_added |
リアクション追加検知 |
reaction_removed |
リアクション削除検知 |
member_joined_channel |
メンバー参加検知 |
member_left_channel |
メンバー退出検知 |
channel_rename |
チャンネル名変更検知 |
pin_added |
ピン追加検知 |
pin_removed |
ピン削除検知 |
解決策: やはりマニフェスト。手動だとこの「bot eventsの登録」を見落としやすい。
トラブル4: 手動設定の罠 → マニフェストで一発解決
症状: 上記のトラブル1〜3が複合的に発生。一つ直してもまた別の問題が出て、モグラ叩き状態に。
やったこと:
- 手動で作成したSlackアプリを削除
- https://api.slack.com/apps で「Create New App」→「From a manifest」を選択
- 前述のJSONマニフェストを貼り付けて作成
- App-Level TokenとBot Tokenを再取得
- Clawdbotの設定を更新してゲートウェイ再起動
# 設定を更新した後
clawdbot gateway restart
# 状態を確認
clawdbot status --deep
結果: 一発で動いた。
手動設定で1〜2時間格闘していたのが嘘のように、マニフェストなら5分で完了した。
📌 教訓: 最初からマニフェストを使うべし。
手動設定は学習にはなるが、実用的にはマニフェスト一択。
特にSlack APIに不慣れな人は、絶対にマニフェストから始めるべきだ。
コマンドリファレンス
Clawdbotの主要コマンドをまとめる。
ゲートウェイ操作
# ゲートウェイの起動
clawdbot gateway start
# ゲートウェイの停止
clawdbot gateway stop
# ゲートウェイの再起動
clawdbot gateway restart
# ゲートウェイのステータス確認
clawdbot gateway status
状態確認
# 基本ステータス
clawdbot status
# 詳細ステータス(接続チャネル、設定内容等)
clawdbot status --deep
# ログ表示
clawdbot logs
# ログをリアルタイム表示
clawdbot logs -f
チャット
# CLIでチャット
clawdbot chat
# 特定のセッションでチャット
clawdbot chat --session <session_id>
ペアリング
# ペアリングリクエストの一覧
clawdbot pairing list
# ペアリングの承認
clawdbot pairing approve <channel> <code>
# ペアリングの拒否
clawdbot pairing reject <channel> <code>
セキュリティ
# セキュリティ監査
clawdbot security audit
# システム診断
clawdbot doctor
設定
# 初期セットアップ
clawdbot onboard
# 設定の確認
clawdbot config show
# 設定ファイルの場所
# ~/.config/clawdbot/config.json
設定ファイルリファレンス
設定ファイルの場所
~/.config/clawdbot/config.json
基本構造
{
"ai": {
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"apiKey": "sk-ant-api03-..."
},
"channels": {
"slack": {
"enabled": true,
"appToken": "xapp-1-...",
"botToken": "xoxb-..."
},
"discord": {
"enabled": false,
"botToken": ""
}
},
"security": {
"dmPolicy": "pairing",
"allowlist": []
},
"tools": {
"shell": {
"enabled": true,
"sandbox": false
},
"browser": {
"enabled": true
},
"filesystem": {
"access": "rw",
"workspace": "~/"
}
}
}
主要設定項目
| セクション | キー | 説明 |
|---|---|---|
ai.provider |
string | AIプロバイダー(anthropic, openai, google等) |
ai.model |
string | 使用するモデル名 |
ai.apiKey |
string | APIキー |
channels.slack.enabled |
boolean | Slack連携の有効/無効 |
channels.slack.appToken |
string | App-Level Token |
channels.slack.botToken |
string | Bot User OAuth Token |
security.dmPolicy |
string | DMポリシー(pairing, allowlist, open, disabled) |
tools.shell.sandbox |
boolean | サンドボックスモードの有効/無効 |
tools.filesystem.access |
string | ファイルシステムアクセス(none, ro, rw) |
動作確認チェックリスト
すべての設定が完了したら、以下のチェックリストで確認しよう。
CLI確認
# 1. ゲートウェイが起動しているか
clawdbot gateway status
# 2. 全体ステータスの確認
clawdbot status
# 3. 詳細ヘルスチェック
clawdbot status --deep
# 4. ログにエラーがないか
clawdbot logs
Slack側の確認
- ☐ botにDMを送って返答があるか
- ☐ チャンネルで@メンションして反応するか
- ☐ ペアリングが承認されているか
おまけ: WSL2ならではの便利な使い方
OneDrive経由でWindowsファイルにアクセス
WSL2からは /mnt/c/ 経由でWindowsのファイルシステムにアクセスできる。OneDriveのフォルダも例外ではない。
# OneDriveのドキュメントフォルダにアクセス
ls "/mnt/c/Users/ユーザー名/OneDrive/ドキュメント/"
つまり、Clawdbotに「OneDrive上のExcelファイルを読んで」と頼むことも可能だ。
PythonでExcelを処理する例
# Python環境のセットアップ
pip install openpyxl xlrd
# PythonでExcelを読む例
import openpyxl
wb = openpyxl.load_workbook('/mnt/c/Users/ユーザー名/OneDrive/ドキュメント/data.xlsx')
ws = wb.active
for row in ws.iter_rows(values_only=True):
print(row)
SlackからClawdbotに「このExcelの売上データを集計して」と頼めば、WSL2上のPythonを使って処理してくれる。
/mnt/c/ 経由のファイルアクセスは遅い。頻繁にアクセスするファイルは、WSL2のネイティブファイルシステム(~/以下)にコピーしてから処理するのがおすすめ。
バックグラウンド実行(tmux使用)
WSL2のターミナルを閉じるとClawdbotも止まってしまう。常時稼働させたい場合は、tmuxやscreenを使う。
# tmuxのインストール
sudo apt install tmux
# セッションを作成
tmux new -s clawdbot
# セッション内でゲートウェイを起動
clawdbot gateway start
# セッションからデタッチ(Ctrl+B → D)
# これでターミナルを閉じてもClawdbotは動き続ける
# 再接続したい場合
tmux attach -t clawdbot
systemdでの自動起動(上級者向け)
WSL2でsystemdが有効な場合、サービスとして登録することも可能。
# /etc/systemd/system/clawdbot.service
[Unit]
Description=Clawdbot Gateway
After=network.target
[Service]
Type=simple
User=your_username
ExecStart=/home/your_username/.nvm/versions/node/v22.21.1/bin/clawdbot gateway start
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# サービスの有効化
sudo systemctl enable clawdbot
sudo systemctl start clawdbot
最短手順まとめ
最後に、この記事の内容を最短手順にまとめる。余計な回り道をしないルートだ。
# ====================================
# Step 1-2: Node.jsのインストール
# ====================================
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install 22
# ====================================
# Step 3: Clawdbotのインストール
# ====================================
npm install -g clawdbot
# ====================================
# Step 4: 初期セットアップ
# ====================================
clawdbot onboard
# → Anthropic APIキーを入力
# → モデルを選択(Claude Sonnet 4推奨)
# ====================================
# Step 5: CLIで動作確認
# ====================================
clawdbot gateway start
clawdbot chat
# → Claudeと会話できることを確認したらCtrl+Cで抜ける
# ====================================
# Step 6: Slackアプリを作成
# ====================================
# 1. https://api.slack.com/apps にアクセス
# 2. 「Create New App」→「From a manifest」を選択(←重要!)
# 3. マニフェストJSONを貼り付けて作成
# 4. App-Level Token (xapp-...) を取得
# 5. Bot User OAuth Token (xoxb-...) を取得
# ====================================
# Step 7-8: トークンを設定
# ====================================
export SLACK_APP_TOKEN="xapp-..."
export SLACK_BOT_TOKEN="xoxb-..."
# .bashrcに永続化
echo 'export SLACK_APP_TOKEN="xapp-..."' >> ~/.bashrc
echo 'export SLACK_BOT_TOKEN="xoxb-..."' >> ~/.bashrc
# ====================================
# Step 9: ゲートウェイ再起動
# ====================================
clawdbot gateway restart
clawdbot status --deep
# ====================================
# Step 10: ペアリング承認
# ====================================
# SlackでbotにDMを送り、表示されたコードを使って承認
clawdbot pairing approve slack <コード>
# ====================================
# 🎉 完了!Slackで会話できるようになる
# ====================================
最重要ポイント3つ
- Slackアプリは「From a manifest」で作れ。 手動設定は罠が多すぎる。
- 2つのトークン(xapp- と xoxb-)を間違えるな。 役割が違う。
- 設定を変えたら「Save Changes」を押せ。 Slackの設定画面は自動保存されない。
この3つさえ守れば、30分以内にWSL2上のClawdbot × Slack環境が構築できるはずだ。
参考リンク
| リソース | URL |
|---|---|
| Clawdbot 公式リポジトリ | github.com/clawdbot/clawdbot |
| 公式ドキュメント | docs.molt.bot |
| Windows (WSL2) ドキュメント | docs.molt.bot/platforms/windows |
| Slack API - Your Apps | api.slack.com/apps |
| Anthropic Console(APIキー取得) | console.anthropic.com |
| nvm - Node Version Manager | github.com/nvm-sh/nvm |
| Windows Terminal | aka.ms/terminal |
おわりに
Clawdbotは、単なるチャットボットを超えた「実際に動くAIアシスタント」だ。Slack連携さえ乗り越えれば、日常のタスク自動化において強力なパートナーになってくれる。
この記事で紹介したトラブルシューティングが、あなたの時間を節約する助けになれば幸いだ。
質問やフィードバックがあれば、ぜひコメントで教えてほしい。
この記事は、WSL2 (Ubuntu) + Node.js v22 + ThinkPad X1 Carbon 2018 の環境で検証しました。
最終更新: 2026年1月
