AI / PLATFORM / IN-HOUSE
Slack経由でClaude Codeと通信する仕組み
em-chan
CHALLENGE
課題
Claude Codeはターミナルの前にいないと使えない。外出先や別のPCから、Slackに書くだけで「向こうにスタッフがいる」ように業務を依頼できれば、一人体制でも手の届く範囲が広がる。そのための橋渡しを自社で構築し、実運用で検証した。
APPROACH
取り組み
- Claude Code CLIをラップせず、tmux上に常駐させてキー入力で対話する方式を採用。都度起動やSDK経由はセッション継続性とファイル配置型のカスタマイズ面で不利と判断して排除
- Slack Socket Modeで受信するブリッジ(Python)が、スレッドごとにtmux windowを生成してClaude Codeを起動。1 Slackスレッド = 1 Claude Codeセッションでコンテキストの混線を防ぐ
- 応答の返送はClaude Code公式のStop Hookで検知し、最後のアシスタントメッセージを元のスレッドに投稿
- 1チャンネル = 1業務 = 1フォルダとし、業務別のCLAUDE.mdとスキルで振る舞いを分ける
- メール送信系の権限は実装しない方針を固定(読み取り・通知のみ)
- 手順を構築プレイブックとして文書化し、クライアント環境へ複製できる形にした
TECH
技術
- Claude Code(Hooks / CLAUDE.md / スキル)
- Slack API(Socket Mode)
- Python(ブリッジ)、シェルスクリプト(Stop Hook)
- tmux、launchd(macOS常駐)
- Proxmox LXC(一部処理の分離)
NOW
現在地
自社で実運用し、Slackスレッドからの指示→Claude Code実行→スレッド返信の往復を確認した。検証を経て、現在は用途を月次処理の自動実行とSlackへの読み取り専用通知に絞った第二世代を設計中。コードと知見は別案件のLINE連携に転用している。
SCALE
規模
- 自社1ワークスペース・数チャンネル規模の検証
OTHER