[DOCS] Environment variables docs missing `CLAUDE_CODE_FORCE_SYNC_OUTPUT` terminal override

Open 💬 2 comments Opened May 6, 2026 by coygeek

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 to 1 to 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 the CLAUDE_CODE_NO_FLICKER environment 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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗