原文(日本語に翻訳)
自動検出で検知できないターミナル(例: Emacs の eat)で同期出力を強制有効化する CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 環境変数を追加しました。
原文(英語)
Added CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 env var to force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs eat)
概要
Claude Code は通常、ターミナルの種類を自動検出して同期出力の有効・無効を判断しますが、一部の特殊なターミナルエミュレータでは検出に失敗することがあります。CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 を設定することで、自動検出に頼らず強制的に同期出力を有効化できます。Emacs の eat パッケージのような非標準ターミナルでの表示崩れを解消するのに役立ちます。
基本的な使い方
シェルの設定ファイル(.bashrc、.zshrc など)に以下を追加します。
bash
export CLAUDE_CODE_FORCE_SYNC_OUTPUT=1または、コマンド実行時に一時的に適用する場合は以下のようにします。
bash
CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 claude実践例
Emacs の eat ターミナルで使用する
Emacs の eat パッケージ内でClaude Codeを利用する場合、.emacs.d/init.el などで環境変数を設定します。
elisp
(setenv "CLAUDE_CODE_FORCE_SYNC_OUTPUT" "1")または、シェルの設定ファイルに追記しておくことで、eat から起動した際も自動的に適用されます。
bash
# ~/.bashrc または ~/.zshrc
export CLAUDE_CODE_FORCE_SYNC_OUTPUT=1tmux や screen などのターミナルマルチプレクサで使用する
自動検出が正しく機能しない場合に、明示的に有効化します。
bash
# tmux セッション内で実行
CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 claude "このコードをレビューしてください"direnv を使ってプロジェクトごとに設定する
.envrc ファイルに設定を追加することで、プロジェクト単位で有効化できます。
bash
# .envrc
export CLAUDE_CODE_FORCE_SYNC_OUTPUT=1注意点
- この環境変数は自動検出が失敗する場合のみ設定してください。通常のターミナルでは自動検出が正しく機能するため、不要な設定は避けることを推奨します。
- 同期出力を強制有効化することで、まれに対応していないターミナルで予期しない表示問題が発生する可能性があります。
- Emacs の
eatパッケージ以外でも、カスタムターミナルエミュレータや非標準の端末環境で問題が発生した際に試す価値があります。