PreToolUseフックによるClaudeコードイメージクラッシュ問題の修正

開発者が、Claude Codeの画像処理クラッシュ(特にAPIエラー400「画像を処理できませんでした」)に対処するPreToolUseフックを公開しました。このフックは問題のある画像がメインコンテキストに入る前にインターセプトし、セッションの失敗を防ぎます。
問題の説明
問題の原因となる画像タイプとして、透明度を持つPNGファイル、大きなスクリーンショット、複数の画像が特定されています。問題のある画像がコンテキストに入ると、その後のすべてのメッセージでエラーが発生します。ユーザーは二重エスケープバックで回復できる場合もありますが、これによりコンテキストとトークンが失われます。
解決策の実装
解決策はPreToolUseフックで、以下の機能を備えています:
- 画像に対するRead呼び出しをインターセプト
- 処理前に画像を安全に変換
- Haikuサブプロセスを通じてプロキシ処理
- 画像データがメインコンテキストに入らないことを保証
このアプローチにより、Claude Codeが画像を読み取ろうとする前に外部で画像処理を行うことで、APIエラー400のクラッシュを防止します。
技術的詳細
このフックは特に画像を含むReadツール使用呼び出しを対象としています。Haikuサブプロセスを使用して画像変換とプロキシ処理を行うことで、潜在的に問題のある画像データをメインのClaude Codeセッションコンテキストから隔離します。これにより、不良画像がコンテキストに入った後に発生する連鎖的なエラーを防ぎます。
開発者は、この解決策によりクラッシュからの回復のために二重エスケープバックを行う必要がなくなり、画像を含むセッション中のコンテキストとトークンの保持が可能になると述べています。
📖 Read the full source: r/ClaudeAI
👀 See Also

Stage CLI: ローカルでAI生成された変更を論理的な章としてレビュー
Stage CLIは、ローカルの差分を(任意のAIエージェントを介して)論理的なチャプターにグループ化し、ステップごとにレビューするためのブラウザUIを開きます。'npm install -g stagereview'でインストールし、'npx skills add ReviewStage/stage-cli'でスキルを追加します。

Snip: オープンソースツールがYAMLフィルターでClaude Codeのトークン使用量を削減
SnipはGoで書かれたオープンソースツールで、Claude Codeのトークン使用量を60〜90%削減します。これは、シェルコマンドの出力がコンテキストウィンドウに到達する前にフィルタリングすることで実現します。rtk(Rust Token Killer)に触発されていますが、異なるアプローチを取っています:フィルターはコンパイルされたコードではなく、データ(YAMLファイル)です。

CodeLedger: オープンソースのClaude Codeプラグインは、トークン使用量とバックグラウンドエージェントを追跡します
CodeLedgerは、Claude Code用のオープンソースMCPサーバープラグインで、プロジェクト全体のトークン使用量を自動的に追跡し、バックグラウンドエージェントを特定し、ローカルのJSONLセッションファイルの分析に基づいてコスト最適化の推奨事項を提供します。

ブリッツ:App Store提出用のClaudeコードツール
Blitzは、Claude CodeにApp Storeへの提出をMCPツールコールで自動化する機能を提供する無料ツールです。ユーザーはClaudeに「私のアプリをApp Storeに提出して」と依頼することで、証明書、スクリーンショット、App Store Connectフォームの処理を任せることができます。