Docker環境でClaude Codeを使っていると、思わぬところでつまずくことがあります。スラッシュコマンドの補完候補が表示されても、カーソルキーで選択できなかったり、トークン使用量が見えずに不安になったりする経験をした方もいるのではないでしょうか。
この記事では、実際に遭遇した二つの問題と、その解決策をまとめました。いずれもシンプルな設定変更で解決できるため、同じ問題に直面している方の参考になれば幸いです。
問題1: Docker内でカーソルキーが動作しない
Claude Codeのスラッシュコマンド補完で、上下のカーソルキーで選択肢を移動できない問題が発生しました。
原因
docker compose execで実行した際、環境変数TERM=dumbが設定されていたため、カーソル移動などの制御シーケンスが処理されませんでした。TERM=dumbは最も基本的なターミナルタイプで、カーソル移動をサポートしていません。
解決策
docker-compose.ymlのenvironmentセクションにTERM=xterm-256colorを追加します。
environment:
- TERM=xterm-256color
xterm-256colorは、カーソル移動のエスケープシーケンスをサポートするターミナルタイプです。256色のカラーパレットにも対応しており、最も広く互換性のある設定として知られています。
設定を反映させるには、コンテナを再起動します。
docker compose down && docker compose up -d
再起動後は、カーソルキーが正常に動作するようになります。
問題2: ステータスバーにトークン使用量を表示したい
Claude Codeでは、デフォルトではトークン使用量やコストがステータスバーに表示されません。API使用量を把握しながら作業したい場合、常に使用状況を確認できる環境が望ましいでしょう。
解決策: ccusageを使う
ccusageは、Claude Codeのローカルログファイルを分析してトークン使用量を表示するCLIツールです。このツールを使えば、使用モデル名や今日のトークン使用量、コストなどの情報をステータスバーに常時表示できます。
設定は簡単です。~/.claude/settings.jsonに以下を追加します。
{
"statusLine": {
"type": "command",
"command": "npx ccusage@latest statusline"
}
}
この設定を追加してClaude Codeを再起動すると、チャット欄の下に使用モデル名、今日のトークン使用量、コストが表示されるようになります。
ccusageはインストール不要で、npx経由で実行できます。リアルタイムで使用量を監視したい場合はnpx ccusage@latest blocks --liveを、JSON形式で出力したい場合はnpx ccusage@latest -jを使用できます。GitHubリポジトリは https://github.com/ryoppippi/ccusage で公開されています。
なお、ccusageは様々な環境に統合できます。Raycastユーザー向けにはhttps://www.raycast.com/nyatinte/ccusage でExtensionが提供されており、macOSのメニューバーに常時表示したい場合は https://github.com/joachimBrindeau/ccusage-monitor が、Neovimユーザー向けには https://github.com/S1M0N38/ccusage.nvim が利用可能です。
まとめ
Docker環境でClaude Codeを快適に使うためには、二つのポイントを押さえておく必要があります。
まず、docker-compose.ymlでTERM=xterm-256colorを設定することで、カーソルキーを含むターミナル機能が正しく動作するようになります。次に、~/.claude/settings.jsonでccusage statuslineを設定することで、トークン使用量やコストを常に把握しながら作業できる環境が整います。
いずれもシンプルな設定変更で解決できる問題ですが、知らないと不便な思いをすることになります。この記事が、同じ問題に直面している方の助けになれば幸いです。