Claude Code、便利なんだがユーザー目線では色々と改善点がある。
Vibe Coderであるならば、そのくらいは解決していくのが2025年の教養というものだろう。
npmでグローバルにインストールしたClaude Codeのソースコードを書き換える方法を共有します。
コンテクストマネジメント
不便な点の一つとして、コンテキストの使用状況が一定の閾値を超えないと表示されないこと。
現状は20%以下になった場合に表示されるが、明らかに欠陥仕様だ。
コンテクスト量が20万のClaudeモデルではタスクを一定量こなすと上限が来てしまう。
以下のコマンドでコンテクスト量を戻せるけど、開発中に持っていた情報がある程度失われてしまう。
- /compact
- 現状の情報を要約・維持しつつクリア
- /clear
なぜこの変更が必要?
コンテクストが80%残っている状態と40%残っているかで、明らかにパフォーマンスが変わる、人間と同じだ。
大きめのタスクを渡せるかも決まるのでユーザーは常にコンテクスト残量がどのくらいかを把握できる必要がある。
「今、どれくらいコンテクスト使ってるんだ…?」
「このタスクをここで依頼したら、auto-compactが途中で走るか?」
情報が一つ見えないだけで常にこれがマインドシェアを圧迫するわけです、人間の脳のコンテクストを圧迫してきます。エネルギーの無駄です。
というわけで今回は、Claude Codeのコンテキスト表示を常に表示させるカスタマイズを簡単に共有します。
こんな感じになります↓
Context tokens remaining: 125,000 (68%)
これで、コンテクストの使用状況を正確に把握しながら、安心して開発を進められるようになります。
手順
改造は cli.js
というファイルを直接編集することで行います。
macOSでHomebrewを使っている場合、ファイルは以下の場所にあります。
/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js
わからない場合はwhich claude
などでインストールされているディレクトリを確認してください。
1. 事前準備
重要: 変更の前に、必ずバックアップを作成してください。
cd /opt/homebrew/lib/node_modules/@anthropic-ai/claude-code
cp cli.js cli.js.backup
2. コードの整形
cli.js
はminify(圧縮)されていて、このままでは人間が読むのはほぼ不可能です。
このままだとClaudeもアップデートに失敗しやすいので、prettier
を使って、読みやすいように整形します。
npx prettier --write cli.js
npx を使うと、prettier
がインストールされていなくても、一時的にダウンロードして実行してくれます。便利!
3. スクリプトで一発変更!
これから sed
コマンドを使って cli.js
を書き換えていきますが、毎回手で打つのは大変なので、シェルスクリプトにまとめました。
以下の内容で apply-claude-context-mod.sh
というファイルを作成してください。
apply-claude-context-mod.sh
#!/bin/bash
CLAUDE_DIR="/opt/homebrew/lib/node_modules/@anthropic-ai/claude-code"
CLI_FILE="$CLAUDE_DIR/cli.js"
echo "Applying context display modifications..."
echo " - Always show context display"
sed -i '' 's/if (!Q || Z) return null;/\/\/ if (!Q || Z) return null;/' "$CLI_FILE"
echo " - Adding token calculation"
sed -i '' '/let G = KZ1();/a\
let tokensRemaining = FqB - A;' "$CLI_FILE"
echo " - Updating auto-compact display text"
sed -i '' 's/"Context left until auto-compact: "https://zenn.dev/"Context tokens remaining: "https://zenn.dev/" "$CLI_FILE"
echo " - Adding token count with percentage for auto-compact mode"
sed -i '' '/Context tokens remaining: /,/}/ s/B,/tokensRemaining.toLocaleString(), " (", B, "%)",/' "$CLI_FILE"
echo " - Updating low context display"
sed -i '' 's/"Context low ("https://zenn.dev/"Context low ("https://zenn.dev/" "$CLI_FILE"
sed -i '' '/Context low (/,/}/ s/B,/tokensRemaining.toLocaleString(), " tokens remaining, ", B,/' "$CLI_FILE"
sed -i '' 's/"% remaining) · Run/"%) · Run/' "$CLI_FILE"
echo "Modifications applied successfully!"
echo "Please restart your claude-code session to see the changes."
作成したスクリプトに実行権限を与えます。
chmod +x apply-claude-context-mod.sh
4. いざ、アップデート!
準備ができたら、スクリプトを実行します。
./apply-claude-context-mod.sh
これでアップデートは完了です!
自分が作業したときにClaude Codeにメモをとらせたものですが、上記のスクリプトが動かなくてもこの記事の本文をコピーしてprettifyしたcli.jsと共にClaude Codeに頼めばやってくれるはずです。
動作確認
Claude Codeを再起動してみてください。
プロンプトの下に、常にコンテクスト残量が表示されるようになっているはずです。!
Auto-compact有効時:
Context tokens remaining: 125,000 (68%)
-
125,000
: Opusの最大コンテクスト(200,000)に対する絶対的な残りトークン数 -
68%
: auto-compactが発動するまでの残り猶予
Auto-compact無効時:
Context low (40,000 tokens remaining, 20%) · Run /compact to compact & continue
-
40,000
: 絶対的な残りトークン数 -
20%
: 全体に対する残り割合
パーセンテージの計算方法がauto-compactの設定によって自動で切り替わるのがミソです。
これで、自分の設定に合わせた最適な情報が一目でわかるようになりました。
もし動かなくなったら
もしClaude Codeが起動しなくなったり、表示がおかしくなったりした場合は、慌てずにバックアップから復元してください。
または、npm i -g @anthropic-ai/claude-code
を実行すればもとに戻ります。
Claude Codeがアップデートされたら
この改造は cli.js
を直接編集しているため、Claude Codeがアップデートされると、変更が上書きされてしまいます。
アップデート後は、お手数ですが再度 apply-claude-context-mod.sh
を実行してください。
Claude Codeはかなり頻繁に仕様を大きく変えるので、将来的に同じ手順では変えられない可能性があることに留意してください。
まとめ
今回は、Claude Codeのコンテキスト表示を常に表示させ、さらに詳細な情報(トークン数とパーセンテージ)を表示する改造をご紹介しました。
これでコンテクスト管理が格段に楽になり、より快適なClaude Codeライフが送れるはずです。
ぜひ試してみてください!
Views: 0