LLxprt Code Configuration

July 29, 2026 · View on GitHub

This page covers settings.json — the persistent configuration file. You can also edit settings interactively with the /settings command during a session.

For session-level settings (the /set command), profiles, reasoning configuration, and V2 namespaced settings compatibility, see Settings and Profiles.

Unknown top-level keys in settings files are intentionally accepted and preserved for forward/backward compatibility with extensions, migrations, and older configuration files. Unknown nested keys inside strict built-in sections are still rejected during validation.

Configuration layers

Configuration is applied in the following order of precedence (lower numbers are overridden by higher numbers):

  1. Default values: Hardcoded defaults within the application.
  2. System defaults file: System-wide default settings that can be overridden by other settings files.
  3. User settings file: Global settings for the current user.
  4. Project settings file: Project-specific settings.
  5. System settings file: System-wide settings that override all other settings files.
  6. Environment variables: System-wide or session-specific variables, potentially loaded from .env files.
  7. Command-line arguments: Values passed when launching the CLI.

Settings files

LLxprt Code uses JSON settings files for persistent configuration. There are four locations for these files:

  • System defaults file:
    • Location: /etc/llxprt-code/system-defaults.json (Linux), C:\ProgramData\llxprt-code\system-defaults.json (Windows) or /Library/Application Support/LlxprtCode/system-defaults.json (macOS). The path can be overridden using the LLXPRT_SYSTEM_DEFAULTS_PATH environment variable (a legacy alias LLXPRT_CODE_SYSTEM_DEFAULTS_PATH is also honored for backward compatibility).
    • Scope: Provides a base layer of system-wide default settings. These settings have the lowest precedence and are intended to be overridden by user, project, or system override settings.
  • User settings file:
    • Location: Your user settings.json in LLxprt's config directory (overridable via LLXPRT_CONFIG_HOME).
    • Scope: Applies to all LLxprt Code sessions for the current user. User settings override system defaults.
  • Project settings file:
    • Location: .llxprt/settings.json within your project's root directory.
    • Scope: Applies only when running LLxprt Code from that specific project. Project settings override user settings and system defaults.
  • System settings file:
    • Location: /etc/llxprt-code/settings.json (Linux), C:\ProgramData\llxprt-code\settings.json (Windows) or /Library/Application Support/LlxprtCode/settings.json (macOS). The path can be overridden using the LLXPRT_SYSTEM_SETTINGS_PATH environment variable (a legacy alias LLXPRT_CODE_SYSTEM_SETTINGS_PATH is also honored for backward compatibility).
    • Scope: Applies to all LLxprt Code sessions on the system, for all users. System settings act as overrides, taking precedence over all other settings files. May be useful for system administrators at enterprises to have controls over users' LLxprt Code setups.

Note on environment variables in settings: String values within your settings.json files can reference environment variables using either $VAR_NAME or ${VAR_NAME} syntax. These variables will be automatically resolved when the settings are loaded. For example, if you have an environment variable MY_API_TOKEN, you could use it in settings.json like this: "apiKey": "$MY_API_TOKEN".

Note for Enterprise Users: For guidance on deploying and managing LLxprt Code in a corporate environment, please see the Enterprise Configuration documentation.

The .llxprt directory in your project

In addition to a project settings file, a project's .llxprt directory can contain other project-specific files related to LLxprt Code's operation, such as:

Available settings in settings.json:

accessibility

  • accessibility.enableLoadingPhrases (boolean):

    • Description: Enable loading phrases during operations.
    • Default: true
    • Requires restart: Yes
  • accessibility.screenReader (boolean):

    • Description: Render output in plain-text to be more screen reader accessible
    • Default: false
    • Requires restart: Yes

checkpointing

  • checkpointing.enabled (boolean):
    • Description: Enable session checkpointing for recovery
    • Default: false
    • Requires restart: Yes

lsp

  • lsp (boolean):
    • Description: Enable experimental Language Server Protocol integration for real-time type-error diagnostics after file edits.
    • Default: false
    • Requires restart: Yes

emojifilter

  • emojifilter (string):
    • Description: Filter emojis from AI-generated content and file operations. Options: allowed (no filtering), auto (silent filtering), warn (filter with warnings to AI), error (block operations with emojis).
    • Default: "auto"
    • Requires restart: No

fileFiltering

  • fileFiltering.respectGitIgnore (boolean):

    • Description: Respect .gitignore files when searching
    • Default: true
    • Requires restart: Yes
  • fileFiltering.respectLlxprtIgnore (boolean):

    • Description: Respect .llxprtignore files when searching
    • Default: true
    • Requires restart: Yes
  • fileFiltering.enableRecursiveFileSearch (boolean):

    • Description: Enable recursive file search functionality
    • Default: true
    • Requires restart: Yes
  • fileFiltering.enableFuzzySearch (boolean):

    • Description: Enable fuzzy search when searching for files.
    • Default: true
    • Requires restart: Yes
  • fileFiltering.maxFileCount (number):

    • Description: Maximum number of files to index during file search. Prevents OOM on large projects.
    • Default: 20000
    • Requires restart: Yes
  • fileFiltering.searchTimeout (number):

    • Description: Timeout in milliseconds for file search operations.
    • Default: 5000
    • Requires restart: Yes

enableAutoUpdate

  • enableAutoUpdate (boolean):
    • Description: Enable automatic updates.
    • Default: true
    • Requires restart: No

shouldUseNodePtyShell

  • shouldUseNodePtyShell (boolean):
    • Description: Allow fully interactive shell commands (vim, git rebase -i, etc.) by running tools through node-pty. Falls back to child_process when disabled.
    • Default: false
    • Requires restart: Yes

allowPtyThemeOverride

  • allowPtyThemeOverride (boolean):
    • Description: Allow ANSI colors from PTY output to override the UI theme. When disabled, PTY output uses the current theme colors.
    • Default: false
    • Requires restart: Yes

ptyScrollbackLimit

  • ptyScrollbackLimit (number):
    • Description: Maximum number of lines to keep in the PTY scrollback buffer for interactive shell output.
    • Default: 600000
    • Requires restart: Yes

streamIdleTimeoutMs

  • streamIdleTimeoutMs (number):
    • Description: Stream idle timeout in milliseconds. Disabled by default (0). Set to a positive number of milliseconds to enable the watchdog; zero or negative disables it. Any finite number is valid.
    • Default: 0
    • Requires restart: No

streamFirstResponseTimeoutMs

  • streamFirstResponseTimeoutMs (number):
    • Description: First-response (time-to-first-content) watchdog in milliseconds. Enabled by default (300000 = 5 minutes). A provider liveness signal (e.g. response.created) disarms it even before semantic content arrives. Set to 0 or a negative number to disable.
    • Default: 300000
    • Requires restart: No

useExternalAuth

  • useExternalAuth (boolean):
    • Description: Whether to use an external authentication flow.
    • Default: undefined
    • Requires restart: Yes

sandbox

  • sandbox (boolean | string):
    • Description: Sandbox execution environment (can be a boolean or a path string).
    • Default: undefined
    • Requires restart: Yes

coreTools

  • coreTools (array):
    • Description: Paths to core tool definitions.
    • Default: undefined
    • Requires restart: Yes

allowedTools

  • allowedTools (array):
    • Description: A list of tool names that will bypass the confirmation dialog.
    • Default: undefined
    • Requires restart: Yes

excludeTools

  • excludeTools (array):
    • Description: Tool names to exclude from discovery.
    • Default: undefined
    • Requires restart: Yes

defaultDisabledTools

  • defaultDisabledTools (array):
    • Description: Tool names disabled by default. Users can re-enable them with /tools enable.
    • Default: []
    • Requires restart: Yes

coreToolSettings

  • coreToolSettings (object):
    • Description: Manage core tool availability
    • Default: {}
    • Requires restart: Yes

toolDiscoveryCommand

  • toolDiscoveryCommand (string):
    • Description: Command to run for tool discovery.
    • Default: undefined
    • Requires restart: Yes

toolCallCommand

  • toolCallCommand (string):
    • Description: Command to run for tool calls.
    • Default: undefined
    • Requires restart: Yes

mcpServerCommand

  • mcpServerCommand (string):
    • Description: Command to start an MCP server.
    • Default: undefined
    • Requires restart: Yes

sessionRetention

  • sessionRetention (object):
    • Description: Settings for automatic session cleanup.
    • Default: undefined
    • Requires restart: No

output

  • output.format (enum):
    • Description: The format of the CLI output. Can be text or json.
    • Default: "text"
    • Values: "text", "json"
    • Requires restart: No

ui

  • ui.accessibility.enableLoadingPhrases (boolean):

    • Description: Enable loading phrases during operations.
    • Default: true
    • Requires restart: Yes
  • ui.accessibility.screenReader (boolean):

    • Description: Render output in plain-text to be more screen reader accessible
    • Default: false
    • Requires restart: Yes
  • ui.checkpointing.enabled (boolean):

    • Description: Enable session checkpointing for recovery
    • Default: false
    • Requires restart: Yes
  • ui.fileFiltering.respectGitIgnore (boolean):

    • Description: Respect .gitignore files when searching
    • Default: true
    • Requires restart: Yes
  • ui.fileFiltering.respectLlxprtIgnore (boolean):

    • Description: Respect .llxprtignore files when searching
    • Default: true
    • Requires restart: Yes
  • ui.fileFiltering.enableRecursiveFileSearch (boolean):

    • Description: Enable recursive file search functionality
    • Default: true
    • Requires restart: Yes
  • ui.fileFiltering.enableFuzzySearch (boolean):

    • Description: Enable fuzzy search when searching for files.
    • Default: true
    • Requires restart: Yes
  • ui.fileFiltering.maxFileCount (number):

    • Description: Maximum number of files to index during file search. Prevents OOM on large projects.
    • Default: 20000
    • Requires restart: Yes
  • ui.fileFiltering.searchTimeout (number):

    • Description: Timeout in milliseconds for file search operations.
    • Default: 5000
    • Requires restart: Yes
  • ui.theme (string):

    • Description: The color theme for the UI.
    • Default: undefined
    • Requires restart: No
  • ui.customThemes (object):

    • Description: Custom theme definitions.
    • Default: {}
    • Requires restart: No
  • ui.hideWindowTitle (boolean):

    • Description: Hide the window title bar
    • Default: false
    • Requires restart: Yes
  • ui.showStatusInTitle (boolean):

    • Description: Show LLxprt model thoughts in the terminal window title during the working phase
    • Default: false
    • Requires restart: No
  • ui.dynamicWindowTitle (boolean):

    • Description: Update the terminal window title with current status prefixes (Ready: ◇, Action Required: no leading glyph, Working: no leading glyph)
    • Default: true
    • Requires restart: No
  • ui.showHomeDirectoryWarning (boolean):

    • Description: Show a warning when running LLxprt CLI in the home directory.
    • Default: true
    • Requires restart: Yes
  • ui.hideTips (boolean):

    • Description: Hide helpful tips in the UI
    • Default: false
    • Requires restart: No
  • ui.hideBanner (boolean):

    • Description: Hide the application banner
    • Default: false
    • Requires restart: No
  • ui.hideContextSummary (boolean):

    • Description: Hide the context summary (LLXPRT.md, MCP servers) above the input.
    • Default: false
    • Requires restart: No
  • ui.footer.hideCWD (boolean):

    • Description: Hide the current working directory path in the footer.
    • Default: false
    • Requires restart: No
  • ui.footer.hideSandboxStatus (boolean):

    • Description: Hide the sandbox status indicator in the footer.
    • Default: false
    • Requires restart: No
  • ui.footer.hideModelInfo (boolean):

    • Description: Hide the model name and context usage in the footer.
    • Default: false
    • Requires restart: No
  • ui.hideFooter (boolean):

    • Description: Hide the footer from the UI
    • Default: false
    • Requires restart: No
  • ui.useAlternateBuffer (boolean):

    • Description: Use an alternate screen buffer for the UI, preserving shell history.
    • Default: true
    • Requires restart: Yes
  • ui.incrementalRendering (boolean):

    • Description: Enable incremental rendering for the UI. Only supported when useAlternateBuffer is enabled.
    • Default: true
    • Requires restart: Yes
  • ui.enableMouseEvents (boolean):

    • Description: Enable mouse event tracking for in-app scrolling. Disables terminal text selection and clickable links while active.
    • Default: true
    • Requires restart: Yes
  • ui.showMemoryUsage (boolean):

    • Description: Display memory usage information in the UI
    • Default: false
    • Requires restart: No
  • ui.alwaysDisplayFullShellCommand (boolean):

    • Description: Display complete shell commands without truncation.
    • Default: true
    • Requires restart: No
  • ui.showLineNumbers (boolean):

    • Description: Show line numbers in the chat.
    • Default: false
    • Requires restart: No
  • ui.showCitations (boolean):

    • Description: Show citations for generated text in the chat.
    • Default: false
    • Requires restart: No
  • ui.customWittyPhrases (array):

    • Description: Custom witty phrases to display during loading.
    • Default: []
    • Requires restart: No
  • ui.wittyPhraseStyle (enum):

    • Description: Choose which collection of witty phrases to display during loading.
    • Default: "default"
    • Values: "default", "llxprt", "gemini-cli", "whimsical", "custom"
    • Requires restart: No
  • ui.vimMode (boolean):

    • Description: Enable Vim keybindings in the input field.
    • Default: false
    • Requires restart: No
  • ui.ideMode (boolean):

    • Description: Enable IDE integration mode.
    • Default: false
    • Requires restart: No
  • ui.preferredEditor (string):

    • Description: The preferred code editor for opening files.
    • Default: undefined
    • Requires restart: No
  • ui.autoConfigureMaxOldSpaceSize (boolean):

    • Description: Automatically configure Node.js max old space size based on system memory.
    • Default: true
    • Requires restart: Yes
  • ui.maxHeapSizeMB (number):

    • Description: Caps the auto-configured Node.js max old space heap size. Overrides the default 8GB cap when auto-configure is enabled. Must be an integer.
    • Default: 8192
    • Requires restart: Yes
  • ui.historyMaxItems (number):

    • Description: Maximum number of history items to keep.
    • Default: 100
    • Requires restart: No
  • ui.historyMaxBytes (number):

    • Description: Maximum size of history in bytes.
    • Default: 1048576
    • Requires restart: No
  • ui.memoryImportFormat (string):

    • Description: Format for importing memory files (tree or flat).
    • Default: "tree"
    • Requires restart: No
  • ui.memoryDiscoveryMaxDirs (number):

    • Description: Maximum number of directories to scan for memory files.
    • Default: undefined
    • Requires restart: No
  • ui.memoryDiscoveryMaxDepth (number):

    • Description: Maximum directory depth for downward LLXPRT.md search from the current working directory. Does not affect upward traversal or global memory. When unset, searches all depths.
    • Default: undefined
    • Requires restart: No
  • ui.contextFileName (string | string[]):

    • Description: The name of the context file or files to load into memory. Accepts either a single string or an array of strings.
    • Default: undefined
    • Requires restart: No
  • ui.usageStatisticsEnabled (boolean):

    • Description: Enable anonymous usage statistics collection.
    • Default: true
    • Requires restart: No
  • ui.maxSessionTurns (number):

    • Description: Maximum number of turns in a session (-1 for unlimited).
    • Default: -1
    • Requires restart: No
  • ui.showTodoPanel (boolean):

    • Description: Show the todo panel in the UI.
    • Default: true
    • Requires restart: No
  • ui.useFullWidth (boolean):

    • Description: Use the entire width of the terminal for output.
    • Default: true
    • Requires restart: No
  • ui.enableLoadingPhrases (boolean):

    • Description: Enable loading phrases during operations.
    • Default: true
    • Requires restart: Yes
  • ui.screenReader (boolean):

    • Description: Render output in plain-text to be more screen reader accessible.
    • Default: false
    • Requires restart: Yes
  • ui.unicode (enum):

    • Description: Control rendering of Unicode box-drawing and spinner glyphs. Use "off" on terminals that show "?" for borders/spinners (e.g. legacy Windows PowerShell).
    • Default: "auto"
    • Values: "auto", "force", "off"
    • Requires restart: Yes

ide

  • ide.enabled (boolean):

    • Description: Enable IDE integration mode.
    • Default: false
    • Requires restart: Yes
  • ide.hasSeenNudge (boolean):

    • Description: Whether the user has seen the IDE integration nudge.
    • Default: false
    • Requires restart: No

showStatusInTitle

  • showStatusInTitle (boolean):
    • Description: Show LLxprt status and thoughts in the terminal window title
    • Default: false
    • Requires restart: No

hideCWD

  • hideCWD (boolean):
    • Description: Hide the current working directory path in the footer.
    • Default: false
    • Requires restart: No

hideSandboxStatus

  • hideSandboxStatus (boolean):
    • Description: Hide the sandbox status indicator in the footer.
    • Default: false
    • Requires restart: No

hideModelInfo

  • hideModelInfo (boolean):
    • Description: Hide the model name and context usage in the footer.
    • Default: false
    • Requires restart: No

allowMCPServers

  • allowMCPServers (array):
    • Description: A whitelist of MCP servers to allow.
    • Default: undefined
    • Requires restart: Yes

excludeMCPServers

  • excludeMCPServers (array):
    • Description: A blacklist of MCP servers to exclude.
    • Default: undefined
    • Requires restart: Yes

bugCommand

  • bugCommand (object):
    • Description: Configuration for the bug report command.
    • Default: undefined
    • Requires restart: No

summarizeToolOutput

  • summarizeToolOutput (object):
    • Description: Enables or disables summarization of tool output. Configure per-tool token budgets (for example {"run_shell_command": {"tokenBudget": 2000}}). Currently only the run_shell_command tool supports summarization.
    • Default: undefined
    • Requires restart: No

dnsResolutionOrder

  • dnsResolutionOrder (string):
    • Description: The DNS resolution order.
    • Default: undefined
    • Requires restart: Yes

tools

  • tools.sandbox (boolean | string):

    • Description: Sandbox execution environment. Set to a boolean to enable or disable the sandbox, or provide a string path to a sandbox profile.
    • Default: undefined
    • Requires restart: Yes
  • tools.autoAccept (boolean):

    • Description: Automatically accept and execute tool calls that are considered safe (e.g., read-only operations).
    • Default: false
    • Requires restart: No
  • tools.core (array):

    • Description: Paths to core tool definitions.
    • Default: undefined
    • Requires restart: Yes
  • tools.allowed (array):

    • Description: A list of tool names that will bypass the confirmation dialog.
    • Default: undefined
    • Requires restart: Yes
  • tools.exclude (array):

    • Description: Tool names to exclude from discovery.
    • Default: undefined
    • Requires restart: Yes
  • tools.discoveryCommand (string):

    • Description: Command to run for tool discovery.
    • Default: undefined
    • Requires restart: Yes
  • tools.callCommand (string):

    • Description: Command to run for tool calls.
    • Default: undefined
    • Requires restart: Yes
  • tools.useRipgrep (boolean):

    • Description: Use ripgrep for file content search instead of the fallback implementation. When unset, ripgrep is auto-enabled if detected.
    • Default: undefined
    • Requires restart: No
  • tools.enableToolOutputTruncation (boolean):

    • Description: Enable truncation of large tool outputs.
    • Default: true
    • Requires restart: Yes
  • tools.truncateToolOutputThreshold (number):

    • Description: Truncate tool output if it is larger than this many characters. Set to -1 to disable.
    • Default: 4000000
    • Requires restart: Yes
  • tools.truncateToolOutputLines (number):

    • Description: The number of lines to keep when truncating tool output.
    • Default: 1000
    • Requires restart: Yes
  • tools.policyPath (string):

    • Description: Absolute path to a TOML policy file that augments the built-in policy rules.
    • Default: undefined
    • Requires restart: No
  • tools.enableHooks (boolean):

    • Description: Enables the hooks system experiment. When disabled, the hooks system is completely deactivated regardless of other settings.
    • Default: true
    • Requires restart: Yes

mcp

  • mcp.serverCommand (string):

    • Description: Command to start an MCP server.
    • Default: undefined
    • Requires restart: Yes
  • mcp.allowed (array):

    • Description: A list of MCP servers to allow.
    • Default: undefined
    • Requires restart: Yes
  • mcp.excluded (array):

    • Description: A list of MCP servers to exclude.
    • Default: undefined
    • Requires restart: Yes

subagents

  • subagents.asyncEnabled (boolean):

    • Description: Globally allow background subagent runs. If off, async=true launches are blocked even if a profile enables them.
    • Default: true
    • Requires restart: No
  • subagents.maxAsync (number):

    • Description: Maximum concurrent async tasks. Profile setting (task-max-async) can limit but not exceed this value. Use -1 for unlimited.
    • Default: 5
    • Requires restart: No
  • subagents.definitions (object):

    • Description: Inline subagent definitions keyed by name. Each value must contain profile and systemPrompt.
    • Default: {}
    • Requires restart: Yes

security

  • security.disableYoloMode (boolean):

    • Description: Disable YOLO mode, even if enabled by a flag.
    • Default: false
    • Requires restart: Yes
  • security.enablePermanentToolApproval (boolean):

    • Description: Enable the "Allow for all future sessions" option in tool confirmation dialogs.
    • Default: false
    • Requires restart: No
  • security.blockGitExtensions (boolean):

    • Description: Blocks installing and loading extensions from Git.
    • Default: false
    • Requires restart: Yes
  • security.folderTrust.enabled (boolean):

    • Description: Setting to track whether Folder trust is enabled.
    • Default: false
    • Requires restart: Yes
  • security.auth.selectedType (string):

    • Description: The currently selected authentication type.
    • Default: undefined
    • Requires restart: Yes
  • security.auth.useExternal (boolean):

    • Description: Whether to use an external authentication flow.
    • Default: undefined
    • Requires restart: Yes
  • security.environmentVariableRedaction.allowed (array):

    • Description: Environment variables to allow in addition to the default allowlist.
    • Default: []
    • Requires restart: No
  • security.environmentVariableRedaction.blocked (array):

    • Description: Environment variables to block in addition to the default blocklist.
    • Default: []
    • Requires restart: No
  • security.environmentVariableRedaction.enabled (boolean):

    • Description: Enable environment variable redaction (disabled by default).
    • Default: false
    • Requires restart: No

excludedProjectEnvVars

  • excludedProjectEnvVars (array):
    • Description: Environment variables to exclude from project context.

    • Default:

      ["DEBUG", "DEBUG_MODE"]
      
    • Requires restart: No

enableAutoUpdateNotification

  • enableAutoUpdateNotification (boolean):
    • Description: Enable update notification prompts.
    • Default: true
    • Requires restart: No

includeDirectories

  • includeDirectories (array):
    • Description: Additional directories to include in the workspace context. Missing directories will be skipped with a warning.
    • Default: []
    • Requires restart: No

loadMemoryFromIncludeDirectories

  • loadMemoryFromIncludeDirectories (boolean):
    • Description: Whether to load memory files from include directories.
    • Default: false
    • Requires restart: No

model

  • model (string | object):
    • Description: The model to use for conversations. V2 settings may use { name, compressionThreshold }; compressionThreshold maps to chatCompression.contextPercentageThreshold.
    • Default: undefined
    • Requires restart: No

hasSeenIdeIntegrationNudge

  • hasSeenIdeIntegrationNudge (boolean):
    • Description: Whether the user has seen the IDE integration nudge.
    • Default: false
    • Requires restart: No

folderTrustFeature

  • folderTrustFeature (boolean):
    • Description: Enable folder trust feature for enhanced security.
    • Default: false
    • Requires restart: Yes

folderTrust

  • folderTrust (boolean):
    • Description: Setting to track whether Folder trust is enabled.
    • Default: false
    • Requires restart: Yes

chatCompression

  • chatCompression.contextPercentageThreshold (number):

    • Description: Fraction of context-limit that triggers history compression (0.0–1.0).
    • Default: undefined
    • Requires restart: No
  • chatCompression.strategy (string):

    • Description: Legacy compression strategy selector.
    • Default: undefined
    • Requires restart: No
  • chatCompression.profile (string):

    • Description: Legacy compression profile selector.
    • Default: undefined
    • Requires restart: No

experimental

  • experimental.extensionConfig (boolean):

    • Description: Enable requesting and fetching of extension settings.
    • Default: false
    • Requires restart: Yes
  • experimental.extensionReloading (boolean):

    • Description: Enables extension loading/unloading within the CLI session.
    • Default: false
    • Requires restart: Yes
  • experimental.jitContext (boolean):

    • Description: Enable just-in-time context memory loading via ContextManager instead of eager loading at startup.
    • Default: true
    • Requires restart: Yes
  • experimental.skills (boolean):

    • Description: Enable skills (experimental).
    • Default: false
    • Requires restart: Yes
  • experimental.introspectionAgentSettings.enabled (boolean):

    • Description: Enable the Introspection Agent.
    • Default: false
    • Requires restart: Yes

defaultProfile

  • defaultProfile (string):
    • Description: Default provider profile to use.
    • Default: undefined
    • Requires restart: Yes

providerApiKeys

  • providerApiKeys (object):
    • Description: API keys for different providers.
    • Default: {}
    • Requires restart: Yes

providerBaseUrls

  • providerBaseUrls (object):
    • Description: Base URLs for different providers.
    • Default: {}
    • Requires restart: Yes

providerToolFormatOverrides

  • providerToolFormatOverrides (object):
    • Description: Tool format overrides for different providers.
    • Default: {}
    • Requires restart: Yes

providerKeyfiles

  • providerKeyfiles (object):
    • Description: Keyfile paths for different providers.
    • Default: {}
    • Requires restart: Yes

extensionManagement

  • extensionManagement (boolean):
    • Description: Enable extension management features.
    • Default: true
    • Requires restart: Yes

enableTextToolCallParsing

  • enableTextToolCallParsing (boolean):
    • Description: Enable parsing of tool calls from text responses.
    • Default: false
    • Requires restart: No

textToolCallModels

  • textToolCallModels (array):
    • Description: Models that support text-based tool call parsing.
    • Default: []
    • Requires restart: No

openaiResponsesEnabled

  • openaiResponsesEnabled (boolean):
    • Description: Enable OpenAI Responses API compatibility.
    • Default: false
    • Requires restart: No

shellReplacement

  • shellReplacement (enum):
    • Description: Control command substitution in shell commands: "allowlist" (validate inner commands against coreTools), "all" (allow all), "none" (block all).
    • Default: "allowlist"
    • Values: "allowlist", "all", "none"
    • Requires restart: No

oauthEnabledProviders

  • oauthEnabledProviders (object):
    • Description: OAuth enablement configuration per provider.
    • Default: {}
    • Requires restart: Yes

useRipgrep

  • useRipgrep (boolean):
    • Description: Use ripgrep for file content search instead of the fallback implementation. When unset, ripgrep is auto-enabled if detected.
    • Default: undefined
    • Requires restart: No

enablePromptCompletion

  • enablePromptCompletion (boolean):
    • Description: Enable AI-powered prompt completion suggestions while typing.
    • Default: false
    • Requires restart: Yes

showProfileChangeInChat

  • showProfileChangeInChat (boolean):
    • Description: Show a message in chat when the active profile changes.
    • Default: true
    • Requires restart: No

enableFuzzyFiltering

  • enableFuzzyFiltering (boolean):
    • Description: Enable fuzzy filtering for command menu completions. When enabled, you can type partial characters (e.g., "prd" to match "production"). When disabled, only exact prefix matches are shown.
    • Default: true
    • Requires restart: No

customWittyPhrases

  • customWittyPhrases (array):
    • Description: Custom witty phrases to display during loading. When provided, the CLI cycles through these instead of the defaults.
    • Default: []
    • Requires restart: No

wittyPhraseStyle

  • wittyPhraseStyle (enum):
    • Description: Choose which collection of witty phrases to display during loading.
    • Default: "default"
    • Values: "default", "llxprt", "gemini-cli", "whimsical", "custom"
    • Requires restart: No

skills

  • skills.disabled (array):
    • Description: List of disabled skills.
    • Default: []
    • Requires restart: Yes

hooksConfig

  • hooksConfig.enabled (boolean):

    • Description: Canonical toggle for the hooks system. When disabled, no hooks will be executed.
    • Default: false
    • Requires restart: No
  • hooksConfig.notifications (boolean):

    • Description: Show visual indicators when hooks are executing.
    • Default: true
    • Requires restart: No
  • hooksConfig.disabled (array):

    • Description: List of hook names (commands) that should be disabled. Hooks in this list will not execute even if configured.
    • Default: []
    • Requires restart: No

hooks

  • hooks (object):
    • Description: Event-specific hook configurations.
    • Default: {}
    • Requires restart: No

admin

  • admin.secureModeEnabled (boolean):

    • Description: If true, disallows YOLO mode from being used.
    • Default: false
    • Requires restart: No
  • admin.extensions.enabled (boolean):

    • Description: If false, disallows extensions from being installed or used.
    • Default: true
    • Requires restart: No
  • admin.mcp.enabled (boolean):

    • Description: If false, disallows MCP servers from being used.
    • Default: true
    • Requires restart: No
  • admin.skills.enabled (boolean):

    • Description: If false, disallows agent skills from being used.
    • Default: true
    • Requires restart: No
  • Hook execution precedence: Hook execution requires both tools.enableHooks and hooksConfig.enabled to be true.

    • tools.enableHooks is the experimental hooks gate.
    • hooksConfig.enabled is the canonical runtime execution toggle.
  • contextFileName (string or array of strings):

    • Description: Specifies the filename(s) for context files that contain project instructions and context for the AI. Can be a single filename string or an array of accepted filenames. These files are loaded hierarchically from various locations (global, project root, ancestors, and subdirectories) to provide instructional context to the AI.
    • Default: "LLXPRT.md"
    • Single filename example: "contextFileName": "AGENTS.md"
    • Multiple filenames example: "contextFileName": ["AGENTS.md", "CONTEXT.md", "INSTRUCTIONS.md"]
    • Usage: When you prefer different naming conventions (like AGENTS.md for AI agent instructions, CONTEXT.md for project context, or custom names that match your project's documentation style), you can configure this setting. All specified filenames will be searched for and loaded from the hierarchical memory system.
    • Note for filename preferences: Some users prefer AGENTS.md as it clearly indicates the file contains instructions for AI agents. To use this convention, simply set "contextFileName": "AGENTS.md" in your settings file.
  • bugCommand (object):

    • Description: Overrides the default URL for the /bug command.
    • Default: "urlTemplate": "https://github.com/vybestack/llxprt-code/issues/new?template=bug_report.yml&title={title}&info={info}"
    • Properties:
      • urlTemplate (string): A URL that can contain {title} and {info} placeholders.
    • Example:
      "bugCommand": {
        "urlTemplate": "https://bug.example.com/new?title={title}&info={info}"
      }
      
  • fileFiltering (object):

    • Description: Controls git-aware file filtering behavior for @ commands and file discovery tools.

    • Default: "respectGitIgnore": true, "respectLlxprtIgnore": true, "enableRecursiveFileSearch": true, "enableFuzzySearch": true

    • Properties:

      • respectGitIgnore (boolean): Whether to respect .gitignore patterns when discovering files. When set to true, git-ignored files (like node_modules/, dist/, .env) are automatically excluded from @ commands and file listing operations.
      • respectLlxprtIgnore (boolean): Whether to respect .llxprtignore patterns when discovering files.
      • enableRecursiveFileSearch (boolean): Whether to enable searching recursively for filenames under the current tree when completing @ prefixes in the prompt.
      • enableFuzzySearch (boolean): When false, disables fuzzy search capabilities when searching for files, which can improve performance on projects with a large number of files.
    • Example:

      "fileFiltering": {
        "respectGitIgnore": true,
        "respectLlxprtIgnore": true,
        "enableRecursiveFileSearch": false,
        "enableFuzzySearch": false
      }
      

Troubleshooting File Search Performance

If you are experiencing performance issues with file searching (e.g., with @ completions), especially in projects with a very large number of files, here are a few things you can try in order of recommendation:

  1. Use .llxprtignore: Create a .llxprtignore file in your project root to exclude directories that contain a large number of files that you don't need to reference (e.g., build artifacts, logs, node_modules). Reducing the total number of files crawled is the most effective way to improve performance.

  2. Disable Fuzzy Search: If ignoring files is not enough, you can disable fuzzy search by setting enableFuzzySearch to false in your settings.json file. This will use a simpler, non-fuzzy matching algorithm, which can be faster.

  3. Disable Recursive File Search: As a last resort, you can disable recursive file search entirely by setting enableRecursiveFileSearch to false. This will be the fastest option as it avoids a recursive crawl of your project. However, it means you will need to type the full path to files when using @ completions.

  • coreTools (array of strings):

    • Description: Allows you to specify a list of core tool names that should be made available to the model. This can be used to restrict the set of built-in tools. See Built-in Tools for a list of core tools. You can also specify command-specific restrictions for tools that support it, like the ShellTool. For example, "coreTools": ["ShellTool(ls -l)"] will only allow the ls -l command to be executed.
    • Default: All tools available for use by the Gemini model.
    • Example: "coreTools": ["ReadFileTool", "GlobTool", "ShellTool(ls)"].
  • allowedTools (array of strings):

    • Default: undefined
    • Description: A list of tool names that will bypass the confirmation dialog. This is useful for tools that you trust and use frequently. The match semantics are the same as coreTools.
    • Example: "allowedTools": ["ShellTool(git status)"].
  • excludeTools (array of strings):

    • Description: Allows you to specify a list of core tool names that should be excluded from the model. A tool listed in both excludeTools and coreTools is excluded. You can also specify command-specific restrictions for tools that support it, like the ShellTool. For example, "excludeTools": ["ShellTool(rm -rf)"] will block the rm -rf command.
    • Default: No tools excluded.
    • Example: "excludeTools": ["run_shell_command", "findFiles"].
    • Security Note: Command-specific restrictions in excludeTools for run_shell_command are based on simple string matching and can be easily bypassed. This feature is not a security mechanism and should not be relied upon to safely execute untrusted code. It is recommended to use coreTools to explicitly select commands that can be executed.
  • allowMCPServers (array of strings):

    • Description: Allows you to specify a list of MCP server names that should be made available to the model. This can be used to restrict the set of MCP servers to connect to. Note that this will be ignored if --allowed-mcp-server-names is set.
    • Default: All MCP servers are available for use by the Gemini model.
    • Example: "allowMCPServers": ["myPythonServer"].
    • Security Note: This uses simple string matching on MCP server names, which can be modified. If you're a system administrator looking to prevent users from bypassing this, consider configuring the mcpServers at the system settings level such that the user will not be able to configure any MCP servers of their own. This should not be used as an airtight security mechanism.
  • excludeMCPServers (array of strings):

    • Description: Allows you to specify a list of MCP server names that should be excluded from the model. A server listed in both excludeMCPServers and allowMCPServers is excluded. Note that this will be ignored if --allowed-mcp-server-names is set.
    • Default: No MCP servers excluded.
    • Example: "excludeMCPServers": ["myNodeServer"].
    • Security Note: This uses simple string matching on MCP server names, which can be modified. If you're a system administrator looking to prevent users from bypassing this, consider configuring the mcpServers at the system settings level such that the user will not be able to configure any MCP servers of their own. This should not be used as an airtight security mechanism.
  • autoAccept (boolean):

    • Description: Controls whether the CLI automatically accepts and executes tool calls that are considered safe (e.g., read-only operations) without explicit user confirmation. If set to true, the CLI will bypass the confirmation prompt for tools deemed safe.
    • Default: false
    • Example: "autoAccept": true
  • theme (string):

    • Description: Sets the visual theme for LLxprt Code.
    • Default: "Default"
    • Example: "theme": "GitHub"
  • vimMode (boolean):

    • Description: Enables or disables vim mode for input editing. When enabled, the input area supports vim-style navigation and editing commands with NORMAL and INSERT modes. The vim mode status is displayed in the footer and persists between sessions.
    • Default: false
    • Example: "vimMode": true
  • shellReplacement (boolean):

    • Description: Allows command substitution patterns ($(), <(), and backticks) in shell commands. When enabled, you can use nested command execution within shell commands. This setting is disabled by default for security reasons.
    • Default: false
    • Example: "shellReplacement": true
    • Security Note: Enabling this feature allows execution of nested commands, which can be a security risk if running untrusted commands. Only enable if you understand the implications. See Shell Command Substitution for more details.
  • sandbox (boolean or string):

    • Description: Controls whether and how to use sandboxing for tool execution. If set to true, LLxprt Code uses the pre-built ghcr.io/vybestack/llxprt-code/sandbox Docker image. For more information, see Sandboxing.
    • Default: false
    • Example: "sandbox": "docker"
  • toolDiscoveryCommand (string):

    • Description: Defines a custom shell command for discovering tools from your project. The shell command must return on stdout a JSON array of function declarations. Tool wrappers are optional.
    • Default: Empty
    • Example: "toolDiscoveryCommand": "bin/get_tools"
  • toolCallCommand (string):

    • Description: Defines a custom shell command for calling a specific tool that was discovered using toolDiscoveryCommand. The shell command must meet the following criteria:
    • Default: Empty
    • Example: "toolCallCommand": "bin/call_tool"
  • ui.theme (string):

    • Description: The color theme for the UI. See Themes for available options.
    • Default: undefined
  • ui.customThemes (object):

    • Description: Custom theme definitions.
    • Default: {}
  • ui.hideWindowTitle (boolean):

    • Description: Hide the window title bar.
    • Default: false
  • ui.hideTips (boolean):

    • Description: Hide helpful tips in the UI.
    • Default: false
  • ui.hideBanner (boolean):

    • Description: Hide the application banner.
    • Default: false
  • ui.hideFooter (boolean):

    • Description: Hide the footer from the UI.
    • Default: false
  • ui.showMemoryUsage (boolean):

    • Description: Display memory usage information in the UI.
    • Default: false
  • ui.showLineNumbers (boolean):

    • Description: Show line numbers in the chat.
    • Default: false
  • ui.showCitations (boolean):

    • Description: Show citations for generated text in the chat.
    • Default: false
  • ui.customWittyPhrases (array of strings):

    • Description: A list of custom phrases to display during loading states. When provided, the CLI will cycle through these phrases instead of the default ones.
    • Default: []

ide

  • ide.enabled (boolean):

    • Description: Enable IDE integration mode.
    • Default: false
  • ide.hasSeenNudge (boolean):

    • Description: Whether the user has seen the IDE integration nudge.
    • Default: false

privacy

  • privacy.usageStatisticsEnabled (boolean):
    • Description: Enable collection of usage statistics.
    • Default: true

model

  • model.name (string):

    • Description: The Gemini model to use for conversations.
    • Default: undefined
  • model.compressionThreshold (number):

    • Description: V2 setting for the token threshold that triggers chat history compression, expressed as a percentage of the model context limit. This maps to legacy chatCompression.contextPercentageThreshold.
    • Default: undefined

context

  • context.fileName (string or array of strings):

    • Description: The name of the context file(s).
    • Default: undefined
  • context.importFormat (string):

    • Description: The format to use when importing memory.
    • Default: undefined
  • context.discoveryMaxDirs (number):

    • Description: Maximum number of directories to search for memory.
    • Default: 200
  • context.includeDirectories (array):

    • Description: Additional directories to include in the workspace context. Missing directories will be skipped with a warning.
    • Default: []
  • context.loadFromIncludeDirectories (boolean):

    • Description: Whether to load memory files from include directories.
    • Default: false
  • context.fileFiltering.respectGitIgnore (boolean):

    • Description: Respect .gitignore files when searching.
    • Default: true
  • context.fileFiltering.respectLlxprtIgnore (boolean):

    • Description: Respect .llxprtignore files when searching.
    • Default: true
  • context.fileFiltering.enableRecursiveFileSearch (boolean):

    • Description: Enable recursive file search functionality.
    • Default: true

shell

  • shouldUseNodePtyShell (boolean):

    Allow fully interactive shell commands by running tools through node-pty. This is the same as the Enable Interactive Shell (node-pty) toggle in the /settings dialog. Defaults to false. Legacy settings written as tools.shell.enableInteractiveShell or tools.usePty are migrated automatically.

tools

  • tools.sandbox (boolean or string):

    • Description: Sandbox execution environment (can be a boolean or a path string).
    • Default: undefined
  • tools.core (array of strings):

    • Description: Paths to core tool definitions.
    • Default: undefined
  • tools.exclude (array of strings):

    • Description: Tool names to exclude from discovery.
    • Default: undefined
  • tools.discoveryCommand (string):

    • Description: Command to run for tool discovery.
    • Default: undefined
  • tools.callCommand (string):

    • Description: Command to run for tool calls.
    • Default: undefined

mcp

  • mcp.serverCommand (string):

    • Description: Command to start an MCP server.
    • Default: undefined
  • mcp.allowed (array of strings):

    • Description: An allowlist of MCP servers to allow.
    • Default: undefined
  • mcp.excluded (array of strings):

    • Description: A denylist of MCP servers to exclude.
    • Default: undefined

security

  • security.folderTrust.enabled (boolean):

    • Description: Setting to track whether Folder trust is enabled.
    • Default: false
  • security.auth.selectedType (string):

    • Description: The currently selected authentication type.
    • Default: undefined
  • security.auth.useExternal (boolean):

    • Description: Whether to use an external authentication flow.
    • Default: undefined

advanced

  • advanced.autoConfigureMemory (boolean):

    • Description: Automatically configure Node.js memory limits.
    • Default: false
  • advanced.dnsResolutionOrder (string):

    • Description: The DNS resolution order.
    • Default: undefined
  • advanced.excludedEnvVars (array of strings):

    • Description: Environment variables to exclude from project context.
    • Default: ["DEBUG","DEBUG_MODE"]
  • advanced.bugCommand (object):

    • Description: Configuration for the bug report command.
    • Default: undefined

Top-Level Settings

The following settings remain at the top level of the settings.json file.

  • mcpServers (object):

    • Description: Configures connections to one or more Model-Context Protocol (MCP) servers for discovering and using custom tools. LLxprt Code attempts to connect to each configured MCP server to discover available tools. If multiple MCP servers expose a tool with the same name, the tool names will be prefixed with the server alias you defined in the configuration (e.g., serverAlias__actualToolName) to avoid conflicts. Note that the system might strip certain schema properties from MCP tool definitions for compatibility. At least one of command, url, or httpUrl must be provided. If multiple are specified, the order of precedence is httpUrl, then url, then command.
    • Reloading: Run /mcp reload in an active interactive session after changing persisted MCP settings. The command adds, removes, or reconnects affected servers without restarting the session while preserving startup profile, extension, administrative, and command-line restrictions. /mcp refresh only reconnects servers already loaded in memory.
    • Default: Empty
    • Properties:
      • <SERVER_NAME> (object): The server parameters for the named server.
        • command (string, optional): The command to execute to start the MCP server via standard I/O.
        • args (array of strings, optional): Arguments to pass to the command.
        • env (object, optional): Environment variables to set for the server process.
        • cwd (string, optional): The working directory in which to start the server.
        • url (string, optional): The URL of an MCP server that uses Server-Sent Events (SSE) or Streamable HTTP for communication. Use with the type field to specify the transport type ("sse", "http", or "streamable-http" as an alias for "http").
        • httpUrl (string, optional): The URL of an MCP server that uses streamable HTTP for communication. (Deprecated; use url with type: "http" instead.)
        • type (string, optional): Transport type. Use "stdio" for local command, "sse" for Server-Sent Events, "http" for Streamable HTTP, or "streamable-http" as an alias for "http". When set, disables automatic HTTP→SSE fallback.
        • headers (object, optional): A map of HTTP headers to send with requests to url or httpUrl.
        • timeout (number, optional): Timeout in milliseconds for requests to this MCP server.
        • trust (boolean, optional): Trust this server and bypass all tool call confirmations.
        • description (string, optional): A brief description of the server, which may be used for display purposes.
        • includeTools (array of strings, optional): List of tool names to include from this MCP server. When specified, only the tools listed here will be available from this server (allowlist behavior). If not specified, all tools from the server are enabled by default.
        • excludeTools (array of strings, optional): List of tool names to exclude from this MCP server. Tools listed here will not be available to the model, even if they are exposed by the server. Note: excludeTools takes precedence over includeTools - if a tool is in both lists, it will be excluded.
    • Example:
      "mcpServers": {
        "myPythonServer": {
          "command": "python",
          "args": ["mcp_server.py", "--port", "8080"],
          "cwd": "./mcp_tools/python",
          "timeout": 5000,
          "includeTools": ["safe_tool", "file_reader"]
        },
        "myNodeServer": {
          "command": "node",
          "args": ["mcp_server.js"],
          "cwd": "./mcp_tools/node",
          "excludeTools": ["dangerous_tool", "file_deleter"]
        },
        "myDockerServer": {
          "command": "docker",
          "args": ["run", "-i", "--rm", "-e", "API_KEY", "ghcr.io/foo/bar"],
          "env": {
            "API_KEY": "$MY_API_TOKEN"
          }
        },
        "mySseServer": {
          "url": "http://localhost:8081/events",
          "headers": {
            "Authorization": "Bearer $MY_SSE_TOKEN"
          },
          "description": "An example SSE-based MCP server."
        },
        "myStreamableHttpServer": {
          "httpUrl": "http://localhost:8082/stream",
          "headers": {
            "X-API-Key": "$MY_HTTP_API_KEY"
          },
          "description": "An example Streamable HTTP-based MCP server."
        }
      }
      
  • checkpointing (object):

    • Description: Configures the checkpointing feature, which allows you to save and restore conversation and file states. See the Continuation and Checkpointing documentation for more details.
    • Default: {"enabled": false}
    • Properties:
      • enabled (boolean): When true, the /restore command is available.
  • preferredEditor (string):

    • Description: Specifies the preferred editor to use for viewing diffs.
    • Default: vscode
    • Example: "preferredEditor": "vscode"
  • telemetry (object)

    • Description: Configures local logging and metrics collection for LLxprt Code. For more information, see Telemetry. Telemetry is written only to a configured local file or the console.
    • Default: {"enabled": false, "logPrompts": true}
    • Properties:
      • enabled (boolean): Whether or not telemetry is enabled. Defaults to false.
      • logPrompts (boolean): Controls whether user prompt text is included in the user_prompt log event. Does not affect hook I/O logging (hook input/output is always included in hook_call events when telemetry is enabled).
      • outfile (string): Optional local file path for traces, metrics, and logs. Without it, telemetry is written to the console.
    • Example:
      "telemetry": {
        "enabled": true,
        "logPrompts": false,
        "outfile": "/var/log/llxprt/telemetry.jsonl"
      }
      
  • usageStatisticsEnabled (boolean):

    • Description: Enables or disables the collection of usage statistics. See the usageStatisticsEnabled setting below for more information.
    • Default: true
    • Example:
      "usageStatisticsEnabled": false
      
  • enableTextToolCallParsing (boolean):

    • Description: Enables or disables text-based tool call parsing for models that output tool calls as formatted text rather than structured JSON.
    • Default: true
    • Example:
      "enableTextToolCallParsing": true
      
  • textToolCallModels (array of strings):

    • Description: Specifies additional model names that require text-based tool call parsing. The system automatically detects common models like gemma-3-12b-it and gemma-2-27b-it, but you can add custom models here.
    • Default: []
    • Example:
      "textToolCallModels": ["my-custom-model", "local-llama-model"]
      
  • hideTips (boolean):

    • Description: Enables or disables helpful tips in the CLI interface.

    • Default: false

    • Example:

      "hideTips": true
      
  • hideBanner (boolean):

    • Description: Enables or disables the startup banner (ASCII art logo) in the CLI interface.

    • Default: false

    • Example:

      "hideBanner": true
      
  • maxSessionTurns (number):

    • Description: Sets the maximum number of turns for a session. If the session exceeds this limit, the CLI will stop processing and start a new chat.
    • Default: -1 (unlimited)
    • Example:
      "maxSessionTurns": 10
      
  • summarizeToolOutput (object):

    • Description: Enables or disables the summarization of tool output. You can specify the token budget for the summarization using the tokenBudget setting.
    • Note: Currently only the run_shell_command tool is supported.
    • Default: {} (Disabled by default)
    • Example:
      "summarizeToolOutput": {
        "run_shell_command": {
          "tokenBudget": 2000
        }
      }
      
  • excludedProjectEnvVars (array of strings):

    • Description: Specifies environment variables that should be excluded from being loaded from project .env files. This prevents project-specific environment variables (like DEBUG=true) from interfering with llxprt-code behavior. Variables from .llxprt/.env files are never excluded.
    • Default: ["DEBUG", "DEBUG_MODE"]
    • Example:
      "excludedProjectEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"]
      
  • includeDirectories (array of strings):

    • Description: Specifies an array of additional absolute or relative paths to include in the workspace context. Missing directories will be skipped with a warning by default. Paths can use ~ to refer to the user's home directory. This setting can be combined with the --include-directories command-line flag.
    • Default: []
    • Example:
      "includeDirectories": [
        "/path/to/another/project",
        "../shared-library",
        "~/common-utils"
      ]
      
  • loadMemoryFromIncludeDirectories (boolean):

    • Description: Controls the behavior of the /memory refresh command. If set to true, GEMINI.md files should be loaded from all directories that are added. If set to false, GEMINI.md should only be loaded from the current directory.
    • Default: false
    • Example:
      "loadMemoryFromIncludeDirectories": true
      
  • chatCompression (object, legacy compatibility):

    • Description: Legacy root setting for chat history compression, both automatic and when manually invoked through the /compress command. New V2 configuration should use model.compressionThreshold.

    • Properties:

      • contextPercentageThreshold (number): A value between 0 and 1 that specifies the token threshold for compression as a percentage of the model's total token limit. For example, a value of 0.6 will trigger compression when the chat history exceeds 60% of the token limit. This is equivalent to model.compressionThreshold.
    • Example:

      "model": {
        "compressionThreshold": 0.6
      }
      
    • Legacy example:

      "chatCompression": {
        "contextPercentageThreshold": 0.6
      }
      
  • showLineNumbers (boolean):

    • Description: Controls whether line numbers are displayed in code blocks in the CLI output.
    • Default: true
    • Example:
      "showLineNumbers": false
      
  • emojiFilter (object):

    • Description: Controls emoji filtering in LLM responses and file operations. See Emoji Filter Guide for detailed usage.
    • Default: {"mode": "auto"}
    • Properties:
      • mode (string): Filtering mode - allowed, auto, warn, or error
        • allowed: No filtering, emojis pass through
        • auto: Silent filtering (default) - converts functional emojis to text, removes decorative ones
        • warn: Filter with feedback messages
        • error: Block any content with emojis
    • Example:
      "emojiFilter": {
        "mode": "warn"
      }
      
    • Note: Can be configured per-session using /set emojifilter <mode> command
  • defaultProfile (string):

    • Description: Specifies the profile to automatically load on startup. Set via /profile set-default command.
    • Default: null
    • Example:
      "defaultProfile": "my-development-profile"
      
    • Note: When set, the specified profile will be loaded automatically each time LLxprt Code starts
  • ui.accessibility (object):

    • Description: V2 namespace for accessibility features for the CLI. Root accessibility remains accepted for legacy compatibility.

    • Properties:

      • screenReader (boolean): Enables screen reader mode, which adjusts the TUI for better compatibility with screen readers. This can also be enabled with the --screen-reader command-line flag, which will take precedence over the setting.
      • enableLoadingPhrases (boolean): Enables the display of loading phrases during operations.
    • Default: {"screenReader": false, "enableLoadingPhrases": true}

    • Example:

      "ui": {
        "accessibility": {
          "screenReader": true,
          "enableLoadingPhrases": false
        }
      }
      
    • Legacy example:

      "accessibility": {
        "screenReader": true,
        "enableLoadingPhrases": false
      }
      
  • enablePromptCompletion (boolean):

    • Description: Enable AI-powered prompt completion suggestions while typing. Provides intelligent autocomplete based on context and command history.
    • Default: false
  • enableFuzzyFiltering (boolean):

    • Description: Enable fuzzy filtering for command menu completions. When enabled, you can type partial characters (e.g., "prd" to match "production"). When disabled, only exact prefix matches are shown.
    • Default: true
  • tools.useRipgrep (boolean):

    • Description: Use ripgrep for file content search instead of the fallback implementation. When unset, ripgrep is auto-enabled if detected.
    • Default: auto (enabled when ripgrep is available)
  • tools.enableToolOutputTruncation (boolean):

    • Description: Enable truncation of large tool outputs to prevent overwhelming the context window.
    • Default: true
  • tools.truncateToolOutputThreshold (number):

    • Description: Truncate tool output if it exceeds this many characters. Set to -1 to disable truncation.
    • Default: 30000
  • ui.showStatusInTitle (boolean):

    • Description: Show LLxprt status and AI thoughts in the terminal window title. Useful for monitoring progress when the terminal is in the background.
    • Default: false
  • ui.hideContextSummary (boolean):

    • Description: Hide the context summary (LLXPRT.md files, MCP servers) displayed above the input prompt.
    • Default: false
  • ui.footer.hideCWD (boolean):

    • Description: Hide the current working directory path in the footer.
    • Default: false
  • ui.footer.hideSandboxStatus (boolean):

    • Description: Hide the sandbox status indicator in the footer.
    • Default: false
  • ui.footer.hideModelInfo (boolean):

    • Description: Hide the model name and context usage information in the footer.
    • Default: false
  • ui.wittyPhraseStyle (enum):

    • Description: Choose which collection of witty phrases to display during loading operations.
    • Default: "default"
    • Options: "default", "llxprt", "gemini-cli", "whimsical", "custom"
  • ui.showTodoPanel (boolean):

    • Description: Show the todo panel in the UI for tracking AI-generated task lists.
    • Default: true
  • debugKeystrokeLogging (boolean):

    • Description: Enable debug logging of keystrokes to the console. Useful for troubleshooting input issues or developing custom keybindings.
    • Default: false
    • Warning: This will log all keystrokes including potentially sensitive input. Only enable for debugging purposes.

Example settings.json:

{
  "theme": "GitHub",
  "sandbox": "docker",
  "defaultProfile": "my-development-profile",
  "emojiFilter": {
    "mode": "warn"
  },
  "ui": {
    "customWittyPhrases": [
      "You forget a thousand things every day. Make sure this is one of 'em",
      "Connecting to AGI"
    ]
  },
  "toolDiscoveryCommand": "bin/get_tools",
  "toolCallCommand": "bin/call_tool",
  "mcpServers": {
    "mainServer": {
      "command": "bin/mcp_server.py"
    },
    "anotherServer": {
      "command": "node",
      "args": ["mcp_server.js", "--verbose"]
    }
  },
  "telemetry": {
    "enabled": true,
    "logPrompts": true
  },
  "usageStatisticsEnabled": true,
  "hideTips": false,
  "hideBanner": false,
  "maxSessionTurns": 10,
  "summarizeToolOutput": {
    "run_shell_command": {
      "tokenBudget": 100
    }
  },
  "excludedProjectEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"],
  "includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"],
  "loadMemoryFromIncludeDirectories": true
}

Using /settings

The /settings command opens an interactive settings editor inside your session. You can browse, search, and modify settings without editing JSON files manually.

/settings

Environment Variables and .env Files

The CLI automatically loads environment variables from .env files. The loading order is:

  1. .env in the current directory
  2. .env in parent directories (up to filesystem root)
  3. <config>/.env (user-level — see Application Directories)

String values in settings.json can reference environment variables using $VAR_NAME or ${VAR_NAME} syntax.

Shell History

Shell command history is stored per-project under LLxprt's log/state directory at <log>/tmp/<project_hash>/shell_history (overridable via LLXPRT_LOG_HOME).

See Also

These topics have dedicated documentation pages: