​【非エンジニア向け】Claude CodeをSlackで遠隔操作!タバコ部屋を司令塔に変える完全構築ガイド

仕事(経営企画・FP&A)

こんにちは、がありっくです。

Claude Code、使っていますか?

非常に優秀で、お願いしたタスクへのレスポンスも早く、提案力も高い。まさに「こんなに実務能力が高いメンバーばかりだったらなぁ…」と思わせてくれる最高の相棒です。

しかし、彼には決定的な弱点がありました。「PCのターミナル画面(黒い画面)に張り付いていなければならない」ということです。

タスクを投げてタバコを吸いに行き、「そろそろ終わったかな?」と席に戻ると、確認画面でピタッと止まっている……。このもどかしさ、実務家なら分かっていただけるはずです。

「思い立ったらすぐ指示を出して、完了通知をスマホ(Slack)で受け取りたい」

プログラミング未経験、非エンジニアの私(FP&A・経営企画担当)が、この私利私欲のためにAI(Gemini)を「探偵」として雇い、Claude CodeをSlackで完全リモート操作できる環境を構築した全記録を公開します。

公式機能が実装されるのを待つ必要はありません。技術がわからなくても、AIを「部下」として指揮できれば、自分専用のツールは作れる時代です。

この記事を書いた人:がありっく

普段は事業会社で「ポンコツ経営企画部長」を自称しながら、FP&A(経営管理)の最前線で日々数字と格闘しています。

「AIを使って組織と業務の効率化をどうハックするか」を考えるのが得意です。最近、15年磨いたエクセル職人技を最新AIに瞬殺されたのをきっかけに、自分専用の「AI相棒」を自動生成するプログラムを開発しました。

もしあなたがビジネスパーソンで、日々のエクセルや資料作成、社内調整に疲弊しているなら、ぜひこちらのnoteも覗いてみてください。

1. 全体像:PCとSlackを繋ぐ「同時通訳者」の仕組み

技術的な細かい話の前に、まずは「何を作ったのか」を非エンジニア向けに分かりやすく解説します。
今回構築したシステムは、PC(Claude Code)とスマホ(Slack)の間に立つ「同時通訳者」のようなものです。

  1. PC → Slack(完了通知)
    AIの画面を監視する「監視カメラ(Pythonスクリプト)」が、「AIが話し終えた(待機状態になった)」瞬間を検知。通訳者がその内容を抜き出し、Slackチャンネルにメガホンで伝えます。
  2. Slack → PC(リモート指示)
    私たちがSlackで返信すると、通訳者が「インターホン」を通じてメッセージを受け取り、PC上で待機しているAIの画面にキーボード入力として伝達します。

【システムの構成要素】

  • tmux: PCを閉じてもAIを裏側で走らせ続ける「仮想の部屋」。
  • Flask (Python): Slackからのメッセージを受け取る「受付窓口」。
  • Ngrok: 外部(Slack)からローカルPCへ安全にアクセスするための「秘密のトンネル」。
  • watcher.py (Python): AIの画面を監視し、終わったら通知を飛ばす「監視役」。

2. 【FP&Aの視点】リスク管理とセキュリティの最適解

「非エンジニアがローカルPCをインターネットに繋ぐなんて、セキュリティ的に大丈夫なの?」
経営企画というガバナンスを重視する職務柄、私も最初は情報漏洩のリスクが怖く、構築前にGeminiを徹底的に問い詰めました。

ここでは、なぜこの構成が「許容できるリスク」であり、実務に耐えうるのかを解説します。

  • Q. Ngrokを使って社内データは漏洩しないのか?
    A. 用途と制限を明確にすれば安全です。
    Ngrokは起動するたびに「一時的で予測不能なURL」を発行します。さらに、トンネルは特定のポート(今回は受付窓口であるFlaskサーバー)のみを開放しており、PC全体のファイルやシステムにアクセスできるわけではありません。
  • Q. 悪意のある第三者がAIを勝手に操作しないか?
    A. Slackからの通信以外はすべて遮断しています。
    Slack APIの「Signing Secret」を用いた検証を実装し、事前に登録した私のワークスペース・特定のBotからの通信以外は、サーバー側で全て弾く(無視する)強固な設定にしています。
  • Q. なぜ公式機能を待たずに自作したのか?
    A. 圧倒的なROI(投資対効果)のためです。
    公式機能が出るまでの間、PCの前に縛り付けられる「私の時間単価(機会損失)」と、AIと数時間で暫定システムを作る「開発コスト」を天秤にかけました。結果、「タバコ部屋でも意思決定できる環境」を今すぐ手に入れる方がリターンが大きいと判断しました。

3. 実録・泥沼のデバッグと「探偵モード」の軌跡

システムの構想は完璧でも、実装には必ずエラー(沼)が待っています。私がこれを完成できたのは、技術力があったからではなく、「Geminiと一緒にエラーを探す対話力(探偵モード)」があったからです。
特にハマった3つの沼と、その突破口を共有します。

【沼1】沈黙のサーバーとSlack権限の壁

  • 症状: Slackで指示を出しても、ローカルのサーバーが一切反応しない。
  • 原因と解決: テストに使っていたのが「プライベートチャンネル」だったため、Botに付与していたパブリック用の権限では弾かれていました。Slack APIの設定で groups:historygroups:read を追加することで、無事に通信が開通しました。

【沼2】通知が来ない!からの「コレジャナイ感」

通信は繋がったものの、AIが処理を終えてもSlackに通知が来ません。Geminiの提案で「証拠記録モード」を実装し、AIの画面変化をすべてログに出力して監視しました。

  • 原因(インタビューモードの罠): Claude Codeは通常、末尾に を出して待機しますが、選択肢を提示する時は Enter to select... という全く別の記号で待機していたのです。この条件分岐を追加しました。

💡 タバコ部屋での歓喜と調整
検知ロジックを修正し、タバコを吸いに行った数分後。スマホに「実装完了」の通知が飛んできた瞬間は「おおおおお!!」と声が出ました。
しかし、届いた通知にはAIの「長大な思考プロセス(ファイルの読み込みログなど)」が全て垂れ流しになっていました。報告は結論ファーストであるべきです。すぐさまGeminiと「最終回答だけを抽出する正規表現」を組み込み、完璧なスマート通知を完成させました。

【沼3】自動化の罠(環境変数の消失)

  • 症状: 起動を楽にするためにシェルスクリプト(start.sh)を作ったが、自動化するとサーバーが起動しない。手動なら動くのに。
  • 原因と解決: スクリプトからtmuxへコマンドを送る際、パスワードなどの「環境変数(.env)」が引き継がれていませんでした。cd ... && source venv/bin/activate && source .env && python3 ... のように、コマンドを1行に繋いで仮想空間に送り込むことで解決しました。エンジニアなら常識かもしれませんが、非エンジニアには盲点でした。

4. まとめ:AIを「ツール」から「相棒」へ

「技術がないからできない」と諦める必要はもうありません。
私のようなプログラミング未経験の非エンジニアでも、「やりたいこと」の要件さえ明確に持っていれば、AIに「分かりやすく説明して」「一緒にエラーを探して」と頼むことで、自分専用のシステムを構築できます。

PCに縛られる時間をなくし、人間の本来の仕事である「意思決定」に集中する。
この記事が、皆さんの業務効率化のヒントになれば幸いです。

▼ AIを「優秀な右腕」としてマネジメントする秘訣とは?

「仕組みはわかったけど、実際にAIへどう指示を出せばいいの?」という方向けに、私が実際に使った『思考ログをカットさせる魔法のプロンプト』や、非エンジニアがAIを使いこなすためのマネジメント論をnoteで公開しています。こちらもぜひ合わせてご覧ください!

👉 【実録】PCに縛られるな。非エンジニアがClaude CodeをSlackで遠隔操作し、タバコ部屋を「司令塔」に変えた全記録

以上、がありっくでした!