ncode

CLI docs Settings reference

ncode CLI Configure

Settings reference

This reference is generated from the settings registry of ncode itself, so it lists exactly the keys that Settings shows and ncode config accepts.

How to read it:

  • Key is the name for ncode config get, set and reset, and for /settings <key>.
  • Scope is where the value is kept: global (the database the desktop app shares), project (this project), session (one conversation), cli (cli.json, this terminal only) or project_file (.swarm_code/config.json, read-only here).
  • Applies says when a change takes effect, for example at once, next turn, next spawn (the next agent started), next launch, or desktop when only the desktop app acts on it.
  • Override names a flag or environment variable that wins while it is set.

Scopes: global (the database, shared with the desktop app), project (the project row), session (this conversation), cli (cli.json, this terminal only), project_file (.swarm_code/config.json, read-only here).

Override: the environment variable or flag that wins over the stored value. The older SWARM_* name of each NCODE_* variable still works; when both are set, NCODE_* wins.

Models & effort#

KeyLabelScopeTypeDefaultAppliesOverride
models.chatChat modelglobalmodelthe first provider with a keynew conversations—
models.sub_agentSub-agent modelglobalmodelthe first provider with a keynext spawn—
models.scheduledScheduled task modelglobalmodelthe chat modeldesktop—
models.workflowWorkflow modelglobalmodelthe chat modelnext turn—
models.implementerImplementer model (consensus)globalmodelthe planner implementsnext turn—
efforts.defaultDefault effortglobaleffortmediumnext turn—
efforts.sub_agentSub-agent effortglobaleffortmediumnext spawn—
efforts.scheduledScheduled effortglobaleffortsame as the default effortdesktop—
efforts.workflowWorkflow effortglobaleffortsame as the default effortnext turn—
efforts.implementerImplementer effortglobaleffortmedium (not set)next turn—
session.modelModel · this conversationsessionmodelthe chat modelnext turn--model
session.effortEffort · this conversationsessioneffortthe default effortnext turn—
session.sub_agent_modelSub-agent model · this conversationsessionmodelthe sub-agent modelnext spawn--model
session.sub_agent_effortSub-agent effort · this conversationsessioneffortthe sub-agent effortnext spawn—
session.modeModesessionenumbuildnext turn—
session.titleTitlesessiontextNew conversationat once—
session.pinnedPinnedsessiontoggleoffat once—
session.consensus_checksConsensus checkssessionchecklistthe 7 defaultsnext turn—
session.consensus_roundsConsensus roundssessionenum2next turn—
session.judge_modelJudge modelsessionmodelthe sub-agent modelnext turn—
session.judge_effortJudge effortsessioneffortthe defaultnext turn—
session.implementer_modelImplementer model · this conversationsessionmodelthe default implementernext turn—
session.implementer_effortImplementer effort · this conversationsessioneffortthe default implementer effortnext turn—

Search & web#

KeyLabelScopeTypeDefaultAppliesOverride
web.readerPage reader for web_fetchglobalenumweb_fetchnext request—

Deep research#

KeyLabelScopeTypeDefaultAppliesOverride
research.levelDefault levelglobalenummediumnext research—
research.max_liveAgents in flight at onceglobalinteger10next research—
research.max_sourcesPages each agent must readglobalinteger5next research—
research.recency_daysOnly sources newer thanglobalintegerany agenext research—
research.agent_timeoutSeconds an agent may takeglobalduration10mnext research—
research.max_retriesRetries after a timeoutglobalinteger1next research—
research.retry_timeoutsRetry timed-out agentsglobaltoggleonnext research—
research.headlinesA headline per roundglobaltoggleonnext research—
research.auto_designDesigned HTML reportglobalenumdeepnext research—
research.include_domainsOnly these domainsgloballistnext research—
research.exclude_domainsNever these domainsgloballistnext research—
research.lead_modelLead modelglobalmodelthe sub-agent modelnext research—
research.lead_effortLead effortglobaleffortdefaultnext research—
research.worker_modelWorker modelglobalmodelthe sub-agent modelnext research—
research.worker_effortWorker effortglobaleffortdefaultnext research—
research.reporter_modelReporter modelglobalmodelthe sub-agent modelnext research—
research.reporter_effortReporter effortglobaleffortdefaultnext research—

Language servers#

KeyLabelScopeTypeDefaultAppliesOverride
lsp.elixirElixirgloballsp_commandbuilt-in (elixir-ls --stdio)new clients—
lsp.erlangErlanggloballsp_commandno defaultnew clients—
lsp.typescriptTypeScriptgloballsp_commandbuilt-in (typescript-language-server --stdio)new clients—
lsp.javascriptJavaScriptgloballsp_commandbuilt-in (typescript-language-server --stdio)new clients—
lsp.pythonPythongloballsp_commandbuilt-in (pyright-langserver --stdio)new clients—
lsp.rustRustgloballsp_commandbuilt-in (rust-analyzer)new clients—
lsp.goGogloballsp_commandbuilt-in (gopls serve)new clients—
lsp.cCgloballsp_commandbuilt-in (clangd --log=error)new clients—
lsp.cppC++globallsp_commandbuilt-in (clangd --log=error)new clients—
lsp.rubyRubygloballsp_commandbuilt-in (solargraph stdio)new clients—
lsp.javaJavagloballsp_commandbuilt-in (jdtls)new clients—
lsp.swiftSwiftgloballsp_commandbuilt-in (sourcekit-lsp)new clients—
lsp.zigZiggloballsp_commandbuilt-in (zls)new clients—

Agents & limits#

KeyLabelScopeTypeDefaultAppliesOverride
limits.max_concurrent_agentsMax concurrent agentsglobalinteger4next spawn—
limits.max_agent_depthMax agent depthglobalenum2next spawn—
limits.max_agent_turnsMax agent turnsglobalinteger60next spawn—
limits.sub_agent_timeoutSub-agent time limitglobalduration30mnext spawn—
limits.workflow_budgetWorkflow agent budgetglobalinteger128next turn—
limits.workflow_max_liveMax live workflow agentsglobalinteger16next turn—
limits.command_timeoutCommand timeoutglobalduration2mnext turn—
limits.tool_timeoutTool timeoutglobalduration2mnext request—
isolation.worktreesIsolate sub-agentsglobaltoggleonnext spawn—
isolation.backendHow to isolateglobalenumautonext spawn—
shell.env_scrubHide secrets from commandsglobaltoggleonnext turn—
shell.env_keepKeep these variablesgloballistGITHUB_TOKEN, GH_TOKENnext turn—
shell.pathShellglobalpathdetect ($SHELL)next turnNCODE_SHELL or SWARM_CODE_SHELL
shell.loginLogin shellglobaltoggleonnext turn—

Approvals & trust#

KeyLabelScopeTypeDefaultAppliesOverride
project.approval_modeApprovalsprojectenumread_onlyat once—
project.trustedTrustedprojecttoggleoffat once—
project.allowAlways-allowed commandsprojectlistnext turn—
project.nameNameprojecttext—at once—

Project file#

KeyLabelScopeTypeDefaultAppliesOverride
project_file.efforteffortproject_filefact—at once—
project_file.swarm_effortswarm_effortproject_filefact—at once—
project_file.modelmodelproject_filefact—at once—
project_file.swarm_modelswarm_modelproject_filefact—at once—
project_file.deniedKeys a project file may not setproject_filefact—at once—

Appearance#

KeyLabelScopeTypeDefaultAppliesOverride
terminal.themeThemeclienumfollowat onceNCODE_THEME or SWARM_THEME
terminal.colorsColoursclienumautonext launchNO_COLOR
terminal.glyphsGlyphsclienumautonext launchNCODE_ASCII or SWARM_ASCII
terminal.ambiguous_widthAmbiguous-width charactersclienumnarrownext launch—
terminal.reduced_motionReduced motionclitoggleoffnext launch—
terminal.accentAccent colourclicolorCarbon (#FF6A1A)next launch—

Layout & transcript#

KeyLabelScopeTypeDefaultAppliesOverride
terminal.panelSide panelclienumfullat once—
terminal.composer_rowsComposer heightcliinteger3at once—
terminal.inspector_widthInspector widthclienumdefaultat once—
terminal.show_diffsShow diffsclitoggleonat once—
terminal.agent_summariesAI status linesclitoggleonat once—
terminal.notice_secondsNotices stay forcliduration6sat once—
terminal.diff_linesDiff lines showncliinteger12at once—

Keys & input#

KeyLabelScopeTypeDefaultAppliesOverride
terminal.keymapKeymapclienumstandardat onceNCODE_KEYMAP or SWARM_KEYMAP
terminal.mouseWheel scrollingclitoggleonat onceNCODE_MOUSE or SWARM_MOUSE
terminal.wheel_linesLines per notchcliinteger3at once—
terminal.editorEditor for Ctrl-Xclitext$VISUAL, then $EDITOR, then viat onceVISUAL, EDITOR
terminal.hint_lettersHint lettersclitextsfghjklwertuiopat once—
terminal.keysKey bindingsclikeys{}at once—

Session & startup#

KeyLabelScopeTypeDefaultAppliesOverride
terminal.startup_conversationOn launchclienumlatestnext launchNCODE_CONVERSATION or SWARM_CONVERSATION, --new/--continue/--resume
terminal.companionVisual companionclitoggleonnext launchNCODE_COMPANION or SWARM_COMPANION

Storage#

KeyLabelScopeTypeDefaultAppliesOverride
storage.retention_daysAutomatically delete sessions older thanglobalintegeroffdesktop—
storage.prune_daysPrune agent details older thanglobalintegeroffdesktop—

Budget & usage#

KeyLabelScopeTypeDefaultAppliesOverride
budget.monthly_usdMonthly budgetglobalmoneyno budgetat once—

Desktop app#

KeyLabelScopeTypeDefaultAppliesOverride
desktop.themeThemeglobalenumcarbondesktop—
desktop.modeModeglobalenumdarkdesktop—
desktop.reduce_motionReduce motionglobaltoggleoffdesktop—
desktop.bench_layoutConsensus cardglobalenumscalesdesktop—
desktop.consensus_layoutConsensus panesglobalenumstackeddesktop—
desktop.focus_on_finishBring the window to front when a run finishesglobaltoggleoffdesktop—
desktop.show_global_tasksShow global scheduled tasksglobaltoggleondesktop—
desktop.show_reasoningExpand activity & reasoning by defaultglobaltoggleoffdesktop—
desktop.keys.file_finderKey · File finderglobalcombodefault (meta+p)desktop—
desktop.keys.newKey · New chatglobalcombodefault (meta+n)desktop—
desktop.keys.nudge_leftKey · Resize panes leftglobalcombodefault (shift+alt+ArrowLeft)desktop—
desktop.keys.nudge_rightKey · Resize panes rightglobalcombodefault (shift+alt+ArrowRight)desktop—
desktop.keys.quitKey · Quitglobalcombodefault (meta+q)desktop—
desktop.keys.searchKey · Searchglobalcombodefault (meta+k)desktop—
desktop.keys.settingsKey · Settingsglobalcombodefault (meta+,)desktop—
desktop.keys.sideKey · Toggle side chatglobalcombodefault (meta+shift+s)desktop—
desktop.keys.sidebarKey · Toggle panelglobalcombodefault (meta+b)desktop—
desktop.sidebar_collapsedSidebar hiddenglobaltoggleoffdesktop—
desktop.sidebar_widthSidebar width (px)globalinteger280desktop—
desktop.sidebar_sectionsFolded sidebar groupsglobalmap_readonly{}desktop—
desktop.sidebar_scrollSidebar scroll (px)globalinteger0desktop—
desktop.pane_viewAgents pane tabglobalenumcardsdesktop—
desktop.agents_viewAgents layoutglobalenumtreedesktop—
desktop.agents_densityAgent card densityglobalenumfulldesktop—
desktop.side_w_2colSide chat width, two columns (px)globalinteger440desktop—
desktop.side_w_3colSide chat width, three columns (px)globalinteger380desktop—
desktop.pane_wAgents pane width (px)globalinteger420desktop—
desktop.composer_hComposer height (px)globalintegergrows with the textdesktop—
desktop.side_composer_hSide composer height (px)globalintegergrows with the textdesktop—
desktop.prompt_sizePrompt drawer sizeglobalenummddesktop—