Ikeraq

mksglu/context-mode

AI エージェントに生データを読ませず、会話の枠を長持ちさせる

ライセンス条件が不明 TypeScript ★ 30,737 (今日 +233) 今日 更新
GitHub で見る mksglu/context-mode
GitHub の説明(原文)
Context window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP + hooks.

どういうものか

AI のコーディングエージェントが、ツールの出力で会話の枠(コンテキスト)を使い切ってしまう問題を減らす MCP サーバーだ。README の例では、ブラウザ操作ツール Playwright のページのスナップショット1回で 56KB、GitHub の issue 20件で 59KB を食う。さらに枠が埋まって会話が圧縮(要約)されると、エージェントはどのファイルを直していたか、何を頼まれていたかを忘れてしまう。

対策の中心は、生のデータを会話の外で処理することだ。エージェントはファイルやログを直接読む代わりに、集計や抽出をするコードを書き、別のプロセスで実行させる。会話に入るのは、その出力だけ。ウェブページや、探したいことを指定した長い出力は、手元の SQLite に索引として保存し、必要な部分だけを検索で引き出す。対応している環境では、フックがツールの呼び出しを横取りし、出力の大きくなりそうな操作をこの仕組みへ回す。

もう1つの柱は、作業の続きを保つことだ。ファイルの編集、git の操作、タスク、エラー、利用者の判断を SQLite に記録しておき、会話が圧縮されたあとや再開したときに、関係する分だけを検索して戻す。Claude Code、Gemini CLI、VS Code の Copilot、Cursor、Codex CLI など多くの環境に対応するが、使えるフックの種類は環境ごとに違う。

生データは外で処理し、結果だけを会話に入れる ツールの出力 (ログ・API の応答・ページ) サンドボックス (別プロセスで処理・索引) 会話 (結果と、検索で引いた部分だけ) 作業の記録も外に保存し、圧縮のあとに必要な分だけ戻す
サンドボックスを通したデータは会話に入る前に外で受け止め、エージェントには処理した結果だけを見せる。

どんなときに使うか

長い作業の途中で、エージェントが会話の圧縮を繰り返し、前の作業を忘れるとき

Claude Code など対応している環境では、編集したファイルや頼んだ内容が記録されているので、圧縮されたあとも続きから進めやすくなる。Cursor のように、圧縮後の復元がまだ使えない環境もある。

ログや API の応答、ウェブページなど、大きなデータを何度も読ませる作業が多いとき

データそのものを会話に流さず、集計した結果や必要な断片だけを渡せる。

注意点

ライセンスは Elastic License 2.0。 README によれば、ソースは公開されていて改変や再配布もできるが、ホスティングサービスとして提供することと、ライセンス表記を消すことは禁じられている。MIT のような自由なライセンスではない。

効果の数字は開発元の測定。 README は、1回の作業全体で 315KB の出力が 5.4KB になったとしている。フックが使えない環境では、節約は約60%にとどまるとも書いている。

前の作業を引き継ぐには、再開の指定が要る。 --continue を付けずに始めると、前回のセッションのデータはすぐに消える。

開発の様子

8 か月
公開してからの期間。2026-02-23 が最初のコミットです
195 回
リリースの回数です
111 人
開発に参加した人数です
0 日前
最後のコミットです
356 件
未解決の Issue とプルリクエストの合計です(GitHub はこの2つを同じ数に含めます)

ほかの候補

farion1231/cc-switch
AIコーディングツール9種の接続先を、設定ファイルを開かずに切り替える
nextlevelbuilder/ui-ux-pro-max-skill
AIに画面を作らせる前に、業種に合うデザインの決まりごとを先に引かせる
Graphify-Labs/graphify
コードも資料も1枚のつながりにして、読んだのか推測したのかを残す
X で共有 この記事がよかったら

この記事の更新日は 2026-10-02 です。 内容は公開されている README と GitHub のデータに基づいています。 数値は GitHub から取得したもの、警告は判定の基準にある条件での自動判定です。事実誤認を見つけた場合はお知らせください。