fast-jev-compaction:Claude CodeのコンテキストをAIが精選・ロスレスで圧縮するプラグイン
fast-jev-compaction:Claude CodeのコンテキストをAIが精選・ロスレスで圧縮するプラグイン
Claude Codeのコンテキストコンパクションを、LLMによる要約ではなくAIスコアリングで改善するTypeScriptプラグイン。古いツール呼び出しと結果のみ削除し、テキストはそのまま保持。npmライブラリとしても利用可能。
GitHubで急上昇中の tamaratran/fast-jev-compaction をご紹介します。 スター数 1850★ を獲得し、DevTool分野で注目されているツールです。
fast-jev-compaction とは?
fast-jev-compactionは、Claude Codeの組み込みコンパクション(要約)をAIによる賢い削除判断に置き換えるTypeScriptプラグインです。通常のLLM要約はファイルパスやエラー内容などが失われるリスクがありますが、本ライブラリはTypeSafe社のJevモデルを使い、不要なツール呼び出しと結果のみを削除してテキストは一字一句そのまま保存します。GitHubで1,850スター以上を獲得しており、Claude Codeプラグインとnpmライブラリの両方として利用できます。
こんな人におすすめ:
- エンジニア向け: Claude Codeを日常的に使うフロントエンド・バックエンドエンジニア。長時間セッションでコンテキスト上限に悩む開発者向け。
- 非エンジニア向け: プログラミング知識が必要なため、エンジニア専用ツールです
主な機能・特徴
fast-jev-compactionの主な機能は以下の通りです。
- ツール呼び出しをJevでスコアリングし不要なものだけ削除: 各ツール呼び出しと結果に対して「まだ必要か」「結果をそのまま保持する必要があるか」を確率値として評価し、閾値(デフォルト0.5)以下のものを削除またはトランケート
- ユーザー・アシスタントのテキストメッセージを完全保持(無損失): テキストメッセージは削除や要約の対象にならず、そのまま維持される
- 複数リクエストを並行実行してバッチ処理で高速化: ステートサイズとリクエストサイズの上限に合わせて質問をバッチ分割し、並行実行で効率化
- Claude Codeプラグインとnpmライブラリ両対応:
hooks/fast-jev.tsをClaude Codeプラグインとして使うことも、TypeScriptコードから直接compactMessagesを呼ぶことも可能 - Jev失敗時は組み込みサマリーに自動切り替え: エラーや削減率不足の場合はClaude Codeの標準コンパクションにフォールバック
Claude Code コンテキスト圧縮 プラグイン としての動作フロー
/compactコマンドまたは自動コンパクション発火時にフックが動作- 全会話履歴をJevに送信し、各ツール呼び出しのスコアを取得
- スコアに基づいて削除・トランケート・保持を決定
- 再構成されたメッセージリストをClaude Codeに返却
- トーストに「fast-jev-compaction: kept N/M messages, no summary」と表示
使い方・始め方
npmライブラリとして利用する場合
npm install fast-jev-compaction
export TYPESAFE_API_KEY=<TypeSafe APIキー>
TypeScriptからの基本的な使い方:
import { compactMessages, reductionRatio, type Message } from 'fast-jev-compaction';
const transcript: Message[] = [
{ role: 'user', text: 'Fix the failing test.', toolUses: [] },
{
role: 'assistant',
text: '',
toolUses: [{ tool_use_id: 'toolu_1', tool: 'Read', input: { file_path: 'src/a.ts' } }],
},
{ role: 'user', text: '', toolUses: [], toolResults: [{ tool_use_id: 'toolu_1', text: '…file…' }] },
];
const result = await compactMessages(transcript, { preserveRecentMessages: 4 });
console.log(result.messages, result.decisions, result.stats);
if (reductionRatio(result) < 0.25) {
// 削減率が低い場合は元の履歴を使用
}
Claude Code コンパクション 使い方: プラグインとしてインストール
まず、~/.claude/settings.json に以下を追加して早期アクセス機能を有効化:
{
"env": {
"CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1",
"TYPESAFE_API_KEY": "<your key>"
}
}
次に、プラグインをインストール:
claude plugin marketplace add tamaratran/fast-jev-compaction
claude plugin install fast-jev-compaction@fast-jev-compaction
インストール後、/reload-plugins でリロードすれば完了です。
活用事例
大規模リファクタリングプロジェクトでの活用
フロントエンドエンジニアがReactコンポーネントの全面リファクタリングを行う際、Claude Codeのセッションが数時間に及ぶことがあります。従来の組み込みコンパクションでは、序盤に確認したファイルパスや設計制約がサマリーから消えてしまうことがありましたが、fast-jev-compactionを使うと「明示的に指示したコーディング規約」や「修正済みファイルのパス一覧」などのテキストメッセージはそのまま保持され、不要になった中間的なファイル読み取り結果のみが削除されます。
TypeScript/Node.js開発ワークフローへの統合
バックエンドエンジニアがAPI開発で複数のファイルを読み書きするセッションでは、ツール呼び出しの結果(ファイル内容、エラーログ等)がコンテキストを大量消費します。fast-jev-compactionのnpmライブラリを自社の開発ツールに組み込むことで、長大なファイル内容を含むツール結果を適切に圧縮し、重要な設計判断に関するテキストは保持したままセッションを継続できます。
組み込みコンパクションとの違い・なぜ今このツールか
Claude Codeの標準コンパクションは「LLMが会話全体を要約する」アプローチを取りますが、LLM要約は本質的に情報損失が避けられません。具体的なファイルパス、エラーメッセージ、コマンド引数などは要約時に省略されやすく、後から必要になっても取り出せないことがあります。
fast-jev-compactionの差別化ポイントは**「削除するが書き換えない」**アプローチです。
| 特徴 | Claude Code標準コンパクション | fast-jev-compaction |
|---|---|---|
| テキストメッセージ | 要約・書き換えあり | 完全保持(無変更) |
| ツール呼び出し結果 | 要約に含まれる可能性 | スコア判定で削除のみ |
| 精度 | LLMの要約能力に依存 | 確率スコアによる判定 |
| フォールバック | なし | 削減不十分時に自動切り替え |
GitHubで急上昇している背景には、Claude Codeユーザーが長時間セッションでの情報ロス問題に悩む中、この「要約しない」アプローチが新鮮さを持って受け入れられているという点があります。
こんな人に向いている
フロントエンドエンジニア: 大規模なコンポーネントリファクタリングや複数ファイルにまたがる変更作業で、Claude Codeセッションを長時間継続したい方。制約事項や設計ルールをテキストで指示しておき、それを維持したままコンテキストを圧縮したい場合に効果的です。
バックエンドエンジニア・TypeScript開発者: 自社の開発ツールやCLIにnpmライブラリとして組み込み、AIアシスタントのコンテキスト管理を改善したい方。compactMessages APIをカスタムJevAskerと組み合わせることで、独自のバックエンドに差し替えることも可能です。
AIエージェント開発者: Claude Codeを使ったエージェント開発で、長大なツール結果を含む会話履歴を効率的に管理したい方。Message型がClaude CodeのSessionMessageのサブセットなので、既存の会話履歴をそのまま渡せます。
使う前に知っておきたいこと
早期アクセス機能: Claude Code 2.1.274以上が必要で、CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 の環境変数設定が必須です。本番環境での安定性は保証されていません。
トークン推定は概算: token数の計算はトークナイザーを使わず文字数から推定しており、Jevが報告する値より少し多めに見積もるよう設計されています。実際のAPIコスト計算には誤差が生じます。
テキストメッセージは削除・短縮の対象外: テキストメッセージはツール呼び出しのスコアリングには使われますが、出力結果として削除・短縮されることはありません。コンテキストが大幅に超過している場合、ツール呼び出しのみを削除しても十分な削減が見込めないケースがあります。
TypeSafe APIキー必須: TypeSafe社(https://typesafe.ai)のAPIキーが必要です。商用利用前に利用規約とコストを確認してください。
関連ツール・おすすめサービス
- DigitalOcean — 開発者向けクラウド・App Platformでかんたんデプロイ
まとめ
fast-jev-compactionは、Claude Codeを長時間使う開発者にとって「コンテキスト圧縮の情報ロス」という痛点を解決するプラグインです。LLM要約を使わず、AIスコアリングによって不要なツール呼び出しだけを精選して削除するアプローチは、特に制約事項や設計ルールを長時間保持し続けたいエンジニアに向いています。TypeSafe社のAPIキーが必要ですが、npmライブラリとしても利用できるため、既存ワークフローへの統合も柔軟に行えます。
この技術を学ぶ
DevToolに興味を持った方には、Udemyのオンラインコースもおすすめです。
- 🎓 関連するDevToolコース一覧 — セール時(最大90%OFF)を狙うとお得です
関連記事
この記事が役に立ったらシェアしてください