UI and Terminal
These variables change what you see and how the terminal behaves. They cover colors, fullscreen rendering, key handling, voice input, notifications, and the title bar. Use them when your terminal draws the screen badly or you want a quieter interface.
This page lists 88 variables. Restart claude after a change. Set a variable to 0 to turn it off where the row says so.
Example
export NO_COLOR=1
claude
Claude Code prints without color.
Variables
The rows are in name order. See Environment Variables for what each column and badge means.
| Variable | Status | What it does | Values and default | Notes |
|---|---|---|---|---|
CLAUDE_ | Documented: An official docs page names this item. | Sets how long before auto-continue the countdown shows on an unanswered Ask dialog. | A number of milliseconds, 20000 by default. Whole number, default 20000, capped at the auto-continue timeout | Interactive UI. Not set from project env before trust |
CLAUDE_ | Documented: An official docs page names this item. | Sets the idle time before an unanswered Ask dialog auto-continues. Setting it also turns auto-continue on. | A number of milliseconds. Whole number, overrides the ask setting. The dialog shows when the value is not undefined | Interactive UI. Not set from project env before trust |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Sets how long screen reader mode holds output after a hold request for an announcement. | A number of milliseconds, 1000 by default. Whole number of 0 or more, default 1000, capped at 10000 | Screen reader mode. Not set from project env before trust |
CLAUDE_ | Documented: An official docs page names this item. | Sets how long screen reader mode waits before it writes a new or changed line. | A number of milliseconds, 0 by default. Whole number of 0 or more, default 0, capped at 5000 | Screen reader mode. Not set from project env before trust |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Controls whether screen reader mode rewrites a held announcement. | On, off, or unset, false by default | Screen reader mode. Not set from project env before trust |
CLAUDE_ | Documented: An official docs page names this item. | Turns screen reader mode on with 1 or forces it off with 0. | On, off, or unset. The -- flag wins, then this var, then the ax setting. Claude Code sets 1 for relaunched children | Interactive UI. In a settings env block it applies only from user, managed, or -- settings. Project and local env cannot set it (since 2., per the 2. release notes) |
CLAUDE_ | Documented: An official docs page names this item. | Sets how long screen reader mode holds the first render after the startup line. | A number of milliseconds, 3000 by default. Whole number of 0 or more, default 3000, capped at 600000 | Screen reader mode. Not set from project env before trust |
CLAUDE_ | Documented: An official docs page names this item. | Keeps the native terminal cursor visible and turns off the inverted-text cursor. Screen magnifiers can then track the cursor. | On or off. Also stops Claude Code from hiding the cursor again after a suspend resume | Interactive UI. Project env can set it before trust |
CLAUDE_ | Documented: An official docs page names this item. Differs: The official docs and the program disagree. The row says how. The official docs and the program disagree. The row says how. | Repaints the whole screen on each frame in fullscreen rendering. | On or off, on by default | Fullscreen UI. Not set from project env before trust |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Controls whether AltGr key chords count as text input. | On or off. Truthy gives force. Falsy gives off | Interactive UI, mainly Windows Terminal. Not set from project env before trust |
CLAUDE_ | Documented: An official docs page names this item. | Stops Claude Code from opening the browser when it publishes an artifact. | Text. A falsy value such as 0 skips the open and logs auto_ | Artifacts. Not set from project env before trust |
CLAUDE_ | Documented: An official docs page names this item. | Overrides the automatic IDE connection. false stops it and true forces a try. | On, off, or unset. false wins over the auto config | IDE integration |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | Turns on brief mode. In brief mode, Claude Code hides plain assistant text. Only the user message tool reaches the user. | On or off. Else a feature flag decides. An entitlement check applies | All sessions, gated by a feature flag |
CLAUDE_ | Documented: An official docs page names this item. | Sets whether the 0x08 byte counts as Ctrl+Backspace or plain Backspace. | On or off. A truthy value means Ctrl+Backspace and a falsy value means Backspace. Else it is Ctrl+Backspace on Windows except mintty and cygwin | Terminal input |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Turns on the repaint debug mode of the terminal renderer. | On or off, off by default. Claude Code copies it to the Ink root node as debug | Terminal UI |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. A feature flag or server gate decides by default. This variable overrides it | Forces the DECSTBM scroll region renderer on. Without it a feature flag decides. | On or off. Truthy string. Off when the terminal check fails or other renderer conditions apply | Fullscreen terminal UI |
CLAUDE_ | Documented: An official docs page names this item. | Uses the classic main-screen renderer instead of fullscreen. | On or off. Also triggers when CLAUDE_ is false. A startup crash hint names it | Terminal UI |
CLAUDE_ | Documented: An official docs page names this item. | Turns off the "How is Claude doing?" session surveys. | On or off. The survey and memory survey gates check it | Interactive UI. Project env can set it before trust |
CLAUDE_ | Documented: An official docs page names this item. | Turns off mouse tracking in fullscreen rendering. | On, off, or unset. A set truthy value gives mouse mode off, a set false value gives full | Fullscreen terminal UI |
CLAUDE_ | Documented: An official docs page names this item. | Turns off click, drag and hover handling but keeps wheel scrolling. | On, off, or unset. A truthy value gives mouse mode scroll. CLAUDE_ wins when set | Fullscreen terminal UI |
CLAUDE_ | Documented: An official docs page names this item. | Sends the Push desktop notification even when the user is typing or the terminal has focus. | On or off. Skips the presence check in the tool | All sessions |
CLAUDE_ | Documented: An official docs page names this item. | Turns off automatic terminal title updates and the title generation request. | On or off. Also stops the claude process title write | All sessions. Project env can set it before trust |
CLAUDE_ | Documented: An official docs page names this item. | Turns off virtual scrolling in fullscreen rendering, so every message renders. | On or off, off by default | Fullscreen terminal UI |
CLAUDE_ | Documented: An official docs page names this item. | Forces session recaps on or off, ahead of the away setting. | On or off. Off values give off, on values give on. Else off in non-interactive mode, and the setting decides otherwise | Interactive. Project env can set it before trust |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | Turns on kind lanes in the slash command menu. | On or off, off by default. Else a feature flag | Interactive slash menu |
CLAUDE_ | Documented: An official docs page names this item. Gated: Works only behind a flag or a server gate. A feature flag or server gate decides by default. This variable overrides it | Forces prompt suggestions on or off, ahead of prompt. | On, off, or unset. Unset needs a feature flag, then the setting. true also stops the unused-suggestion auto-pause | Interactive. Project env can set it before trust |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Skips startup prefetches and fullscreen auto-switch checks so the process can exit after the first render. | On or off, off by default | Interactive startup, used for startup tests |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Sets a custom text for the footer indicator. | Text. Claude Code strips control characters and trims the text. It wins over settings | Interactive footer |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Shows the fullscreen mode upsell even when other checks would skip it. | On or off, off by default. Claude Code still skips it in non-interactive mode and some other modes | Interactive |
CLAUDE_ | Documented: An official docs page names this item. | Forces ~~text~~ strikethrough rendering in terminals that are not auto-detected. | On or off, off by default | Interactive terminal |
CLAUDE_ | Documented: An official docs page names this item. | Forces DEC 2026 synchronized output on. No effect under tmux. | On or off, off by default. Works for emulators that skip the capability probe | Interactive terminal |
CLAUDE_ | Documented: An official docs page names this item. | Forces image output through the kitty graphics protocol. | On or off, off by default. The kitty graphics capability check also uses it | Interactive terminal, not tmux or screen |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Forces the startup tip with this id to show. | Text, unset by default | Interactive sessions |
CLAUDE_ | Documented: An official docs page names this item. | Hides the working directory in the startup logo header. | On or off. Unset shows the path, with the remote name when one exists | Interactive terminal UI |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Hides a settings hint. A helper returns false when it is on. No visible effect in a print-mode probe (Probes). | On or off. The hint is also off for the entrypoints claude_, claude-, and the remote_ ones | All sessions |
CLAUDE_ | Documented: An official docs page names this item. | Overrides the host address Claude Code uses to reach the IDE extension. | Text, gateway by default. Unset gives 127., or the default gateway IP when it runs in WSL | IDE integration, WSL |
CLAUDE_ | Documented: An official docs page names this item. | Skips the automatic install of the IDE extension. | On or off. Works like auto set to false | IDE integration. Project env can set it before trust |
CLAUDE_ | Documented: An official docs page names this item. | Skips the check of IDE lockfile entries, so each entry counts as containing the working directory. | On or off | IDE integration |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Sets the idle minutes before a new task? notification shows in a long conversation. | A number, 75 by default. Works with CLAUDE_ | Interactive terminal UI |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Sets the least conversation size in tokens before the idle new task? notification can show. | A number, 100000 by default. Works with CLAUDE_ | Interactive terminal UI |
CLAUDE_ | Documented: An official docs page names this item. | Shows the terminal's own cursor at the input caret instead of a drawn block. | On or off. Also on for accessibility modes. Unset follows a feature flag | Interactive terminal UI |
CLAUDE_ | Documented: An official docs page names this item. Differs: The official docs and the program disagree. The row says how. The official docs and the program disagree. The row says how. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | Makes / run the interactive setup flow. The docs omit that the feature flag also turns it on. | On or off. Changes the / description and prompt | All sessions, / |
CLAUDE_ | Documented: An official docs page names this item. | Turns on fullscreen rendering and overrides the tui setting. A false value turns it off. | On, off, or unset. Background sessions also force it on. CLAUDE_ forces it off | Interactive terminal UI |
CLAUDE_ | Documented: An official docs page names this item. Differs: The official docs and the program disagree. The row says how. The official docs and the program disagree. The row says how. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | Writes terminal output through a second non-blocking descriptor so a stalled terminal cannot freeze the session. The docs omit the remote flag. | On, off, or unset. Claude Code passes it as the env override. A feature flag also feeds the choice | Interactive terminal UI on macOS, Linux, WSL |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | Shows the / tour offer as a banner or a step, even after onboarding ends. | Text, off by default. Other values fall back to a feature flag, default off | Interactive sessions |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Passes the value as assistant to the interactive loop. No visible effect in a print-mode probe (Probes). | On or off | Interactive sessions |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. A feature flag or server gate decides by default. This variable overrides it | Overrides the config of the Remote Control permission nudge. Fields are after, probability, and max. | JSON text. Defaults are 5, 0, and 3. Without it, Claude Code uses a feature flag | Interactive sessions |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Carries the terminal size across a relaunch as COLUMNSx. The new process uses it when stdout reports no size. | A number. Claude Code sets it on relaunch. The new process removes it | Relaunched sessions |
CLAUDE_ | Documented: An official docs page names this item. | Sets the mouse wheel scroll multiplier in fullscreen rendering. Claude Code caps values above 20 to 20. | A number. Claude Code parses it as a float. A non-number or a value of 0 or less falls back to the default of 1 or 3 by terminal | Fullscreen terminal UI |
CLAUDE_ | Documented: An official docs page names this item. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | Turns Claude-drafted feedback off with 0 or on with 1. It cannot grant access the account lacks. | On, off, or unset. Even when on, the check still needs a feature flag. First-party provider only | First-party API accounts. Gated by a feature flag |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. A feature flag or server gate decides by default. This variable overrides it | Forces the silent-turn reminder on or off. The reminder nudges the model to update the user after a long quiet turn. | On, off, or unset. When unset, a gate function reads server and flag config for silent_ | All. Gated by a feature flag |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. A feature flag or server gate decides by default. This variable overrides it | Sets the quiet time in seconds before the silent-turn reminder fires. It overrides the server value. | A number of seconds. Integer 1 or more. Without it, Claude Code uses a server config number of 1 or more | All sessions. Related to the silent-turn reminder |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. A feature flag or server gate decides by default. This variable overrides it | Overrides the text of the silent-turn reminder sent to the model. | Text, text by default. A feature flag may replace the default | All sessions. Related to the silent-turn reminder |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. A feature flag or server gate decides by default. This variable overrides it | Sets the number of silent turns before the reminder fires. It overrides the flag value. | A number. Integer 1 or more. Else Claude Code rounds a feature flag value down, with a built-in default | All sessions. Related to the silent-turn reminder |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Gives the port of the IDE extension. It turns on IDE auto-connect and marks the IDE lockfile with that port as a match. | A number. Integer. An IDE terminal usually sets it | IDE integration |
CLAUDE_ | Documented: An official docs page names this item. | Turns off syntax highlighting in diff output when set to a false value. The theme screen then shows it as disabled by this variable. | Text. A false value such as false turns it off. The docs match | Diff output |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Chooses whether connector-text updates show while thinking text is hidden. On gives connector_, off gives none. | On, off, or unset, on by default. Ignored when the thinking display is summarized, highlights, or similar | Interactive UI |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Holds the tmux prefix key. Claude Code shows it in the tmux session notice. | Claude Code sets it when it starts its own tmux session | -- sessions |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Marks that the tmux prefix is a key that Claude Code also uses. The notice then says to press the prefix twice. | On or off. Claude Code sets it to 1 or empty | -- sessions |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Holds the name of the tmux session that Claude Code started. It drives the session notice and worktree exit handling. | Text. Claude Code sets it | -- sessions |
CLAUDE_ | Documented: An official docs page names this item. | Allows 24-bit color inside tmux. Without it, Claude Code clamps to 256 colors when TMUX is set. | raw. Any non-empty value counts, so 0 and false still allow truecolor | Terminal inside tmux |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Tells the new process that the user just switched TUI mode. It shows the matching notice and skips the downsell announcement. | fullscreen or default. Claude Code removes it from the environment when it relaunches itself | Interactive UI |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Starts a fullscreen trial when the value is fullscreen. Claude Code latches it once and then unsets it. | Text. Claude Code removes it from the environment when it relaunches itself | Interactive UI |
CLAUDE_ | Documented: An official docs page names this item. | Sets the deadline for dialogs that Claude Code forwards to a remote client. It overrides the dialog setting. | A number of milliseconds. Integer, whole value. Order: env, setting, then 300000 | Remote Control and SDK hosts |
CLAUDE_ | Documented: An official docs page names this item. | Shows a line above the prompt for each of the last three checks of the You should know mod. | On or off | Interactive sessions |
CLAUDE_ | Undocumented: Only the program shows this item. It can change without notice. | Forces the feedback survey to show if it never showed before. | On or off. CLAUDE_ and the feedback policy block it | Interactive sessions |
COLORFGBG | Undocumented: Only the program shows this item. It can change without notice. | Hints the terminal background. Claude Code maps it to a dark or light theme. | - | - |
DEMO_ | Undocumented: Only the program shows this item. It can change without notice. | Replaces the shown version and the working directory in the header for demos. It also skips the release notes. | - | - |
DISABLE_ | Documented: An official docs page names this item. | Turns off cost warning messages. | On or off | - |
DISABLE_ | Documented: An official docs page names this item. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | Hides the / command. | On or off. Claude Code also hides the command for enterprise plans or when a feature flag is on | Interactive. Project env can set it before trust |
FORCE_ | Undocumented: Only the program shows this item. It can change without notice. | Marks the terminal as a supported IDE terminal for IDE auto-connect. | On or off | IDE integration. Not set from project env before trust |
FORCE_ | Documented: An official docs page names this item. | Forces OSC 8 hyperlinks on or off. | A number. Claude Code parses it as a number. 0 turns links off and any other non-empty value, including false, turns them on | Terminal output. Not set from project env before trust |
INK_ | Undocumented: Only the program shows this item. It can change without notice. | Turns on screen reader mode in the terminal UI renderer. | - | - |
INTELLIJ_ | Undocumented: Only the program shows this item. It can change without notice. | With any value, it marks the JetBrains terminal wheel and arrow scroll handling as bug-confirmed. | - | - |
INTELLIJ_ | Undocumented: Only the program shows this item. It can change without notice. | With any value, it marks the JetBrains terminal wheel and arrow scroll handling as bug-confirmed. | - | - |
IS_ | Documented: An official docs page names this item. Differs: The official docs and the program disagree. The row says how. The official docs and the program disagree. The row says how. | Sets demo mode. Demo mode hides the account email and organization name in the header and status output. | - | - |
ITERM_ | Undocumented: Only the program shows this item. It can change without notice. | Detects iTerm2 and gives the session id that the iTerm2 pane backend uses for teammate panes. | Text | - |
KITTY_ | Undocumented: Only the program shows this item. It can change without notice. | Detects the kitty terminal for terminal identification and strikethrough support. | Text | - |
KONSOLE_ | Undocumented: Only the program shows this item. It can change without notice. | Marks Konsole as a terminal that supports strikethrough text. | - | - |
LANG | Documented: An official docs page names this item. | Gives the locale for date formatting. It is the last fallback after LC_ and LC_. | - | - |
LC_ | Undocumented: Only the program shows this item. It can change without notice. | Gives the locale for date formatting, first in order. Claude Code also sets it to C for routed sh interpreters. | - | - |
LC_ | Undocumented: Only the program shows this item. It can change without notice. | Claude Code detects iTerm2 when it is i, for macOS key and clipboard handling. | - | - |
LC_ | Undocumented: Only the program shows this item. It can change without notice. | Gives the locale for date formatting, after LC_. | - | - |
MSYSTEM | Undocumented: Only the program shows this item. It can change without notice. Gated: Works only behind a flag or a server gate. Works only behind a feature flag or server gate | On Windows, a set value marks the terminal as mintty (Git Bash). | - | - |
NETLIFY | Undocumented: Only the program shows this item. It can change without notice. | If set, the bundled hyperlink check says the terminal supports hyperlinks. | - | - |
NO_ | Documented: An official docs page names this item. | Turns off colors unless FORCE_ is set. | On or off | - |
TERMINAL | Documented: An official docs page names this item. | Names the terminal program that Claude Code starts on Linux for features that open a terminal window. | Text. Non-empty string. Claude Code tries it first | Linux |
VISUAL | Documented: An official docs page names this item. | Sets the editor for external editing. It wins over EDITOR. | Text. Non-empty string. If neither has a value, Claude Code tries code, vi, and nano | All sessions |
How It Works
Claude Code checks the terminal at startup. It looks at names such as TERM, TERM_PROGRAM, and COLORTERM to decide which features to use.
Those names belong to the system. System and Third-Party lists them.
The variables on this page override that guess.
Related Pages
- Environment Variables: how Claude Code reads variables and which value wins.
- System and Third-Party
- Status Line
- Undocumented Items: every item that only the program shows.
Source: the program (variable names found in the 2.1.312 binary) and the Environment Variables page of the official docs.