Skip to main content

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.

VariableStatusWhat it doesValues and defaultNotes
CLAUDE_AFK_COUNTDOWN_MS
Documented: An official docs page names this item.
Sets how long before auto-continue the countdown shows on an unanswered AskUserQuestion dialog.A number of milliseconds, 20000 by default. Whole number, default 20000, capped at the auto-continue timeoutInteractive UI. Not set from project env before trust
CLAUDE_AFK_TIMEOUT_MS
Documented: An official docs page names this item.
Sets the idle time before an unanswered AskUserQuestion dialog auto-continues. Setting it also turns auto-continue on.A number of milliseconds. Whole number, overrides the askUserQuestionTimeout setting. The dialog shows when the value is not undefinedInteractive UI. Not set from project env before trust
CLAUDE_AX_ANNOUNCEMENT_HOLD_MS
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 10000Screen reader mode. Not set from project env before trust
CLAUDE_AX_PREPARK_MS
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 5000Screen reader mode. Not set from project env before trust
CLAUDE_AX_REWRITE_HELD_ANNOUNCEMENT
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 defaultScreen reader mode. Not set from project env before trust
CLAUDE_AX_SCREEN_READER
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 --ax-screen-reader flag wins, then this var, then the axScreenReader setting. Claude Code sets 1 for relaunched childrenInteractive UI. In a settings env block it applies only from user, managed, or --settings settings. Project and local env cannot set it (since 2.1.305, per the 2.1.307 release notes)
CLAUDE_AX_STARTUP_QUIET_MS
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 600000Screen reader mode. Not set from project env before trust
CLAUDE_CODE_ACCESSIBILITY
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 resumeInteractive UI. Project env can set it before trust
CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT
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 defaultFullscreen UI. Not set from project env before trust
CLAUDE_CODE_ALTGR_AS_TEXT
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 offInteractive UI, mainly Windows Terminal. Not set from project env before trust
CLAUDE_CODE_ARTIFACT_AUTO_OPEN
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_open_skipped_envArtifacts. Not set from project env before trust
CLAUDE_CODE_AUTO_CONNECT_IDE
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 autoConnectIde configIDE integration
CLAUDE_CODE_BRIEF
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 appliesAll sessions, gated by a feature flag
CLAUDE_CODE_BS_AS_CTRL_BACKSPACE
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 cygwinTerminal input
CLAUDE_CODE_DEBUG_REPAINTS
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 debugRepaintsTerminal UI
CLAUDE_CODE_DECSTBM
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 applyFullscreen terminal UI
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN
Documented: An official docs page names this item.
Uses the classic main-screen renderer instead of fullscreen.On or off. Also triggers when CLAUDE_CODE_NO_FLICKER is false. A startup crash hint names itTerminal UI
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY
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 itInteractive UI. Project env can set it before trust
CLAUDE_CODE_DISABLE_MOUSE
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 fullFullscreen terminal UI
CLAUDE_CODE_DISABLE_MOUSE_CLICKS
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_CODE_DISABLE_MOUSE wins when setFullscreen terminal UI
CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK
Documented: An official docs page names this item.
Sends the PushNotification desktop notification even when the user is typing or the terminal has focus.On or off. Skips the presence check in the toolAll sessions
CLAUDE_CODE_DISABLE_TERMINAL_TITLE
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 writeAll sessions. Project env can set it before trust
CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL
Documented: An official docs page names this item.
Turns off virtual scrolling in fullscreen rendering, so every message renders.On or off, off by defaultFullscreen terminal UI
CLAUDE_CODE_ENABLE_AWAY_SUMMARY
Documented: An official docs page names this item.
Forces session recaps on or off, ahead of the awaySummaryEnabled setting.On or off. Off values give off, on values give on. Else off in non-interactive mode, and the setting decides otherwiseInteractive. Project env can set it before trust
CLAUDE_CODE_ENABLE_MENU_KIND_LANES
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 flagInteractive slash menu
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION
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 promptSuggestionEnabled.On, off, or unset. Unset needs a feature flag, then the setting. true also stops the unused-suggestion auto-pauseInteractive. Project env can set it before trust
CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER
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 defaultInteractive startup, used for startup tests
CLAUDE_CODE_FOOTER_INDICATOR
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 settingsInteractive footer
CLAUDE_CODE_FORCE_FULLSCREEN_UPSELL
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 modesInteractive
CLAUDE_CODE_FORCE_STRIKETHROUGH
Documented: An official docs page names this item.
Forces ~~text~~ strikethrough rendering in terminals that are not auto-detected.On or off, off by defaultInteractive terminal
CLAUDE_CODE_FORCE_SYNC_OUTPUT
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 probeInteractive terminal
CLAUDE_CODE_FORCE_TERMINAL_IMAGES
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 itInteractive terminal, not tmux or screen
CLAUDE_CODE_FORCE_TIP_ID
Undocumented: Only the program shows this item. It can change without notice.
Forces the startup tip with this id to show.Text, unset by defaultInteractive sessions
CLAUDE_CODE_HIDE_CWD
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 existsInteractive terminal UI
CLAUDE_CODE_HIDE_SETTINGS_HINT
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_in_slack, claude-in-teams, and the remote_* onesAll sessions
CLAUDE_CODE_IDE_HOST_OVERRIDE
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.0.0.1, or the default gateway IP when it runs in WSLIDE integration, WSL
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL
Documented: An official docs page names this item.
Skips the automatic install of the IDE extension.On or off. Works like autoInstallIdeExtension set to falseIDE integration. Project env can set it before trust
CLAUDE_CODE_IDE_SKIP_VALID_CHECK
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 offIDE integration
CLAUDE_CODE_IDLE_THRESHOLD_MINUTES
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_CODE_IDLE_TOKEN_THRESHOLDInteractive terminal UI
CLAUDE_CODE_IDLE_TOKEN_THRESHOLD
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_CODE_IDLE_THRESHOLD_MINUTESInteractive terminal UI
CLAUDE_CODE_NATIVE_CURSOR
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 flagInteractive terminal UI
CLAUDE_CODE_NEW_INIT
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 /init run the interactive setup flow. The docs omit that the feature flag also turns it on.On or off. Changes the /init description and promptAll sessions, /init
CLAUDE_CODE_NO_FLICKER
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_CODE_DISABLE_ALTERNATE_SCREEN forces it offInteractive terminal UI
CLAUDE_CODE_NONBLOCKING_STDOUT
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 choiceInteractive terminal UI on macOS, Linux, WSL
CLAUDE_CODE_POWERUP_ONBOARDING
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 /powerup 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 offInteractive sessions
CLAUDE_CODE_PROACTIVE
Undocumented: Only the program shows this item. It can change without notice.
Passes the value as assistantMode to the interactive loop. No visible effect in a print-mode probe (Probes).On or offInteractive sessions
CLAUDE_CODE_RC_PERMISSION_NUDGE
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 afterPromptCount, probability, and maxImpressions.JSON text. Defaults are 5, 0, and 3. Without it, Claude Code uses a feature flagInteractive sessions
CLAUDE_CODE_RELAUNCH_TERMINAL_SIZE
Undocumented: Only the program shows this item. It can change without notice.
Carries the terminal size across a relaunch as COLUMNSxROWS. The new process uses it when stdout reports no size.A number. Claude Code sets it on relaunch. The new process removes itRelaunched sessions
CLAUDE_CODE_SCROLL_SPEED
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 terminalFullscreen terminal UI
CLAUDE_CODE_SEND_FEEDBACK
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 onlyFirst-party API accounts. Gated by a feature flag
CLAUDE_CODE_SILENT_TURN_REMINDER
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_turn_reminderAll. Gated by a feature flag
CLAUDE_CODE_SILENT_TURN_REMINDER_SECONDS
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 moreAll sessions. Related to the silent-turn reminder
CLAUDE_CODE_SILENT_TURN_REMINDER_TEXT
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 defaultAll sessions. Related to the silent-turn reminder
CLAUDE_CODE_SILENT_TURN_REMINDER_TURNS
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 defaultAll sessions. Related to the silent-turn reminder
CLAUDE_CODE_SSE_PORT
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 itIDE integration
CLAUDE_CODE_SYNTAX_HIGHLIGHT
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 matchDiff output
CLAUDE_CODE_THINKING_DISPLAY_UPDATES
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_text, off gives none.On, off, or unset, on by default. Ignored when the thinking display is summarized, highlights, or similarInteractive UI
CLAUDE_CODE_TMUX_PREFIX
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--tmux sessions
CLAUDE_CODE_TMUX_PREFIX_CONFLICTS
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--tmux sessions
CLAUDE_CODE_TMUX_SESSION
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--tmux sessions
CLAUDE_CODE_TMUX_TRUECOLOR
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.rawStr. Any non-empty value counts, so 0 and false still allow truecolorTerminal inside tmux
CLAUDE_CODE_TUI_JUST_SWITCHED
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 itselfInteractive UI
CLAUDE_CODE_TUI_TRIAL
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 itselfInteractive UI
CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS
Documented: An official docs page names this item.
Sets the deadline for dialogs that Claude Code forwards to a remote client. It overrides the dialogExpiry setting.A number of milliseconds. Integer, whole value. Order: env, setting, then 300000Remote Control and SDK hosts
CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG
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 offInteractive sessions
CLAUDE_FORCE_DISPLAY_SURVEY
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_CODE_DISABLE_FEEDBACK_SURVEY and the feedback policy block itInteractive 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_VERSION
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_COST_WARNINGS
Documented: An official docs page names this item.
Turns off cost warning messages.On or off-
DISABLE_UPGRADE_COMMAND
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 /upgrade command.On or off. Claude Code also hides the command for enterprise plans or when a feature flag is onInteractive. Project env can set it before trust
FORCE_CODE_TERMINAL
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 offIDE integration. Not set from project env before trust
FORCE_HYPERLINK
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 onTerminal output. Not set from project env before trust
INK_SCREEN_READER
Undocumented: Only the program shows this item. It can change without notice.
Turns on screen reader mode in the terminal UI renderer.--
INTELLIJ_TERMINAL_COMMAND_BLOCKS
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_TERMINAL_COMMAND_BLOCKS_REWORKED
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_DEMO
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_SESSION_ID
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_WINDOW_ID
Undocumented: Only the program shows this item. It can change without notice.
Detects the kitty terminal for terminal identification and strikethrough support.Text-
KONSOLE_VERSION
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_ALL and LC_TIME.--
LC_ALL
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_TERMINAL
Undocumented: Only the program shows this item. It can change without notice.
Claude Code detects iTerm2 when it is iTerm2, for macOS key and clipboard handling.--
LC_TIME
Undocumented: Only the program shows this item. It can change without notice.
Gives the locale for date formatting, after LC_ALL.--
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_COLOR
Documented: An official docs page names this item.
Turns off colors unless FORCE_COLOR 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 firstLinux
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 nanoAll 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.

Source: the program (variable names found in the 2.1.312 binary) and the Environment Variables page of the official docs.