Ravenclaw - AIコーディングエージェントの作業コンテキストを管理するオープンソースシステム
(github.com/chainofdive)概要
AIコーディングエージェント(Claude Code、Gemini CLI、Codex など)を複数のプロジェクトで活用する中で、2つの問題に直面しました。
1. エージェントを切り替えると文脈が失われる
Claude Codeで作業していてGemini CLIに切り替えると、それまで何をしていたのかを最初から説明し直さなければなりません。同じエージェントでも、セッションが終われば同じです。プロジェクトごとにターミナルの会話履歴を掘り返しながら、「ここまでやって、次はこれ」という説明を繰り返すことになります。
2. 複数のプロジェクトを並行して進めると頭がパンクする
3〜4個のプロジェクトを同時進行すると、各プロジェクトがどこまで進んでいるのかを把握すること自体が仕事になります。ターミナルタブを切り替えながら会話履歴をスクロールするやり方には限界があります。
Ravenclawは、この問題を解決するために作りました。
中核となるアイデア
エージェントの作業コンテキストを中央で管理します。
どのエージェントを使っても(Claude Code、Gemini CLI、Codex)、作業コンテキストはRavenclawに蓄積されます。エージェントを切り替えたりセッションが切れたりしても、新しいセッションでMCPツールを使って以前の状況をそのまま読み込めます。特定のエージェントに依存しません。
Web UIでは、プロジェクトごとのエピック / イシュー構造、グラフビュー、進捗率をひと目で確認できるため、「今このプロジェクトはどこまで来たっけ?」をターミナルの記録なしですぐに把握できます。
人ではなくエージェントのためのシステム
Ravenclawのチケット(イシュー / エピック)とWikiはJiraやLinearに似ていますが、主な利用者が異なります。
- イシューを作成し、状態を変え、Wikiを書くのは エージェント です
- 人間はWeb UIで全体状況を確認し、必要なときに説明を追加したりコメントで方向性を示したりする役割です
- エージェントが判断を必要とする場面でHuman Input Requestを送ると、Webで回答できます
エージェントがプログラムからアクセスできるようにMCPプロトコルで40個以上のツールを提供しており、CLIとREST APIでもすべての機能を利用できます。
主な機能
- Webチャット: ブラウザからエージェントに直接指示、リアルタイムのストリーミング応答
- 会話の継続性:
claude --resumeを活用し、会話履歴をDBに保存 - プロジェクトの可視化: グラフビューでエピック / イシュー構造と進捗率をひと目で把握
- コンテキストスナップショット: エージェントが作業進行状況を保存し、次のセッションで引き継ぎ
- 権限制御: エージェント実行時に auto-approve / bypass / accept-edits を選択
- マルチエージェント: Claude Code、Gemini CLI、Codexから選んで同一プロジェクトで作業
技術スタック
TypeScriptモノレポ(pnpm workspaces)
- API: Hono + PostgreSQL(Drizzle ORM)
- Web: React + Tailwind + ReactFlow
- エージェント連携: MCP Protocol(40以上のツール)
- CLI: Commander.js
- テスト: Playwright E2E(14件)
インストール
git clone https://github.com/chainofdive/ravenclaw.git
cd ravenclaw && pnpm install && pnpm build
docker-compose up -d && pnpm db:push
セルフホスト型で、PostgreSQLさえあれば動作します。Apache 2.0ライセンスです。
実際にこのシステムで複数のサイドプロジェクトをAIエージェントと一緒に並行管理しています。フィードバックや質問は歓迎です。
まだコメントはありません。