cnighswonger/claude-code-cache-fix

Fixes prompt cache regression in Claude Code that causes up to 20x cost increase on resumed sessions

解決する課題

このプロジェクトは、Claude Codeにおけるプロンプトキャッシュのバグに対処します。このバグは、過剰なトークン消費(クォータの浪費)や不安定なキャッシュ読み取り率を引き起こします。特に、再開されたセッションや長時間実行中のセッションでキャッシュ作成トークンが繰り返し急増する問題を修正し、不要なコストを防止し、リクエストプレフィックスを安定させます。

仕組み

Claude CodeとAnthropic APIの間に位置するローカルHTTPプロキシとして動作します。プロキシは POST /v1/messages リクエストをインターセプトして書き換え、リクエスト構造(ブロックの順序、フィンガープリント、TTLなど)を正規化し、プロンプトキャッシュが効率的に動作するようにします。

主に2つの動作モードがあります:

  • リバースプロキシモード: ユーザーはClaude Codeの ANTHROPIC_BASE_URL をプロキシに向けます。
  • フォワードプロキシモード: プロキシが HTTPS_PROXY として動作し、ローカルで生成されたCAを使用して api.anthropic.com のTLSを終端します。これにより、Claude Codeの内部機能(Remote Controlなど)を有効にしたまま、リクエストの変換を可能にします。

対象者

Claude Codeを使用しており、トークンコストの高騰、長時間セッションにおける低いキャッシュヒット率、または厳格なAPIクォータの制限に直面している開発者。

ハイライト

  • キャッシュの最適化: キャッシュヒット率を向上させます(例:一部のテストでは82.3%から95.5%へ)。
  • 透過的な統合: Bunバイナリを含む、すべてのClaude Codeバージョンで動作します。
  • Remote Controlのサポート: フォワードプロキシモードにより、カスタムベースURLでは無効化されてしまうClaude Codeの高度な機能の使用が可能になります。
  • オブザーバビリティ: インストール前にセッションのトランスクリプトを通じてキャッシュの状態を測定するツールが含まれています。
  • ListNode: 実際の会話内容を変更しない、べき等な変換を行います。

関連

  • Dispatch
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト