Settings Reference
Complete reference of all Tabnine CLI settings. For an overview and getting started guide, see Settings.
Settings are read from settings.json files in order of precedence (highest first):
System Settings: Platform-specific system settings path — Admin-enforced overrides (highest priority)
Workspace:
<project>/.tabnine/agent/settings.json— Project-specific overridesUser:
~/.tabnine/agent/settings.json— Personal defaults across all projectsSystem Defaults: Platform-specific system defaults path — Organization-wide defaults that users can override (lowest priority)
Settings are deep-merged — you only need to specify overrides. System file paths vary by platform and can be overridden with TABNINE_CLI_SYSTEM_SETTINGS_PATH and TABNINE_CLI_SYSTEM_DEFAULTS_PATH environment variables.
Legend:
⟳ = requires restart to take effect
System file paths:
Windows
C:\ProgramData\tabnine-cli\settings.json
C:\ProgramData\tabnine-cli\system-defaults.json
macOS
/Library/Application Support/TabnineCli/settings.json
/Library/Application Support/TabnineCli/system-defaults.json
Linux
/etc/tabnine-cli/settings.json
/etc/tabnine-cli/system-defaults.json
General Settings
general.defaultApprovalMode
enum
You can control how tool execution is approved by choosing default (prompts for approval), auto_edit (automatically approves edit tools), or plan (read-only mode).
default
general.vimMode
boolean
You can use Vim keybindings for navigation and editing when this is enabled.
false
general.enableNotifications
boolean
You will receive desktop notifications for action-required prompts and session completion when this is enabled.
false
general.retryFetchErrors
boolean
The CLI will automatically retry network fetch errors when this is enabled.
true
general.maxAttempts
number
You can set the maximum number of retry attempts for model requests (this cannot be set higher than 10).
10
general.debugKeystrokeLogging
boolean
Keystrokes are logged to the console for debugging purposes when this is enabled.
false
general.preferredEditor
string
You can specify the editor you prefer to use for opening files.
—
general.devtools
boolean
DevTools inspector opens on launch when this is enabled (you can access it by pressing F12).
false
general.tabnineHost
string
You can specify the Tabnine host URL you want to use for authentication. ⟳
—
general.checkpointing.enabled
boolean
Session checkpointing is available for recovery when this is enabled. See Checkpointing. ⟳
false
Session Retention Settings
Automatic cleanup of old chat sessions:
general.sessionRetention.enabled
boolean
Old chat sessions are automatically cleaned up when this is enabled.
true
general.sessionRetention.maxAge
string
Sessions older than this time period are deleted (you can use formats like 7d, 24h, 1w).
30d
general.sessionRetention.maxCount
number
You can specify the maximum number of sessions to keep as an alternative to maxAge (keeps the most recent ones).
—
general.sessionRetention.minRetention
string
You can set the safety minimum retention period that prevents accidental deletion of very recent sessions.
1d
Plan Mode Settings
general.plan.directory
string
You can specify the directory where planning artifacts are stored (defaults to system temp dir if not specified). ⟳
—
general.plan.modelRouting
boolean
Automatically switches between Pro (planning) and Flash (implementation) models when this is enabled.
true
Output Settings
output.format
enum
You can choose the format for CLI output by selecting text or json.
text
User Interface Settings
All UI settings are nested under the ui key.
ui.autoThemeSwitching
boolean
Automatically switches between light and dark themes based on your terminal background when this is enabled.
true
ui.terminalBackgroundPollingInterval
number
You can set how often (in seconds) the CLI checks your terminal background color.
60
ui.showLineNumbers
boolean
Line numbers are displayed in chat when this is enabled.
true
ui.hideBanner
boolean
The startup banner is hidden when this is enabled.
false
ui.hideTips
boolean
Helpful tips are hidden when this is enabled.
false
ui.hideFooter
boolean
The footer bar is hidden when this is enabled.
false
ui.showMemoryUsage
boolean
Memory usage information is shown when this is enabled.
false
ui.showSpinner
boolean
A spinner is shown during operations when this is enabled.
true
ui.inlineThinkingMode
enum
You can control how model thinking is displayed by choosing off or full.
off
ui.loadingPhrases
enum
You can choose what you see while the CLI is working by selecting tips, witty, all, or off.
tips
ui.customWittyPhrases
array
You can specify custom phrases to cycle through during loading (replaces defaults when provided).
[]
ui.errorVerbosity
enum
You can choose the level of error details you want to see by selecting low or full.
low
ui.showStatusInTitle
boolean
Model thoughts are shown in your terminal title when this is enabled.
false
ui.dynamicWindowTitle
boolean
Your terminal title is updated with status icons when this is enabled.
true
ui.hideWindowTitle
boolean
The window title bar is hidden when this is enabled. ⟳
false
ui.useAlternateBuffer
boolean
Alternate screen buffer is used when this is enabled. ⟳
false
ui.incrementalRendering
boolean
Flickering is reduced when this is enabled (requires useAlternateBuffer). ⟳
true
ui.showCitations
boolean
Citations for generated text are shown when this is enabled.
false
ui.showModelInfoInChat
boolean
The model name for each response is shown when this is enabled.
false
ui.showUserIdentity
boolean
Your signed-in user identity is shown when this is enabled.
true
ui.showShortcutsHint
boolean
The "? for shortcuts" hint is shown when this is enabled.
true
ui.hideContextSummary
boolean
The context summary above the input is hidden when this is enabled.
false
ui.escapePastedAtSymbols
boolean
@ symbols in pasted text are escaped when this is enabled.
false
ui.useBackgroundColor
boolean
Background colors are used in the UI when this is enabled.
true
ui.showHomeDirectoryWarning
boolean
You are warned when running in your home directory when this is enabled. ⟳
true
ui.showCompatibilityWarnings
boolean
Terminal compatibility warnings are shown when this is enabled. ⟳
true
ui.accessibility.screenReader
boolean
Screen reader mode with plain text output is activated when this is enabled. ⟳
false
Footer customization
ui.footer.items
array
You can specify a list of item IDs to display in the footer (rendered in order).
—
ui.footer.showLabels
boolean
Descriptive headers are displayed above footer items when this is enabled.
true
ui.footer.hideCWD
boolean
The working directory is hidden when this is enabled.
false
ui.footer.hideModelInfo
boolean
The model name and context usage are hidden when this is enabled.
false
ui.footer.hideSandboxStatus
boolean
The sandbox indicator is hidden when this is enabled.
false
ui.footer.hideContextPercentage
boolean
The context window usage percentage is hidden when this is enabled.
true
Model Settings
model.maxSessionTurns
number
You can set the maximum number of turns per session (-1 means unlimited).
-1
model.compressionThreshold
number
You can specify the context usage fraction that triggers compression. ⟳
0.7
model.disableLoopDetection
boolean
Infinite loop detection is disabled when this is enabled. ⟳
false
model.skipNextSpeakerCheck
boolean
The next speaker check is skipped when this is enabled.
true
model.summarizeToolOutput
object
You can configure per-tool summarization settings (e.g., {\"run_shell_command\": {\"tokenBudget\": 2000}}).
—
Tools Settings
tools.enableRemoteCodeSearch
boolean
Tabnine Remote Code Search is enabled when this is enabled. ⟳
true
tools.enableCoaching
boolean
Tabnine Coaching Guidelines are enabled when this is enabled. See Coaching Guidelines. ⟳
true
tools.useRipgrep
boolean
Ripgrep is used for faster file search when this is enabled.
true
tools.truncateToolOutputThreshold
number
You can specify the maximum number of characters before tool output is truncated. ⟳
40000
tools.disableLLMCorrection
boolean
LLM error correction for edits is disabled when this is enabled. ⟳
true
tools.searchOutputLimitEnabled
boolean
Search tool output size is limited when this is enabled.
true
tools.searchMaxChars
number
You can specify the maximum number of characters from search tools.
50000
tools.core
array
You can restrict built-in tools to this allowlist. ⟳
—
tools.allowed
array
You can specify tool names that bypass the confirmation dialog. ⟳
—
tools.exclude
array
You can specify tool names to exclude from discovery. ⟳
—
tools.discoveryCommand
string
You can specify a command to run for tool discovery. ⟳
—
tools.callCommand
string
You can specify a custom shell command for invoking discovered tools (reads JSON from stdin, emits JSON on stdout). ⟳
—
Shell Settings
tools.shell.enableInteractiveShell
boolean
Interactive shell is used when this is enabled. ⟳
true
tools.shell.showColor
boolean
Color is shown in shell output when this is enabled.
false
tools.shell.inactivityTimeout
number
You can specify the maximum number of seconds without output (default 5 min).
300
tools.shell.pager
string
You can specify the pager command for shell output.
cat
tools.shell.enableShellOutputEfficiency
boolean
Shell output efficiency optimizations are enabled when this is enabled.
true
Sandbox Settings
tools.sandbox
object
You can enable sandboxed execution by setting this to true/false, a string command name ("docker", "podman"), or an object with enabled, command, image, allowedPaths, and networkAccess properties. ⟳
—
Security Settings
security.disableYoloMode
boolean
YOLO mode is blocked even from CLI flags when this is enabled. ⟳
false
security.disableAlwaysAllow
boolean
"Always allow" is removed from confirmation dialogs when this is enabled. ⟳
false
security.enablePermanentToolApproval
boolean
"Allow for all future sessions" option is shown when this is enabled.
false
security.autoAddToPolicyByDefault
boolean
"Allow for all future sessions" defaults to enabled for low-risk tools when this is enabled.
false
security.toolSandboxing
boolean
Experimental per-tool sandboxing is enabled when this is enabled.
false
security.blockGitExtensions
boolean
Extensions installed from Git are blocked when this is enabled. ⟳
true
security.allowedExtensions
array
You can specify a regex allowlist for extensions (overrides blockGitExtensions). ⟳
[]
security.folderTrust.enabled
boolean
Workspace trust checks are enabled when this is enabled. ⟳
true
security.enableConseca
boolean
Context-aware security checker is enabled when this is enabled. ⟳
false
Environment variable redaction
security.environmentVariableRedaction.enabled
boolean
Environment variables that may contain secrets are redacted when this is enabled. ⟳
false
security.environmentVariableRedaction.allowed
array
You can specify environment variables to never redact. ⟳
[]
security.environmentVariableRedaction.blocked
array
You can specify environment variables to always redact. ⟳
[]
Context Settings
context.includeDirectoryTree
boolean
Directory tree is included in initial context when this is enabled.
true
context.discoveryMaxDirs
number
You can specify the maximum number of directories to scan for memory files.
200
context.loadMemoryFromIncludeDirectories
boolean
Include directories are scanned for TABNINE.md files when this is enabled.
false
context.includeDirectories
array
You can specify additional directories to include in the workspace context.
[]
context.fileName
string
You can override the context file name(s) to load into memory.
—
context.importFormat
enum
You can specify the memory import format (tree or flat).
—
context.fileFiltering.respectGitIgnore
boolean
.gitignore is respected when searching when this is enabled. ⟳
true
context.fileFiltering.respectGeminiIgnore
boolean
.tabnineignore is respected when searching when this is enabled. ⟳
true
context.fileFiltering.enableRecursiveFileSearch
boolean
Recursive file search for @ references is enabled when this is enabled. ⟳
true
context.fileFiltering.enableFuzzySearch
boolean
Fuzzy file search is enabled when this is enabled. ⟳
true
context.fileFiltering.customIgnoreFilePaths
array
You can specify additional ignore file paths (take precedence over .gitignore and .tabnineignore). ⟳
[]
Telemetry Settings
telemetry.enabled
boolean
You can enable or disable telemetry collection.
—
telemetry.otlpEndpoint
string
You can specify a custom OTLP endpoint for telemetry data.
—
telemetry.otlpProtocol
enum
You can specify the OTLP protocol to use (grpc or http).
—
telemetry.logPrompts
boolean
Prompts are included in telemetry when this is enabled.
—
telemetry.outfile
string
You can specify a file path for writing telemetry output.
—
Billing Settings
billing.overageStrategy
enum
You can specify how to handle quota exhaustion by choosing ask, always, or never.
ask
MCP Servers Settings
The mcpServers key is a top-level object mapping server names to their configuration. See MCP Server Config for transport types, tool filtering, and authentication.
mcp.serverCommand
string
You can specify a command to start an MCP server. ⟳
—
mcp.allowed
array
You can specify an allowlist of MCP server names. ⟳
—
mcp.excluded
array
You can specify a blocklist of MCP server names. ⟳
—
Hooks Settings
See Hooks for full documentation.
hooksConfig.enabled
boolean
The hooks system is enabled when this is enabled. ⟳
true
hooksConfig.notifications
boolean
Indicators are shown when hooks run when this is enabled.
true
hooksConfig.disabled
array
You can specify a list of hook command names to disable.
[]
Hook events are configured under the hooks key with arrays per event: BeforeTool, AfterTool, BeforeAgent, AfterAgent, Notification, SessionStart, SessionEnd, PreCompress, BeforeModel, AfterModel, BeforeToolSelection.
IDE Settings
ide.enabled
boolean
IDE integration mode is enabled when this is enabled. ⟳
false
Skills Settings
skills.enabled
boolean
Agent Skills are enabled when this is enabled. ⟳
true
skills.disabled
array
You can specify a list of disabled skill names. ⟳
[]
Extensions Settings
extensions.disabled
array
You can specify a list of disabled extension names. ⟳
[]
Agents Settings
agents.overrides
object
You can specify per-agent override settings (model config, run config, enable/disable). ⟳
{}
agents.browser.sessionMode
enum
You can specify the browser session mode by choosing persistent, isolated, or existing. ⟳
persistent
agents.browser.headless
boolean
The browser runs in headless mode when this is enabled. ⟳
false
agents.browser.profilePath
string
You can specify the path to browser profile directory for session persistence. ⟳
—
agents.browser.visualModel
string
You can specify a model override for the browser visual agent. ⟳
—
agents.browser.allowedDomains
array
You can specify allowed domains for the browser agent. ⟳
["github.com", "*.google.com", "localhost"]
agents.browser.disableUserInput
boolean
User input on browser window is disabled during automation when this is enabled.
true
Advanced Settings
advanced.autoConfigureMemory
boolean
Node.js memory limits are automatically configured when this is enabled. ⟳
false
advanced.dnsResolutionOrder
string
You can specify the DNS resolution order (ipv4first or verbatim). ⟳
—
advanced.excludedEnvVars
array
You can specify environment variables to exclude from project context.
["DEBUG", "DEBUG_MODE"]
policyPaths
array
You can specify additional policy files or directories to load. ⟳
[]
adminPolicyPaths
array
You can specify additional admin policy files or directories to load. ⟳
[]
Last updated
Was this helpful?
