What it is
Claude Code now probes terminals for kitty's image-display protocol, though most users see no effect yet
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.275.
Presence across releases
1Build by build
4One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.
First cited
2The earliest release whose published evidence quoted CLAUDE_CODE_FORCE_TERMINAL_IMAGES was v2.1.275, 17 Sep 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table above.
Names beside it
Every environment variable in the inventory starting claude_code_force, up to twelve of them.
CLAUDE_CODE_FORCE_BRIDGENo description from anybody. v2.1.160
CLAUDE_CODE_FORCE_EVALUATE_MEMORYNo description from anybody. v2.1.160
CLAUDE_CODE_FORCE_FIRST_LAUNCHSet CLAUDE_CODE_FORCE_FIRST_LAUNCH to replay the fresh-install startup experience. never mined
CLAUDE_CODE_FORCE_FULL_LOGONo description from anybody. v2.1.138
CLAUDE_CODE_FORCE_FULLSCREEN_UPSELLYou can start a throwaway fullscreen session with an env var, and the upsell stops after three showings. v2.1.138
CLAUDE_CODE_FORCE_MEMORY_SURVEYNo description from anybody. v2.1.160
CLAUDE_CODE_FORCE_MEMORY_WRITE_SURVEYNo description from anybody. v2.1.160
CLAUDE_CODE_FORCE_MID_CONVERSATION_SYSTEMA new env var forces mid-conversation system prompt changes that were previously decided by heuristics. v2.1.154
CLAUDE_CODE_FORCE_SESSION_PERSISTENCESet to 1 to force transcript persistence, prompt history, and claude agents registration even when this claude was launched from inside another Claude Code session. Use when an inherited CLAUDE_CODE_CHILD_SESSION value, for example from a screen session or a background launcher first started by Claude Code's Bash tool, causes a genuine top-level session to be misclassified as nested. As of v2.1.178, Claude Code detects the tmux case automatically and ignores the inherited marker, so tmux no longer needs this variable. Also honored on v2.1.169 and earlier; has no effect on v2.1.170 and v2.1.171, where the nested-session detection it overrides was removed v2.1.169
CLAUDE_CODE_FORCE_STRIKETHROUGHSet to 1 to force strikethrough rendering for ~~text~~ in Claude's responses when your terminal supports it but is not auto-detected, such as over SSH without TERM_PROGRAM forwarded. Without this, undetected terminals show the literal ~~ markers instead of rendering the text as strikethrough. Requires Claude Code v2.1.186 or later v2.1.186
CLAUDE_CODE_FORCE_SYNC_OUTPUTSet to 1 to force-enable DEC private mode 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) when your terminal supports it but is not auto-detected. Useful for emulators such as Emacs eat that implement BSU/ESU but do not reply to the capability probe. Has no effect under tmux. Unlike CLAUDE_CODE_NO_FLICKER, which switches to [fullscreen rendering](/docs/en/fullscreen), this doesn't change the renderer v2.1.138
CLAUDE_CODE_FORCE_TIP_IDNo description from anybody. v2.1.160
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the environment variable does. All environment variables.