Skip to main content

cc-discussion

Discussion Room Screenshot

複数のClaude/Codexインスタンスが、それぞれ異なるClaudeCode/Codex CLIの会話履歴(コンテキスト)を持ちながらディスカッションできるWebアプリケーションです。

クイックスタート

インストール不要で実行(推奨)

# uvx で即座に実行(Python 3.11以上が必要)
uvx cc-discussion

# または npx で実行(Node.js 環境向け)
npx cc-discussion

pip でインストール

pip install cc-discussion
cc-discussion

npm でインストール(Node.js ユーザー向け)

npm install -g cc-discussion
cc-discussion

npm版は自動的にPython仮想環境を ~/.cc-discussion/venv/ に作成します。

Note: Claude/Codex エージェントを使用するには、事前に各 CLI ツールのインストールが必要です(下記「必要要件」参照)。

起動オプション

cc-discussion --help

# カスタムポート
cc-discussion --port 9000

# ブラウザを自動で開かない
cc-discussion --no-browser

# 開発モード(ホットリロード)
cc-discussion --reload

起動後、ブラウザが自動で http://127.0.0.1:8888 を開きます。


必要要件

要件 説明
Python 3.11+ 必須
Claude CLI Claude エージェントを使用する場合(インストール・ログイン済み)
Codex CLI Codex エージェントを使用する場合(オプション)

Claude CLI のセットアップ

# Claude CLI をインストール(https://claude.ai/download)
# インストール後、ログイン
claude login

概要

Slackのような会議室を作成し、2〜3人のClaude/Codexを招待してディスカッションさせることができます。各Claude/Codexには過去のClaudeCode/Codex会話履歴を注入できるため、人間がコンテキストを橋渡しする必要なく、問題解決や状況確認を行えます。

主な特徴

機能 説明
ClaudeCode/Codex履歴ブラウザ ~/.claude/projects/および~/.codex/から過去のセッションを読み込み・選択
マルチエージェント会議室 2〜3人のClaude/Codex参加者でディスカッション
コンテキスト注入 各エージェントに過去の会話履歴を自動注入
リアルタイムストリーミング WebSocketでディスカッションをリアルタイム表示
並列準備処理 次の発言者がバックグラウンドで準備(ファイル読み込み等)を行い、待ち時間を短縮
会議タイプ別プロンプト 9種類の会議タイプに応じた最適化されたプロンプトを自動適用
ファシリテーター機能 AIファシリテーターが会議を進行・まとめ
モデレーター介入 人間が途中で発言を挿入してディスカッションを誘導可能

使い方

1. 会議室を作成

  1. 画面左上の「New Room」ボタンをクリック
  2. 会議設定を入力:
    • 会議室名: 識別しやすい名前
    • トピック: ディスカッションのテーマ(詳細に書くほど良い結果に)
    • 会議タイプ: 9種類から選択(後述)
    • 最大ターン数: 会議の長さを制御(デフォルト: 20)
    • 言語: 日本語 or 英語
  3. 参加者を設定(2〜3人):
    • 名前: 表示名(例:Claude A, Claude B)
    • 役割: 専門性や視点(例:アーキテクト、コードレビュアー)
    • エージェントタイプ: Claude または Codex
    • コンテキスト: 過去のClaudeCode/Codexセッションを選択(オプション)
    • ファシリテーター: チェックすると会議進行役として動作

2. 会議タイプ

会議の目的に応じて最適化されたプロンプトが自動適用されます:

タイプ 用途 議論のポイント
進捗・状況確認 開発進捗の共有、スケジュール遅延・ブロッカーの把握 現在の進捗、予定との差異、ブロッカー特定
要件・仕様の認識合わせ 要件定義・仕様内容の確認、解釈差分の解消 仕様の解釈確認、曖昧点の明確化、エッジケース
技術検討・設計判断 アーキテクチャ・技術選定、実装方針の決定 選択肢比較、メリデメ、拡張性・保守性
課題・不具合対応 技術的課題・リスクの洗い出し、不具合の原因分析 再現手順、根本原因、対応策、優先度
レビュー 設計レビュー、実装レビュー、品質確認 品質評価、改善点、ベストプラクティス
計画・タスク整理 タスク分解、担当者・期限の明確化 粒度、依存関係、優先順位、リスク
リリース・運用判断 リリース可否判断、デプロイ手順確認 品質確認、ロールバック、監視項目
改善・振り返り 開発プロセスの振り返り、改善アクション決定 Keep, Problem, Try
その他 カスタム説明を入力して自由に設定 -

3. コンテキストの選択

各参加者に過去のClaudeCode/Codex会話履歴を注入できます:

  1. 参加者フォームで「コンテキストを選択」をクリック
  2. ClaudeCode履歴: ~/.claude/projects/から読み込み
  3. Codex履歴: ~/.codex/から読み込み
  4. プロジェクト → セッションの順に選択

選択したセッションの会話内容が、そのエージェントのシステムプロンプトに注入されます。これにより、エージェントは過去のやり取りを「記憶」した状態で議論に参加できます。

4. ディスカッションの実行

  1. 会議室を作成後、自動的に会議室ページに移動
  2. Startボタンでディスカッション開始
  3. チェーン駆動方式で議論が進行(詳細は後述)
  4. Pauseで一時停止、Stopで終了、ヘッダーのゴミ箱アイコンで削除

5. チェーン駆動方式(Chain-driven Flow)

ディスカッションはチェーン駆動方式で進行します。発言者が次の発言者を@メンションで指名し、会話の流れを自然に繋げます。

┌─────────────────────────────────────────────────────────────┐
│                  チェーン駆動型フロー                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. ファシリテーター: オープニング → 最初の発言者を@指名     │
│                      ↓                                      │
│  2. 参加者A: 発言 → 最後に次の発言者を@指名                  │
│                      ↓                                      │
│  3. 参加者B: 発言 → 最後に次の発言者を@指名                  │
│                      ↓                                      │
│  4. 参加者C: 発言 → 指名なし                                 │
│                      ↓                                      │
│  5. ファシリテーター: 介入 → 話の流れで次を@指名             │
│                      ↓                                      │
│  6. ... 繰り返し ...                                        │
│                      ↓                                      │
│  7. ファシリテーター: クロージング(まとめ)                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

特殊なメンション

メンション 効果
@参加者名 指名した参加者が次に発言
@ALL 全参加者が順番に発言
@モデレーター 人間のモデレーターに質問・確認(ディスカッションが一時停止)
@END ファシリテーターのみ使用可。議論を終了してクロージングへ移行

チェーン駆動のメリット

  • 自然な会話の流れ: 関連する知見を持つ人に話を振れる
  • 柔軟な議論: 話題に応じて適切な人が発言
  • ファシリテーターの介入: 指名がない場合は自動的にファシリテーターが次を決定
  • 人間との協調: @モデレーターで人間の判断を仰げる

6. 並列準備処理(Parallel Preparation)

Discussion Roomの特徴的な機能として、並列準備処理があります:

  • 現在の発言者が話している間、次の発言者はバックグラウンドで準備
  • 準備中にファイル読み込みやコード検索を実行
  • 準備完了後、即座に発言を開始
  • 待ち時間を大幅に短縮

7. モデレーター介入

ディスカッション中に人間がモデレーターとして発言を挿入できます:

  1. 画面下部のテキストボックスにメッセージを入力
  2. Enter(またはSendボタン)で送信
  3. 次のエージェントの発言時にモデレーターメッセージが考慮されます

用途例:

  • 議論の方向性を修正
  • 追加の情報や制約を提供
  • 特定のトピックに焦点を当てるよう指示

データの保存場所

データ 保存先
データベース ~/.cc-discussion/discussion.db
ClaudeCode履歴 ~/.claude/projects/ (読み取り専用)
Codex履歴 ~/.codex/ (読み取り専用)

開発者向け

ソースからの起動

# リポジトリをクローン
git clone https://github.com/nogataka/cc-discussion.git
cd cc-discussion

# 起動スクリプトを使用(初回は自動セットアップ)
./start.sh

# または開発モード
./start.sh --dev

起動スクリプトオプション

# 通常起動(プロダクションモード)
./start.sh

# 開発モード(Viteホットリロード付き)
./start.sh --dev

# カスタムポート指定
./start.sh --port 9000

# リモートアクセス許可(セキュリティ注意)
./start.sh --host 0.0.0.0

バックエンドのみ起動

source venv/bin/activate
python -m uvicorn backend.main:app --reload --port 8888

フロントエンドのみ起動

cd frontend
npm run dev

ビルド

cd frontend
npm run build

コード品質

# Python linting
source venv/bin/activate
ruff check backend/
mypy backend/

# TypeScript type check
cd frontend
npx tsc --noEmit

技術スタック

バックエンド

技術 用途
FastAPI 非同期REST API・WebSocket
SQLAlchemy 2.0 ORM(宣言的マッピング)
SQLite データベース(設定不要)
Claude Agent SDK Claudeエージェント制御
Codex SDK Codexエージェント制御

フロントエンド

技術 用途
React 19 UIフレームワーク
TypeScript 型安全性
Vite ビルドツール・開発サーバー
Tailwind CSS v4 ユーティリティファーストCSS
Radix UI アクセシブルUIコンポーネント
TanStack Query サーバー状態管理

トラブルシューティング

エージェントタイプが選択できない

CLI ツールがインストールされていない可能性があります:

# Claude CLI をインストール
# https://claude.ai/download からダウンロード
claude login

# Codex CLI をインストール
npm install -g @openai/codex

Claude CLIが見つからない

# Claude CLIをインストール(https://claude.ai/download)
# ログイン
claude login

ポートが使用中

cc-discussion --port 9000

データベースのリセット

# データベースファイルを削除(全データ消失)
rm ~/.cc-discussion/discussion.db

Windows での実行

Windows でも動作します:

uvx cc-discussion
# または
pip install cc-discussion
cc-discussion

データは C:\Users\<username>\.cc-discussion\ に保存されます。


API リファレンス

履歴閲覧API

メソッド エンドポイント 説明
GET /api/history/projects ClaudeCodeプロジェクト一覧
GET /api/history/projects/{id}/sessions セッション一覧
GET /api/history/sessions/{id} セッション詳細
GET /api/history/codex/projects Codexプロジェクト一覧
GET /api/history/codex/projects/{id}/sessions Codexセッション一覧

ルーム管理API

メソッド エンドポイント 説明
POST /api/rooms ルーム作成
GET /api/rooms ルーム一覧
GET /api/rooms/{id} ルーム詳細
DELETE /api/rooms/{id} ルーム削除
POST /api/rooms/{id}/start ディスカッション開始
POST /api/rooms/{id}/pause 一時停止
POST /api/rooms/{id}/moderate モデレーター発言

WebSocket

エンドポイント 説明
WS /ws/rooms/{id} リアルタイム更新

ライセンス

MIT License

Metadata

Release files for cc-discussion 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cc-discussion 1.2.0
File Size Uploaded Provenance
cc_discussion-1.2.0.tar.gz 192.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cc-discussion 1.2.0
File Interpreter ABI Platform
cc_discussion-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 392.7 kB

Release files / cc_discussion-1.2.0.tar.gz

Download URL cc_discussion-1.2.0.tar.gz
Size 192.3 kB
Tags Source
SHA-256 checksum
How to use checksums
49ec8b4f5437b7671a929112a519643b0ea0785bac342ce4ab5a2fd792ea1a1f
BLAKE2b-256 checksum
How to use checksums
6288ff6b0ab37ffc3affe53a2a9c605db73f95022a17c36c2b7f30f7192800f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / cc_discussion-1.2.0-py3-none-any.whl

Download URL cc_discussion-1.2.0-py3-none-any.whl
Size 200.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
610b6f4bee5cbef12abf92d22abd849f493b7a8aad606a2b3b226533d2338d82
BLAKE2b-256 checksum
How to use checksums
9f1fc6bd00a5085d1a396206fb30f61aa8bace0479b9ef964a920b4ee9e0db96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for cc-discussion 1.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page