原文(日本語に翻訳)
NO_COLOR が設定されているときにプロンプトのカーソルが消えてしまう問題を修正しました。
原文(英語)
Fixed prompt cursor disappearing when NO_COLOR is set
概要
ターミナルのカラー出力を無効化するための標準環境変数 NO_COLOR を設定している場合、Claude Codeのプロンプト入力のカーソルが表示されなくなる問題がありました。カーソルが見えないとどこに入力しているかわからなくなるため、非常に不便な状態でした。今回の修正でカラー出力が無効な環境でもカーソルが正しく表示されます。
基本的な使い方
bash
# NO_COLOR 環境変数を設定してClaude Codeを起動
export NO_COLOR=1
claude
# 修正前: カーソルが表示されず、入力位置が見えない
# 修正後: カーソルが正しく表示される(カラーなしで)実践例
NO_COLOR が必要なシナリオ
bash
# スクリーンリーダーを使用している場合
# カラーコードがスクリーンリーダーの読み上げを妨げる
export NO_COLOR=1
claude
# CI/CDパイプラインでの使用
# ANSIカラーコードがログを読みにくくする
NO_COLOR=1 claude --print "コードをレビューしてください"
# カラー非対応の古いターミナルエミュレータ
export NO_COLOR=1
claudeNO_COLOR標準規格について
# NO_COLOR は https://no-color.org/ で定義された標準
# 値は任意(空文字でも"1"でも"true"でも有効)
# 設定方法:
export NO_COLOR=1 # 一般的な設定
export NO_COLOR="" # 空文字でも有効
NO_COLOR=1 command # コマンドごとの設定
# Claude Codeへの影響(修正後):
# - カラー出力なし(エラーメッセージ、ハイライト等)
# - カーソルは正常に表示される ← 今回の修正
# - テキストは通常の白黒で表示アクセシビリティ設定での利用
bash
# 視覚的なアクセシビリティを考慮した設定
# ~/.zshrc での設定
export NO_COLOR=1 # カラー出力を無効化
export TERM=xterm-256color # ターミナルタイプの指定
# この設定でも修正後はClaude Codeのカーソルが正常表示
claude
# スクリーンリーダーとの組み合わせ
# NO_COLOR=1 によりANSIエスケープコードが除去される
# → スクリーンリーダーがテキストをクリーンに読み上げられるカーソル表示の確認
bash
# 修正の効果を確認する方法
# 1. NO_COLOR を設定
export NO_COLOR=1
# 2. Claude Code を起動
claude
# 3. プロンプト入力欄にカーソルが表示されることを確認
# 修正前: カーソルが消えていた(入力はできるが見えない)
# 修正後: カーソルが表示される
# 4. テキストを入力してカーソルが動くことを確認注意点
NO_COLORは環境変数として設定します。値は何でも有効(1、true、空文字等)- カラー出力が無効になることで、シンタックスハイライト等の色付けも無効になります
- カーソルはカラーではなくターミナルのネイティブカーソル機能で表示されるため、
NO_COLORの影響を受けるべきではありませんでした(今回の修正でその動作が実現) FORCE_COLORを設定してカラーを強制する場合はこの問題は発生しませんNO_COLORとTERM=dumbを組み合わせている場合も、カーソルは正常に表示されます