OpenClawを使えばClaude Codeを24時間Slackに常駐させ、メッセージ応答・定期タスクの自動実行が可能になります。
- 要点1: npmコマンド1つでインストール。Slack Bot Tokenを取得して設定ファイルに記載するだけで常駐エージェントが起動する
- 要点2: cronジョブ機能でGA4レポートやカレンダー通知など定期タスクをSlackに自動送信できる
- 要点3: 「Slackで返信が来ない」原因はwatchdogタイムアウトまたはエージェントスタックのどちらか。タイムアウト延長かゲートウェイ再起動で解消できる
対象: Claude Codeを日常業務で活用しており、Slack経由でAIに指示したい経営者・DX推進担当者
今日やること: npm install -g openclaw@latest を実行してOpenClawをインストールする
この記事の目次
OpenClawを使うと、Claude CodeをSlackに24時間常駐させることができます。Slackでメッセージを送るだけでClaude Codeに作業を依頼でき、夜中のcronジョブで定期レポートを自動送信することも可能です。
「PCの前にいなくてもAIに作業を続けさせたい」「Slackから手軽にClaude Codeに指示を出したい」——こうした要望を持つ方にとって、OpenClawは現時点でもっとも実用的な選択肢の一つです。
この記事では、OpenClawのインストールから設定、弊社での実際の活用事例、そして運用中に遭遇したトラブルと解決策まで、一気通貫で解説します。
OpenClawとは? — Claude CodeをSlackに常駐させるOSSゲートウェイ
OpenClawは、Claude Codeなどのローカルで動くAIエージェントを、Slackや各種メッセージングアプリに接続するためのオープンソースゲートウェイです。2026年3月時点でGitHubのスター数が247,000超に達しており、AIエージェントの分野で急速に普及しています。
OpenClawをインストールすると、ローカルマシン上で「ゲートウェイ」というデーモンプロセスが常時起動します。このゲートウェイがSlackとのWebSocket接続を維持し続けることで、Slackからメッセージが届くたびにClaude Codeを起動して処理させる仕組みです。
Claude Codeとの違い
Claude CodeはAIと対話しながらコーディング作業を行うためのCLIツールです。ターミナルを開いて対話する「対話型」のツールであり、PCの前でコマンドを入力している間だけ動きます。
OpenClawは、このClaude Codeを「常駐サービス」に変えるためのミドルウェアです。
| 項目 | Claude Code | OpenClaw |
|---|---|---|
| 操作方法 | ターミナルで直接対話 | Slack等のメッセージアプリ経由 |
| 起動タイミング | ユーザーが操作するとき | 常時起動(デーモン) |
| 定期実行 | 手動のみ | cronジョブで自動スケジュール |
| 複数プラットフォーム | なし | Slack、Discord、Telegram等に対応 |
OpenClawでできること
- Slackからの指示受け付け: DMやチャンネルのメンションでClaude Codeに作業を依頼
- cronジョブ: 決まった時刻に定期タスクを自動実行してSlackに結果を送信
- マルチエージェント: Claude(メイン)と別モデルを並列稼働させて分業
- チャンネルポリシー: 特定のチャンネルやDMのみ受け付けるアクセス制御
詳しい概要については「OpenClawとは?機能・仕組み・実際の活用事例を徹底解説」もあわせてご覧ください。
インストールとSlack接続の手順(5ステップ)
OpenClawの初期設定はシンプルです。Slackアプリの作成に少し時間がかかりますが、全体で30〜60分あれば完了します。
Step 1: OpenClawをnpmでインストール
Node.js(v18以上)が入っていることを確認した上で、以下のコマンドを実行します。
npm install -g openclaw@latest
インストール後、初回起動時にセットアップウィザードが動きます。使用するAIモデル(Claude)のAPIキーやClaude Codeのパスなどを設定します。
openclaw setup
ポイントAnthropicのコンソールで発行したAPIキーを使う場合と、Claude Codeのサブスクリプションを使う場合で設定が異なります。企業での利用であれば、コスト管理のしやすいAPIキー方式を推奨します。
Step 2: SlackアプリとBotトークンの作成
SlackのAPI管理ページ(api.slack.com/apps)にアクセスし、新しいSlackアプリを作成します。
取得が必要なトークンは2種類です。
| トークン | 形式 | 役割 |
|---|---|---|
| Bot Token | xoxb- で始まる |
ボットとしてSlackに投稿する |
| App Token | xapp- で始まる |
Socket ModeでSlackとWebSocket接続する |
App Tokenの取得にはSocket Modeの有効化が必要です。「Socket Mode」を有効にした上で、「App-Level Tokens」のセクションで connections:write スコープを付与したトークンを発行してください。
次に、Event Subscriptionsを有効にし、以下のイベントを購読します。
message.channels(パブリックチャンネルのメッセージ)message.im(DM)app_mention(メンション)
最後に、ボットをワークスペースにインストールし、使いたいチャンネルに招待します。
Step 3: openclaw.jsonの設定
~/.openclaw/openclaw.json を開き、Slackの設定を記述します。
{ "channels": { "slack": { "botToken": "xoxb-XXXX", "appToken": "xapp-XXXX", "channelPolicy": { "type": "allowlist", "channels": ["C0XXXXXXXXX", "C0YYYYYYYYY"] }, "dmPolicy": { "type": "allowlist", "users": ["U0XXXXXXXXX"] } } }}
設定のポイント:
channelPolicy: 受け付けるチャンネルをallowlistで限定することで、意図しないチャンネルでのボット応答を防ぎますdmPolicy: DMを受け付けるユーザーをallowlistで限定します。type: "all"にすると全ユーザーからのDMを受け付けます
Step 4: ゲートウェイを起動して動作確認
openclaw gateway start
起動後、指定したSlackチャンネルにボットを招待し、メッセージを送ってみます。数秒〜数十秒後にClaude Codeが応答すれば接続成功です。
常時起動させるには、macOSのLaunchAgent(plistファイル)やLinuxのsystemdに登録するか、tmuxやscreenでセッションを維持しながらバックグラウンドで動かします。
Step 5: ダッシュボードで状態確認
ゲートウェイ起動中は、ブラウザで http://127.0.0.1:18789 にアクセスするとダッシュボードが表示されます。
ここで確認できる情報:
- ゲートウェイの稼働状態
- 接続中のSlackチャンネル
- 実行中・完了したcronジョブの一覧
- エージェントの処理ログ
ダッシュボードから直接メッセージを送って動作確認することもできます。
\ Claude Codeの導入、何から始めればいいかわかります /
法人向けClaude Code個別指導の無料相談はこちら弊社での活用事例 — Slackエージェントとして実際に使っていること
弊社では、OpenClawを数ヶ月間ローカルで運用しています。実際に日常業務の中に組み込んでいる活用事例を紹介します。具体的なサービス名やクライアント情報は伏せますが、仕組みや設定の具体性はそのままお伝えします。
毎朝の定期レポートをcronで自動送信
もっとも実用的な活用が、定期レポートのcron自動送信です。弊社では以下のようなcronジョブを設定しています。
| ジョブ名 | スケジュール | 内容 |
|---|---|---|
| 検索順位レポート | 毎朝9:30 | Search Console APIでクエリ・順位データを取得しSlackに送信 |
| アクセス解析レポート | 毎朝9:45 | GA4 APIでセッション数・ページ別データを取得しSlackに送信 |
| カレンダー通知 | 毎朝7:30 | Googleカレンダーの今日の予定を取得して通知 |
これらのジョブが毎日自動実行されることで、朝Slackを開くと前日の数値が揃っています。分析・判断に使える状態でデータが届くため、情報収集にかける時間をほぼゼロにできています。
マルチエージェント構成(Claude + 別モデルの並列運用)
OpenClawはメインのClaudeエージェントに加え、別のモデルを並列で動かせます。弊社では用途に応じて使い分けています。
- Claudeメインエージェント: コード生成・記事執筆など、精度を重視する作業
- サブエージェント: 速度を重視する簡易チェックや情報収集
OpenClawの設定ファイルで agents セクションを追加することで、メッセージの内容や発信元チャンネルに応じてどのエージェントを使うか振り分けができます。
ワークスペースシステムでエージェントの行動を制御
OpenClawは ~/.openclaw/ ディレクトリ以下にいくつかのMarkdownファイルを配置することで、エージェントの振る舞いを細かく制御できます。
| ファイル | 役割 |
|---|---|
SOUL.md |
エージェントの基本的な役割・制約・優先事項を定義 |
AGENTS.md |
複数エージェントの役割分担を記述 |
HEARTBEAT.md |
定期的に実行するルーティンを記述 |
IDENTITY.md |
ボットの名前・口調・自己紹介文を定義 |
これらのファイルを適切に設定することで、「このSlackチャンネルでは丁寧な語調で返す」「特定のファイルは触らない」といったルールを自然言語で指定できます。
Claude CodeやOpenClawの設定について、詳しい設定方法やカスタマイズは無料相談でお伝えしています。導入の手間を最小化したい方や、自社業務に合わせたcronジョブ設計をしたい方は、ぜひお気軽にご相談ください。
よくあるトラブルと解決策
OpenClawは設定自体はシンプルですが、実際に運用すると「Slackで返信が来ない」という問題に必ず一度はぶつかります。弊社でも複数回遭遇しました。原因は大きく2パターンです。
トラブル1: Slackで返信が来ない(watchdogタイムアウト)
症状: Slackにメッセージを送ったのに、何分待っても返信が来ない。
原因: Claude APIの応答が遅い場合、watchdog(番犬)という監視機能が「エージェントが止まった」と判断して強制終了させます。デフォルトのタイムアウトは約600秒(10分)ですが、複雑な作業や大量のコンテキストが必要な場合はこれを超えることがあります。
ログで確認すると次のような行が記録されています。
watchdog timeout: model=opus (pid=XXXXX) — 10分間出力なし
解決策: タイムアウトを延長します。また、ゲートウェイを再起動してスタックしたセッションをリセットします。
# ゲートウェイ再起動openclaw gateway restart
根本的な解消には、リクエストを分割して処理を軽くするか、応答の速いモデル(sonnet等)を使う設定に変えることが有効です。
トラブル2: Slackで返信が来ない(エージェントスタック)
症状: OpenClawは起動中だが、特定のメッセージだけ返信が来ない。ログにも大量のコマンド実行が記録されている。
原因: エージェントが「ないはずのファイルを探し続ける」などの無限ループ的な状態に入ることがあります。たとえば、Slack上に添付されたファイルをローカルで検索しようとして、find コマンドを何十個も並行実行し続けるケースがありました。
解決策: 問題のあるプロセスをkillします。OpenClawのダッシュボード(http://127.0.0.1:18789)を開くか、ターミナルで該当のエージェントプロセスを確認してkillします。
# ゲートウェイのステータスとプロセス確認openclaw gateway statusopenclaw agents list# または直接プロセスをkillkill [PID]
再発防止には、エージェントに「外部ファイル(Slack上のファイル等)はローカルに存在しない」という制約をSOUL.mdに明示すると効果的です。
トラブル3: cronジョブが動かない(タイムアウト設定が短い)
症状: cronジョブを設定したのに、Slackに通知が届かない。ダッシュボードのログに job execution timed out と表示される。
原因: cronジョブにもタイムアウト設定があり、デフォルトは600秒(10分)です。しかし、Google Search ConsoleやGA4などのAPIにアクセスしてデータを取得する処理は、モデルとのやり取りも含めると10分を超えることがあります。
解決策: ~/.openclaw/cron/jobs.json を開き、該当ジョブの timeoutSeconds を 1200(20分)に延長します。
{ "jobs": [ { "name": "seo-report", "schedule": "30 9 * * *", "timeoutSeconds": 1200, "payload": "..." } ]}
注意cronジョブ実行時にjobs.jsonが上書きされることがあります。手動でタイムアウトを変更した場合、次回ジョブ実行後に値がリセットされていないかを確認してください。
\ 業務自動化のお悩み、プロが30分で整理します /
法人向けClaude Code個別指導の無料相談はこちらcronジョブの設定方法 — 定期タスクを自動化する
OpenClawのcron機能は、ジョブの追加・一覧表示・削除をCLIまたはダッシュボードから管理できます。
cronジョブの追加と管理コマンド
| コマンド | 説明 |
|---|---|
openclaw cron list |
登録済みのcronジョブ一覧を表示 |
openclaw cron add |
新しいジョブを対話形式で追加 |
openclaw cron run [name] |
指定したジョブを即時(手動)実行 |
openclaw cron delete [name] |
ジョブを削除 |
スケジュールはcron記法で指定します。「毎朝9:30」は 30 9 * * *、「平日の朝のみ」は 30 9 * * 1-5 と記述します。
cronの同時実行とタイムアウトのチューニング
複数のcronジョブを近い時刻に設定すると、同時実行が重なって処理が遅延することがあります。弊社ではジョブの実行時刻を15分ずつずらして設定しています(9:30、9:45、10:00…)。
maxConcurrentRuns の設定で同時実行数の上限を設定することもできます。APIのレートリミットが気になる場合は 1 に設定して直列実行にするのが安全です。
{ "cron": { "maxConcurrentRuns": 1 }}
よくある質問
Q. OpenClawは無料で使えますか?
OpenClaw自体はオープンソース(MITライセンス)で無料です。ただし、Claude Codeを動かすにはAnthropicのAPIキーまたはClaude Codeサブスクリプションが必要です。APIキーの場合、使用量に応じたコストがAnthropicに発生します。cronジョブで大量のリクエストを送る場合は、事前にコスト試算をしておくことをおすすめします。
Q. OpenClawとClaude Codeはどちらを使えばいいですか?
用途によって使い分けます。コードの生成・修正作業を対話的に行う場合はClaude Codeを直接使うほうがシンプルです。一方で、PCの前にいない時間にもAIに作業を続けさせたい、Slackで手軽に指示を出したい、定期タスクを自動化したいという場合はOpenClawが必要になります。多くの場合、両方を目的に応じて使い分ける運用が現実的です。
Q. MacのほかにWindowsやLinuxでも使えますか?
OpenClawはNode.js製のため、WindowsとLinuxでも動作します。ただし、Claudeコマンドのパスやシステム依存の設定が異なる場合があります。弊社ではmacOSを使用しており、LinuxやWindowsでの動作確認は公式ドキュメントをご参照ください。
\ AI活用の「次の一手」を一緒に考えませんか /
法人向けClaude Code個別指導の無料相談はこちらまとめ
OpenClawを使えば、Claude CodeをSlackに24時間常駐させることができます。
この記事のポイントを振り返ります。
- OpenClawはClaude Codeを常駐エージェントに変えるゲートウェイ。npmでインストールし、Slack Bot TokenとApp Tokenを設定するだけで動き始める
- cronジョブで定期タスクを自動化できる。毎朝のレポート送信やカレンダー通知など、Slackをハブにした情報収集の自動化に効果的
- よくあるトラブルは「watchdogタイムアウト」か「エージェントスタック」。タイムアウト設定の延長とゲートウェイ再起動が基本の解決策
- cronジョブのタイムアウトはデフォルト600秒。APIアクセスを含む重い処理では1200秒に延長することを推奨
OpenClawとClaude Codeを組み合わせると、業務の自動化・効率化の幅が大きく広がります。
Claude Code × OpenClawの導入・活用をサポートします
株式会社Nexaでは、Claude Codeを活用した業務自動化の個別指導を提供しています。OpenClawの初期設定から、cronジョブ設計、自社業務への適用まで、「何から始めればいいかわからない」という段階からサポートいたします。詳しい設定方法やカスタマイズは無料相談でお伝えしています。





