Skip to main content

Gemini CLI settings (/settings command)

Control your Gemini CLI experience with the /settings command. The /settings command opens a dialog to view and edit all your Gemini CLI settings, including your UI experience, keybindings, and accessibility features.

Your Gemini CLI settings are stored in a settings.json file. In addition to using the /settings command, you can also edit them in one of the following locations:

  • User settings: ~/.gemini/settings.json
  • Workspace settings: your-project/.gemini/settings.json

Note: Workspace settings override user settings.

Settings reference

Here is a list of all the available settings, grouped by category and ordered as they appear in the UI.

General

UI LabelSettingDescriptionDefault
Vim Modegeneral.vimModeEnable Vim keybindingsfalse
Default Approval Modegeneral.defaultApprovalModeThe default approval mode for tool execution. 'default' prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is read-only mode. YOLO mode (auto-approve all actions) can only be enabled via command line (--yolo or --approval-mode=yolo)."default"
Enable Auto Updategeneral.enableAutoUpdateEnable automatic updates.true
Enable Notificationsgeneral.enableNotificationsEnable run-event notifications for action-required prompts and session completion. Currently macOS only.false
Plan Directorygeneral.plan.directoryThe directory where planning artifacts are stored. If not specified, defaults to the system temporary directory.undefined
Plan Model Routinggeneral.plan.modelRoutingAutomatically switch between Pro and Flash models based on Plan Mode status. Uses Pro for the planning phase and Flash for the implementation phase.true
Retry Fetch Errorsgeneral.retryFetchErrorsRetry on "exception TypeError: fetch failed sending request" errors.true
Max Chat Model Attemptsgeneral.maxAttemptsMaximum number of attempts for requests to the main chat model. Cannot exceed 10.10
Debug Keystroke Logginggeneral.debugKeystrokeLoggingEnable debug logging of keystrokes to the console.false
Enable Session Cleanupgeneral.sessionRetention.enabledEnable automatic session cleanuptrue
Keep chat historygeneral.sessionRetention.maxAgeAutomatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w")"30d"

Output

UI LabelSettingDescriptionDefault
Output Formatoutput.formatThe format of the CLI output. Can be text or json."text"

UI

UI LabelSettingDescriptionDefault
Auto Theme Switchingui.autoThemeSwitchingAutomatically switch between default light and dark themes based on terminal background color.true
Terminal Background Polling Intervalui.terminalBackgroundPollingIntervalInterval in seconds to poll the terminal background color.60
Hide Window Titleui.hideWindowTitleHide the window title barfalse
Inline Thinkingui.inlineThinkingModeDisplay model thinking inline: off or full."off"
Show Thoughts in Titleui.showStatusInTitleShow Gemini CLI model thoughts in the terminal window title during the working phasefalse
Dynamic Window Titleui.dynamicWindowTitleUpdate the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦)true
Show Home Directory Warningui.showHomeDirectoryWarningShow a warning when running Gemini CLI in the home directory.true
Show Compatibility Warningsui.showCompatibilityWarningsShow warnings about terminal or OS compatibility issues.true
Hide Tipsui.hideTipsHide helpful tips in the UIfalse
Escape Pasted @ Symbolsui.escapePastedAtSymbolsWhen enabled, @ symbols in pasted text are escaped to prevent unintended @path expansion.false
Show Shortcuts Hintui.showShortcutsHintShow the "? for shortcuts" hint above the input.true
Hide Bannerui.hideBannerHide the application bannerfalse
Hide Context Summaryui.hideContextSummaryHide the context summary (GEMINI.md, MCP servers) above the input.false
Hide CWDui.footer.hideCWDHide the current working directory in the footer.false
Hide Sandbox Statusui.footer.hideSandboxStatusHide the sandbox status indicator in the footer.false
Hide Model Infoui.footer.hideModelInfoHide the model name and context usage in the footer.false
Hide Context Window Percentageui.footer.hideContextPercentageHides the context window usage percentage.true
Hide Footerui.hideFooterHide the footer from the UIfalse
Show Memory Usageui.showMemoryUsageDisplay memory usage information in the UIfalse
Show Line Numbersui.showLineNumbersShow line numbers in the chat.true
Show Citationsui.showCitationsShow citations for generated text in the chat.false
Show Model Info In Chatui.showModelInfoInChatShow the model name in the chat for each model turn.false
Show User Identityui.showUserIdentityShow the signed-in user's identity (e.g. email) in the UI.true
Use Alternate Screen Bufferui.useAlternateBufferUse an alternate screen buffer for the UI, preserving shell history.false
Use Background Colorui.useBackgroundColorWhether to use background colors in the UI.true
Incremental Renderingui.incrementalRenderingEnable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled.true
Show Spinnerui.showSpinnerShow the spinner during operations.true
Loading Phrasesui.loadingPhrasesWhat to show while the model is working: tips, witty comments, both, or nothing."tips"
Error Verbosityui.errorVerbosityControls whether recoverable errors are hidden (low) or fully shown (full)."low"
Screen Reader Modeui.accessibility.screenReaderRender output in plain-text to be more screen reader accessiblefalse

IDE

UI LabelSettingDescriptionDefault
IDE Modeide.enabledEnable IDE integration mode.false

Billing

UI LabelSettingDescriptionDefault
Overage Strategybilling.overageStrategyHow to handle quota exhaustion when AI credits are available. 'ask' prompts each time, 'always' automatically uses credits, 'never' disables credit usage."ask"

Model

UI LabelSettingDescriptionDefault
Modelmodel.nameThe Gemini model to use for conversations.undefined
Max Session Turnsmodel.maxSessionTurnsMaximum number of user/model/tool turns to keep in a session. -1 means unlimited.-1
Context Compression Thresholdmodel.compressionThresholdThe fraction of context usage at which to trigger context compression (e.g. 0.2, 0.3).0.5
Disable Loop Detectionmodel.disableLoopDetectionDisable automatic detection and prevention of infinite loops.false
Skip Next Speaker Checkmodel.skipNextSpeakerCheckSkip the next speaker check.true

Context

UI LabelSettingDescriptionDefault
Memory Discovery Max Dirscontext.discoveryMaxDirsMaximum number of directories to search for memory.200
Load Memory From Include Directoriescontext.loadMemoryFromIncludeDirectoriesControls how /memory reload loads GEMINI.md files. When true, include directories are scanned; when false, only the current directory is used.false
Respect .gitignorecontext.fileFiltering.respectGitIgnoreRespect .gitignore files when searching.true
Respect .geminiignorecontext.fileFiltering.respectGeminiIgnoreRespect .geminiignore files when searching.true
Enable Recursive File Searchcontext.fileFiltering.enableRecursiveFileSearchEnable recursive file search functionality when completing @ references in the prompt.true
Enable Fuzzy Searchcontext.fileFiltering.enableFuzzySearchEnable fuzzy search when searching for files.true
Custom Ignore File Pathscontext.fileFiltering.customIgnoreFilePathsAdditional ignore file paths to respect. These files take precedence over .geminiignore and .gitignore. Files earlier in the array take precedence over files later in the array, e.g. the first file takes precedence over the second one.[]

Tools

UI LabelSettingDescriptionDefault
Enable Interactive Shelltools.shell.enableInteractiveShellUse node-pty for an interactive shell experience. Fallback to child_process still applies.true
Show Colortools.shell.showColorShow color in shell output.false
Use Ripgreptools.useRipgrepUse ripgrep for file content search instead of the fallback implementation. Provides faster search performance.true
Tool Output Truncation Thresholdtools.truncateToolOutputThresholdMaximum characters to show when truncating large tool outputs. Set to 0 or negative to disable truncation.40000
Disable LLM Correctiontools.disableLLMCorrectionDisable LLM-based error correction for edit tools. When enabled, tools will fail immediately if exact string matches are not found, instead of attempting to self-correct.true

Security

UI LabelSettingDescriptionDefault
Tool Sandboxingsecurity.toolSandboxingExperimental tool-level sandboxing (implementation in progress).false
Disable YOLO Modesecurity.disableYoloModeDisable YOLO mode, even if enabled by a flag.false
Disable Always Allowsecurity.disableAlwaysAllowDisable "Always allow" options in tool confirmation dialogs.false
Allow Permanent Tool Approvalsecurity.enablePermanentToolApprovalEnable the "Allow for all future sessions" option in tool confirmation dialogs.false
Auto-add to Policy by Defaultsecurity.autoAddToPolicyByDefaultWhen enabled, the "Allow for all future sessions" option becomes the default choice for low-risk tools in trusted workspaces.false
Blocks extensions from Gitsecurity.blockGitExtensionsBlocks installing and loading extensions from Git.false
Extension Source Regex Allowlistsecurity.allowedExtensionsList of Regex patterns for allowed extensions. If nonempty, only extensions that match the patterns in this list are allowed. Overrides the blockGitExtensions setting.[]
Folder Trustsecurity.folderTrust.enabledSetting to track whether Folder trust is enabled.true
Enable Environment Variable Redactionsecurity.environmentVariableRedaction.enabledEnable redaction of environment variables that may contain secrets.false
Enable Context-Aware Securitysecurity.enableConsecaEnable the context-aware security checker. This feature uses an LLM to dynamically generate and enforce security policies for tool use based on your prompt, providing an additional layer of protection against unintended actions.false

Advanced

UI LabelSettingDescriptionDefault
Auto Configure Max Old Space Sizeadvanced.autoConfigureMemoryAutomatically configure Node.js memory limitsfalse

Experimental

UI LabelSettingDescriptionDefault
Enable Tool Output Maskingexperimental.toolOutputMasking.enabledEnables tool output masking to save tokens.true
Use OSC 52 Pasteexperimental.useOSC52PasteUse OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it).false
Use OSC 52 Copyexperimental.useOSC52CopyUse OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it).false
Planexperimental.planEnable Plan Mode.true
Model Steeringexperimental.modelSteeringEnable model steering (user hints) to guide the model during tool execution.false
Direct Web Fetchexperimental.directWebFetchEnable web fetch behavior that bypasses LLM summarization.false
Topic & Update Narrationexperimental.topicUpdateNarrationEnable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting.false

Skills

UI LabelSettingDescriptionDefault
Enable Agent Skillsskills.enabledEnable Agent Skills.true

HooksConfig

UI LabelSettingDescriptionDefault
Enable HookshooksConfig.enabledCanonical toggle for the hooks system. When disabled, no hooks will be executed.true
Hook NotificationshooksConfig.notificationsShow visual indicators when hooks are executing.true