Socket Mode対応でドメイン不要のSlack-OpenHands連携ボット
🇺🇸 English | 🇯🇵 日本語
OpenHandsをSlackから直接操作できるボットです。Socket Modeを使用しているため、独自ドメインやWebhookの設定が不要で、簡単にセットアップできます。
- 🤖 SlackからOpenHandsと直接チャット
- 🧵 スレッドベースの会話管理(1スレッド = 1プロジェクト)
- 💬 ダイレクトメッセージ対応
- 🔌 Socket Mode(Webhook・ドメイン設定不要)
- ⚡ OpenHandsからのリアルタイム応答
- 🌐 日本語・英語対応
OpenHandsは強力なAI開発支援ツールですが、Web UIでの操作が必要でした。このボットにより、普段使っているSlackから直接OpenHandsの機能を利用できるようになります。
- アクセス性: Web UIを開かずにSlackから直接操作
- チーム連携: Slackのスレッド機能でプロジェクト管理
- ハードルの低さ: ドメイン設定不要で簡単導入
- 継続性: 会話の文脈を保持した開発支援
- コードレビューの依頼
- バグ修正の相談
- 新機能の実装支援
- ドキュメント作成
- チーム開発でのペアプログラミング
- Node.js 18以上
- OpenHandsが
http://localhost:3000で動作中 - Slack管理者権限
- https://api.slack.com/apps にアクセス
- 「Create New App」→「From scratch」をクリック
- アプリ名(例:「OpenHands Bot」)を入力してワークスペースを選択
Slackアプリ設定画面で:
OAuth & Permissions → Bot Token Scopes:
app_mentions:readchat:writeim:readim:writecommands
Socket Mode:
- Socket Modeを有効化
- App-Level Tokenを作成(スコープ:
connections:write)
npm install.envファイルを作成:
# OAuth & Permissions → Bot User OAuth Token から取得
SLACK_BOT_TOKEN=xoxb-your-bot-token
# Basic Information → Signing Secret から取得
SLACK_SIGNING_SECRET=your-signing-secret
# Socket Mode → App-Level Token から取得
SLACK_APP_TOKEN=xapp-your-app-token
# OpenHands設定
OPENHANDS_API_URL=http://localhost:3000
PORT=3001Slackで /invite @your-bot-name を実行してボットをチャンネルに招待
npm start@openhands-bot CSVファイルを読み込むPythonスクリプトを作成して
会話が開始されると、同じスレッド内で継続してやり取りできます(同一プロジェクトとして扱われます)。
ボットへのDMでプライベートな会話も可能です。
/openhands-help- ヘルプ表示/openhands-status- OpenHands接続状態確認/openhands-conversations- アクティブな会話一覧/openhands-open- OpenHands WebUIリンク取得
- スレッド管理: Slackスレッド ↔ OpenHands会話のマッピング
- リアルタイム同期: Socket接続でOpenHandsの応答をSlackにストリーミング
- 文脈保持: スレッド内で会話の文脈を維持
- ドメイン不要: WebhookではなくSocket Modeを使用
src/config.jsのデフォルト設定:
- モデル:
lm_studio/devstral-small-2505 - ベースURL:
http://host.docker.internal:1234/v1/ - エージェント:
CodeActAgent
| 変数名 | 説明 | 必須 |
|---|---|---|
SLACK_BOT_TOKEN |
Bot User OAuth Token | ✅ |
SLACK_SIGNING_SECRET |
App Signing Secret | ✅ |
SLACK_APP_TOKEN |
Socket Mode用App-Level Token | ✅ |
OPENHANDS_API_URL |
OpenHandsベースURL | ✅ |
OPENHANDS_MODEL |
使用するLLMモデル | ❌ |
OPENHANDS_AGENT |
エージェント種別 | ❌ |
PORT |
サーバーポート | ❌ |
- OpenHandsの動作確認:
/openhands-status - ボットがチャンネルに招待されているか確認
- コンソールログでエラーを確認
- 必要なOAuthスコープがすべて追加されているか確認
- スコープ変更後はワークスペースに再インストール
SLACK_APP_TOKENが正しいか確認- Slackアプリ設定でSocket Modeが有効になっているか確認
# 開発モード(自動再起動)
npm run dev
# OpenHands接続テスト
npm run test-connectionMIT License - 自由に改変・配布可能です!
- リポジトリをフォーク
- 機能ブランチを作成
- プルリクエストを送信
OpenHandsコミュニティのために ❤️ で作られました