Reference·ConfigIndex

Config

The config file, how to change it, and every core key with type and default.

.mdllms.txt

File

FactValue
Path~/.nodecode/config.jsonc
FormatJSONC: JSON with comments.
ScopeOne per home. The home is ~/.nodecode/, or a profile's folder.
Missing fileAllowed. Every key has a default or is optional.

The other files of the home are listed in Files.

Change it

Edit the file, or use eval. See Eval.

(config-get '("channels" "discord"))
(config-set '("channels" "discord") '(:require_mention nil))
(config-set '("providers" "old") :remove)
FormDoes
(config-get)Returns the whole config.
(config-get PATH)Returns the value at PATH. PATH is a list of keys, or one key.
(config-set PATH VALUE)Writes VALUE at PATH. Returns the change as one line.
(config-set PATH :remove)Removes the member at PATH.
RuleDetail
CommentsKept. Every other byte of the file is kept too.
Object valueMerged member by member. It never removes a member.
Other valueReplaces the member.
WriteAtomic. The file mode is kept.
Secrets on readA key ending in api_key, token, secret or password reads as [set].
Secrets on writeconfig-set refuses to write [set] over a secret.
Whole sectionA section read with secrets cannot be written back whole. Write single members.

Apply a change

KeysReadApply with
Cell sectionsWhen the cell starts.(restart-cells) or (restart-cells "NAME") in eval.
providers, failoverAt the start of each turn, when the file changed.The next turn.
general.default_model, general.auxiliary_modelWhen the organism boots. An organism is a running Nodecode.A restart, or /models and /model-aux.
workspace.capturesWhen the gateway starts. The gateway is the local server shells attach to.A restart.
general.themeWhen the shell starts./themes, or a new shell.

(restart-cells) stops the cells, reads the file again and starts them.

general

KeyTypeDefault
general.default_modelObject: provider, model, optional effortNone. The build default applies.
general.auxiliary_modelSame objectNone. Side work runs on the session's model.
general.themeStringTungstene. A /themes pick outranks it.

See Models and providers.

providers

One entry per provider id, under providers.<id>.

KeyTypeDefault
sdkopenai-completions, openai-responses, anthropic or googleNone
base_urlStringBy dialect. See Models and providers.
api_keyString. A leading ! runs a shell command.None
display_nameStringThe id
models[].idStringNone
models[].context_windowInteger above 0None
models[].sdkA dialect, for this model onlyThe provider's sdk
proxyStringNone
request_max_retriesInteger, 0 or more4
stream_max_retriesInteger, 0 or more5
stream_idle_timeout_msInteger above 0120000
stream_rerun_ceiling_secondsNumber, 0 or more. 0 disables it.120
reasoning_summaryString. off, none or false disables it.auto
session_token, access_key_id, secret_access_keyStringNone

session_token, access_key_id and secret_access_key only mark the provider as having credentials. No request sends them.

failover

KeyTypeDefault
failover.chainArray of {provider, model}None: no failover

gateway and workspace

KeyTypeDefault
gateway.operator_tokenStringNone. Read after the environment and the operator-token file.
workspace.capturesBooleantrue. false turns workspace snapshots off.

See Gateway and Sessions and undo.

update

KeyTypeDefault
update.modeauto, ask or offauto on an installed build. off on a checkout build.
update.channelStringstable
update.check_minutesInteger, 1 or more360 with a release feed. 30 without one.
update.urlString: a release hostThe host this build was installed from.
update.feedString: the feed address, or offBeside the release host.

See Updates.

request_bodies

Nodecode keeps the exact body of each model call in the store.

KeyTypeDefault
request_bodies.keep_mbInteger, 0 or more. 0 keeps none.256

Past the limit the oldest bodies go.

notify

A desktop notice when a turn ends. The section's presence turns it on.

KeyTypeDefault
notify.commandArray of strings: the command and its arguments. {title} and {body} are filled in.notify-send on Linux, a toast on Windows and WSL, osascript on macOS
notify.scopeattached or allattached: only when a shell received the turn's end

A cancelled turn sends no notice.

Cell sections

A cell is a folder of code under ~/.nodecode/cells/. Each cell reads its own section.

Every cell section takes enabled, a boolean, default true. "enabled": false stops that cell from starting.

A cell declares its section in its own code. /setup shows it as a panel. See Cell API.

Esc

    Loading the index…

    ↑↓ moveEnter openEsc close