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):

  1. System Settings: Platform-specific system settings path — Admin-enforced overrides (highest priority)

  2. Workspace: <project>/.tabnine/agent/settings.json — Project-specific overrides

  3. User: ~/.tabnine/agent/settings.json — Personal defaults across all projects

  4. System 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:

Platform
System Settings
System Defaults

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

Setting
Type
Description
Default

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:

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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.

Setting
Type
Description
Default

ui.theme

string

You can specify the color theme you want to use (see Themes).

(auto)

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.customThemes

object

You can define your custom theme definitions (see Themes for schema).

{}

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

model.name

string

You can specify the model identifier you want to use. See Model Selection.

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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.

Setting
Type
Description
Default

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.

Setting
Type
Description
Default

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

Setting
Type
Description
Default

ide.enabled

boolean

IDE integration mode is enabled when this is enabled. ⟳

false

Skills Settings

Setting
Type
Description
Default

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

Setting
Type
Description
Default

extensions.disabled

array

You can specify a list of disabled extension names. ⟳

[]

Agents Settings

Setting
Type
Description
Default

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

Setting
Type
Description
Default

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?