CLI
Documentation

Version Latest

Settings reference

The CLI's settings files, how they are layered and merged, every top-level settings key, the environment variables it reads, and how to move settings between machines.

Settings files are JSON with comments and trailing commas allowed. For completion and validation in your editor, add:

{ "$schema": "<settings-schema-url>" }
CommandWhat it does
neuralinverse config validateCheck every settings file; show which keys a managed policy locks
neuralinverse config showPrint the merged result, with secrets masked
neuralinverse config pathList the files in use
/configSettings in effect and where they came from, in a session

Layers

From lowest to highest precedence:

LayerLocation
User~/.neuralinverse/settings.json (NEURALINVERSE_CONFIG_DIR moves the whole folder)
Project, shared.neuralinverse/settings.json; commit it
Project, personal.neuralinverse/settings.local.json; do not commit it
Extra files--config <file> (repeatable)
Command line--model, --mode, --allow, --deny, --max-turns, --reasoning, --mcp-config
Managed policyThe managed settings file, the remote policy, and the organisation's signed policy. See Enterprise deployment

Objects merge key by key; later layers win. These lists are combined across layers instead of replaced: permissions.allow, permissions.ask, permissions.deny, permissions.additionalDirectories, sandbox.writablePaths and webFetch.deniedDomains.

A managed layer locks every top-level key it sets. Some keys are honoured only in certain layers; the table below says so.

Keys

KeyTypeDescription
modelstringDefault model, provider/model
smallModelstringCheaper model for summaries; alias for models.fast
modelsobjectModel per role: main, plan, fast, subagent, summary, vision. See Providers and models
fallbackobjectmodels, on, cooldownMs. See fallback models
budgetobjectperPrompt and perSession limits, warnAt. See budgets
providersobjectProvider definitions. See Providers and models
maxOutputTokensnumberOutput token limit per response (default 16384, capped by the model)
temperaturenumberSampling temperature where supported
reasoningoff, low, medium, highReasoning effort
outputStylestringdefault, concise, explanatory, review, or a custom style from styles/*.md
promptCachingbooleanProvider prompt caching (default true)
maxTurnsnumberModel calls per prompt (default 200)
permissionsobjectmode, allow, ask, deny, additionalDirectories, disableFullAuto. See Permissions and modes
sandboxobjectenabled, allowNetwork, writablePaths, required
hooksobjectEvent to list of {matcher, command, timeoutMs}. See Hooks
mcpServersobjectMCP server definitions. See MCP servers
envobjectExtra environment variables for commands the agent runs
compactionobjectauto (default true), threshold (fraction of the context window, default 0.85)
bashobjectdefaultTimeoutMs (120000), maxTimeoutMs (600000), maxOutputChars (30000), shell
webFetchobjectallowedDomains, deniedDomains, maxBytes
instructionFilesstring[]Instruction file names (default ["AGENTS.md", "NEURALINVERSE.md"])
auditobjectenabled, path. See Enterprise deployment
telemetryobjectOpt-in OpenTelemetry export. See Enterprise deployment
uiobjectlayout (fullscreen, inline), transcript (gutter, numbered), theme (dark, light, auto, high-contrast, mono), reducedMotion, showThinking, markdown, color, vimMode, statusLine: {command, timeoutMs}
agentsobjectmaxBackground: concurrent background helper agents (default 4)
toolsobjectdeferThreshold (40), repl (true), profile (auto, edit, patch, both), batchedReads (true), fuzzyEdits (true). See Tools
promptobjectversion: v1 (default) or v2
harnessobjectloopDetection (true), stallTurns (8), autoContinue (true), maxAutoContinues (2), effortRouting (false)
worktreeobjectdirectory: where worktree creates checkouts (default .neuralinverse/worktrees)
servicesobjectmemory (enabled, maxNotes), notifications (enabled, minDurationMs), keepAwake, suggestions (true, false, "model"), tips
sessionRetentionDaysnumberDelete saved sessions older than this (default 30; 0 keeps them forever)
lspobjectenabled, disabled (server names), servers (custom language servers)
verifyobjectenabled, mode (off, suggest, auto), checks, timeoutMs, maxRounds. See Tools
pluginsobjectPlugin name to false to disable an installed plugin for this project
indexobjectenabled, maxFiles (50000), repoMapTokens (1500; 0 = no map), embeddings: {provider, model} (off; sends code to that provider)
teamobjectenabled, maxTasks (6), concurrency (3). See Goals, team runs and schedules
goalsobjectcheckpointEvery, continuationPrompt, maxIterations (25)
contextobjectContext window management. See Sessions and context
voiceobjectVoice input for /voice (below)
environmentnone, embedded, hdlProject only; never read from user settings or managed policy. See Firmware and hardware environments
embeddedobjectFirmware tool settings, using the Editor's names
hdlobjectHDL tool settings, using the Editor's names
checksobjectThe change gate. Several keys are managed only. See Checks
governanceobjectManaged only: policyBundle, policyKeys, organisation. See Permissions and modes
intentstringThe work item this session serves, for policies that require one (user settings)
contextPlatformobjectenabled, tokenBudget, sourceKinds, defaultSpaceId. See Organisation context
workspaceBindingPolicyobject or stringManaged only. See Organisation context
toolEnvironmentobjectManaged only: secretNames, passThrough
keystoneobjectbaseUrl, clientId (managed only), policy, policyKeys (managed only), requireSignIn (managed only). issuer and apiUrl are retired. See Sign in to Govern
activityobjectenabled, required (managed), content (managed), endpoint, tokenCommand, exclude, maxQueueBytes, maxQueueEvents. See Activity record
remotePolicyUrl, remotePolicyRequired, remotePolicyPublicKey, remotePolicyTokenCommandManaged settings file only. See Enterprise deployment
embedobjectManaged only: hostPolicyPublicKeys, trustHostPolicy. See SDK, server and embedding

Voice input

/voice records from the microphone until you stop talking (about 1.5 seconds of silence) or a time limit, transcribes the recording and sends the text as your next message. Audio is sent only to the provider named in voice.provider; nothing is sent unless voice is set.

"voice": {
  "provider": "openai",   // an OpenAI-compatible provider (OpenAI, Groq, a local whisper server) or Gemini
  "model": "whisper-1",
  "language": "en",       // optional ISO-639-1 hint
  "maxSeconds": 60,       // longest recording (default 60)
  "silenceMs": 1500,      // quiet after speech that ends the recording (default 1500)
  "device": "hw:1"        // optional input device
}

Recording uses a program already on the system: SoX (rec) or ffmpeg on macOS; arecord, ffmpeg or SoX on Linux; ffmpeg on Windows. The audio is kept in a temporary WAV file only until it is transcribed.

Move settings between machines

neuralinverse settings export bundle.json         # settings, keybindings, commands, agents, skills, styles
neuralinverse settings import bundle.json         # merged into ~/.neuralinverse (--replace overwrites settings)
neuralinverse settings sync --repo git@host:me/ni-settings.git   # two-way sync; the URL is remembered

Bundles and the sync repository never contain secrets: apiKey, every headers map, OAuth clientSecret and secret-looking env entries are removed, and only the files listed above are copied (never credentials, sessions, caches, logs or plugins). Importing keeps this machine's keys. Sync clones the repository into ~/.neuralinverse/sync, copies changes in the right direction, commits and pushes. When a file changed on both sides, this machine's copy wins; for settings.json both versions are merged, this machine's values winning.

Environment variables

VariableEffect
NEURALINVERSE_CONFIG_DIRUse another configuration folder instead of ~/.neuralinverse
NEURALINVERSE_MANAGED_SETTINGSPath of the managed settings file
NEURALINVERSE_MANAGED_SETTINGS_URLRemote policy URL when the managed file sets none
NEURALINVERSE_MANAGED_SETTINGS_TOKENBearer token for the remote policy request
NEURALINVERSE_AUDIT_LOGAudit log path (turns auditing on)
NEURALINVERSE_DISABLE_UPDATE_CHECK=1Skip the daily check for a newer version (also skipped when CI is set)
NEURALINVERSE_MCP_TIMEOUT, NEURALINVERSE_MCP_TOOL_TIMEOUTMCP connect and call timeouts (ms)
NEURALINVERSE_SEARCH_ENGINE=jsUse the built-in search instead of ripgrep
NEURALINVERSE_TELEMETRY=1Turn on OpenTelemetry export (with the standard OTEL_* variables)
NEURALINVERSE_SERVER_TOKENToken for neuralinverse serve
NEURALINVERSE_SHARED_DATA_DIR, NEURALINVERSE_IDE_QUALITYWhere the Build apps' shared account link lives, and the build quality (default stable)
NEURALINVERSE_TREE_SITTER_WASMFolder of the checks engine's tree-sitter WASM files
HTTPS_PROXY, HTTP_PROXY, NO_PROXY, NODE_EXTRA_CA_CERTSNetwork proxy and certificates
BRAVE_SEARCH_API_KEY, TAVILY_API_KEY, SEARXNG_URLTurn on the web_search tool with that backend
NO_COLOR, FORCE_COLORColour output
NO_MOTION=1Reduced motion

Provider credential variables are listed in Providers and models.

Files written

PathContents
~/.neuralinverse/settings.jsonYour settings
~/.neuralinverse/keybindings.jsonKey bindings
~/.neuralinverse/credentials.jsonProvider keys, only when no keychain works (mode 0600)
~/.neuralinverse/projects/<workspace>/Sessions, checkpoints, memory, code index, spill files
~/.neuralinverse/history.jsonlPrompt history
~/.neuralinverse/cache/models-*.jsonModel lists from providers (24 hours)
~/.neuralinverse/audit/*.jsonlAudit log, when enabled
~/.neuralinverse/managed/remote-policy.jsonLast good copy of the remote policy
~/.neuralinverse/managed/keystone-policy.jsonLast verified organisation policy
~/.neuralinverse/keystone/session.jsonNon-secret facts about your Govern sign-in
~/.neuralinverse/activity/queue/<account>/Activity events waiting to be sent
~/.neuralinverse/plugins/Installed plugins
~/.neuralinverse/server.jsonURL and token of a running serve (mode 0600; removed on shutdown)
~/.neuralinverse/sync/, sync-state.jsonSettings sync work tree and state

Last reviewed 17 October 2026View as Markdown

Settings reference · Docs · Neural Inverse