- Claude Chillは、Claude Codeがターミナル全体を繰り返し再描画する際に発生する遅延とちらつきの問題を緩和するPTYプロキシツール
- Claude Codeが使用する**同期出力(sync blocks)**を横取りし、VT100ベースのレンダリングで画面の変更された部分だけを更新
- 履歴バッファを維持してスクロールバックを可能にし、Ctrl+6キーで「ルックバックモード」に入り、全出力履歴を確認できる
- 一定時間入力がない場合に自動で履歴をダンプする**自動ルックバック(auto-lookback)**機能を提供
- LinuxとmacOSで動作し、ターミナルの性能と可読性を改善する軽量ソリューション
概要
- Claude Chillは、Claude Codeのターミナル出力の問題を解決するために作られたPTYプロキシプログラム
- Claude Codeは出力全体を同期ブロックで囲んで一度にレンダリングするが、この過程で数千行規模の全画面更新が発生
- これにより、遅延、ちらつき、スクロールバックの消失などの問題が生じる
- Claude ChillはターミナルとClaude Codeの間に入り、出力差分だけを反映し、履歴バッファを維持する
主な機能
- Syncブロックの横取り: Claude Codeが送る大規模な同期ブロックを検知して処理
- VTベースのレンダリング: VT100エミュレータを使って画面状態を追跡し、変更された部分だけを出力
- 履歴の保持とルックバックモード: 出力内容をバッファに保存し、過去のログを確認可能
- Ctrl+6キーでルックバックモードに入る
- Claudeの出力を一時停止し、全履歴をターミナルに表示
- 再度キーを押すか、Ctrl+Cで終了可能
- 自動ルックバック(auto-lookback): 一定時間(デフォルト15秒)入力がないと自動で履歴をダンプ
-a 0オプションで無効化可能
- 自動ダンプ時には画面が一時的にちらつくことがある
インストールと使用方法
設定ファイル
- 場所:
- Linux:
~/.config/claude-chill.toml
- macOS:
~/Library/Application Support/claude-chill.toml
- 主な項目:
history_lines: 履歴の最大行数
lookback_key: ルックバックモード切り替えキー
refresh_rate: レンダリングFPS
auto_lookback_timeout_ms: 自動ルックバック時間
キーボードプロトコルとキー設定
- Kitty Keyboard Protocolをサポートするターミナル(Kitty、Ghostty、WezTermなど)では自動でモードを切り替え
- Claude CodeがKittyモードを有効にすると、Claude Chillも自動でそのエンコーディングを認識
- キー形式:
[modifier][key]
- 例:
[f12], [ctrl][g], [ctrl][shift][j]
- デフォルトキーのCtrl+6はASCII 0x1Eを送信し、ほとんどのターミナルと衝突しない
- macOSでは**Ctrl+Shift+6 (Ctrl+^)**で同じ動作
動作の仕組み
注意事項
- 個人的な利便性のために開発されたツールであり、広範なテストは行われていない
- LinuxとmacOSで動作確認済み
- 重要なシステムやインフラ環境での使用は推奨されない
- MITライセンス
1件のコメント
Hacker Newsのコメント
私は Claude CodeのTUIレンダリング を担当している
長らくご不便をおかけして申し訳ないが、本日すべてのユーザーに 差分レンダラー(differential renderer) を展開した
レンダリングシステムを全面的に書き直し、現在はセッションの約1/3のみが断続的なちらつきを経験する状態になった。連続的なちらつきはほぼなくなった
また、VSCodeターミナルとtmuxに 同期出力(DEC mode 2026) サポートのパッチを提出し、すでにマージされている
完全にちらつきのない環境を望むならGhosttyを勧める。関連情報は issue #769 comment, xterm.js PR #5453, tmux PR #4744 で確認できる
GitHub issue(#1913, #826, #3648)には毎日コメントが付いているのに、12月のロールバック以降Anthropicからの返答はほとんどなかった
技術的な難しさは理解するが、コミュニケーション不足 がユーザーの信頼を失わせたように思う
エージェントは1つか2つしか動かしていないのにこうなる。もしかすると 以前の料金プランのrate limit が残っているのか、あるいは 長いコンテキストのセッション が原因なのか気になる
それでもこのツールのおかげで以前は不可能だったアプリを作れており、本当に面白い
macOSのiTermでウィンドウのフォーカスを失うたびに画面が上へスクロールしてしまい、とても不便だった
Ghostty 1.0以降 メモリリーク があり、Claude CodeのようなCLIアプリがその条件を頻繁に作り出して問題が表面化していた
修正はすでにマージされており、1.3リリースに含まれる予定だ
Zedのように柔軟に構成できれば、はるかに良い体験になりそうだ
数か月Claude Codeを使っていなかったが、まだflickerが解決していなかったとは 驚いた
オープンソース化しない理由は競争上の問題ではなく、コードベースの混沌 にあるのかもしれないと思った
issue #769 に関連情報がある
私はローカルでnpmパッケージにパッチを当てたが完璧ではない。構造的にレンダリング方式を変える必要がある
ちなみにOpenAI Codexは Rust + ratatui で書かれているのでこの問題がない
こういう複雑なバグは結局、人が週末に腰を据えて直接直さないといけないのに、エージェントばかり回しているように見える
他のCLIツール(opencode, codex, gemini, droid など)にはこうした問題がない
tmux環境で実際に使ってみればどれほどつらいかわかるはずだが、それでも少しは理解したい
私はClaude Codeを使いたいが、Ghosttyのスクロールバック機能 が壊れていて使えない
PTYプロキシが出力ストリームを横取りするため、Ghosttyの内部バッファにアクセスできなくなる
flickeringが正確に何を指すのか気になっていた
ときどきClaude Codeが突然上へスクロールしてしまい、再び下まで戻るのが難しく、ターミナルを再起動しないと正常に戻らない
入力欄を ターミナルの下部に固定 するトグル機能があればいいと思う
チャットと入力欄の間を何度もスクロールするのが面倒だ
モバイルでの使い勝手という面では ゲームチェンジャー級の機能 になりそうだ
readme.mdのフォーマットを見ると Claude Codeが自分で書いたような印象 があって興味深い
今回のアップデートは ここ数か月のClaude Codeへの最大の貢献 のように思える
すぐにインストールしてテストしてみる予定だ
関連情報として、「Claude Codeのターミナルレンダリングを 85%改善 した」という 以前の投稿 を見た
ついにflickeringを減らしてくれてありがとう。頭痛を引き起こすバグ だったので、これで少しは助かる
Anthropicがこの問題を早く完全に解決してくれることを願う
Codexはセッションが長くなってもずっと 応答性が高く、Claudeは時間が経つともたつく