[DOCS] Environment variables docs missing `CLAUDE_CODE_FORCE_SYNC_OUTPUT` terminal override
Documentation Type
Missing documentation (feature not documented)
Documentation Location
https://code.claude.com/docs/en/env-vars
Section/Topic
Environment variables reference for terminal rendering and terminal-capability overrides
Current Documentation
The environment variables reference currently jumps from:
|CLAUDE_CODE_FORK_SUBAGENT| Set to1to enable forked subagents. A forked subagent inherits the full conversation context from the main session instead of starting fresh. | |CLAUDE_CODE_GIT_BASH_PATH| Windows only: path to the Git Bash executable (bash.exe). Use when Git Bash is installed but not in your PATH. |
Related terminal docs currently document fullscreen rendering with a different variable:
You can also set theCLAUDE_CODE_NO_FLICKERenvironment variable before starting Claude Code:CLAUDE_CODE_NO_FLICKER=1 claude
And the fullscreen page currently mentions synchronized output only in the tmux caveat:
tmux does not support synchronized output, so you may see more flicker during redraws than when running Claude Code directly in your terminal.
What's Wrong or Missing?
v2.1.129 added CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 to force-enable synchronized output when terminal capability auto-detection misses a compatible terminal, including cases like Emacs eat.
That override is not documented on the environment variables page, and the terminal/fullscreen docs do not explain when to use it, how it relates to synchronized output support, or how it differs from CLAUDE_CODE_NO_FLICKER.
As a result, users on affected terminals can hit garbled startup or redraw issues without a documented workaround.
Suggested Improvement
Add a new CLAUDE_CODE_FORCE_SYNC_OUTPUT entry to the environment variables reference that explains:
- it force-enables synchronized output even when auto-detection says the terminal is unsupported
- it is intended for compatible terminals that detection misses (for example Emacs
eat) - it is different from
CLAUDE_CODE_NO_FLICKER, which enables fullscreen rendering rather than overriding synchronized-output detection
Include a launch example such as:
CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 claude
Add a short troubleshooting cross-reference from the fullscreen or terminal-config docs for users who still see startup garbling outside tmux.
Impact
Medium - Makes feature difficult to understand
Additional Context
Affected Pages:
| Page | Line(s) | Context |
|------|---------|---------|
| https://code.claude.com/docs/en/env-vars | 101-102, 116 | Alphabetical env-var list skips from CLAUDE_CODE_FORK_SUBAGENT to CLAUDE_CODE_GIT_BASH_PATH; nearby rendering entry documents only CLAUDE_CODE_NO_FLICKER |
| https://code.claude.com/docs/en/fullscreen | 25-31, 137 | Documents CLAUDE_CODE_NO_FLICKER and mentions synchronized output only as a tmux limitation |
| https://code.claude.com/docs/en/terminal-config | 267-281 | Recommends CLAUDE_CODE_NO_FLICKER as the environment-variable workaround for display flicker |
Total scope: 3 pages affected
Version context: v2.1.129 added CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 as a new override for terminals whose synchronized-output capability is not auto-detected correctly.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗