null means the value is inherited or unset. Dictionaries are shown as objects.
| Key | Type / choices | Default | Description |
|---|---|---|---|
ai.agents |
"object" | {} |
Agents by id. An entry named like a built-in agent (claude, codex, hermes) changes it; any other id adds a custom agent. |
ai.approval.agent_permissions |
["allow","ask"] | "ask" |
Whether an action runs straight away or waits for the user. |
ai.approval.redact_secrets |
"boolean" | true |
Hide private keys, access tokens, passwords and credentials in URLs in terminal output before an agent reads it. This is best effort; do not attach terminals that show secrets. |
ai.approval.terminal_read |
["allow","ask"] | "allow" |
Whether an action runs straight away or waits for the user. |
ai.approval.terminal_write |
["allow","ask"] | "ask" |
Whether an action runs straight away or waits for the user. |
ai.default_agent |
["string","null"] | null |
Agent id that new threads start with. Unset: ask each time. |
ai.enabled |
"boolean" | true |
Master switch. Off: the AI panel is hidden and every agent is stopped. |
ai.resources.memory_high_mb |
"integer"; 64–1048576 | 2048 |
Memory pressure threshold for each agent tree, in MiB. |
ai.resources.memory_max_mb |
"integer"; 64–1048576 | 4096 |
Hard memory limit for each agent tree, in MiB. |
ai.resources.memory_swap_max_mb |
"integer"; 0–1048576 | 1024 |
Maximum swap used by each agent tree, in MiB. Zero disables swap. |
ai.resources.tasks_max |
"integer"; 16–65536 | 512 |
Maximum processes and threads in each agent tree. |
ai.sandbox |
"off", "workspace" | "off" |
How agent processes are isolated from the rest of the system. |
ai.sessions.idle_timeout_secs |
"integer"; 1–86400 | 1800 |
Release a session after this many idle seconds. The chat a panel shows keeps its session regardless. |
ai.sessions.max_idle |
"integer"; 0–64 | 3 |
Maximum warm idle sessions. Zero releases every idle session. |
ai.sessions.max_live |
"integer"; 1–64 | 4 |
Maximum starting, live and closing sessions, shared by every window. |
ai.sessions.warm_start |
"boolean" | true |
Connect a chat when a panel shows it, so its model and options can be chosen before the first message. Off connects on the first message. |
ai.working_directory |
["string","null"] | null |
Folder agents start in. Unset: a private folder in the application's state directory. Without isolation, agents can read and change any of your files. |
appearance.card_gap |
"number"; 0.0–24.0 | 4.0 |
Space between floating cards and around the window's edge, in pixels. |
appearance.card_radius |
"number"; 0.0–24.0 | 10.0 |
Corner radius of floating cards, in pixels. |
appearance.dark_theme |
["string","null"] | null |
Imported dark theme name. Unset uses Nocterm Default. |
appearance.detect_server_country |
"boolean" | true |
Find out which country each saved server is in and show its flag. Sends the server's public IP address (never its name) to a GeoIP service on connecting; private addresses are never sent. A country set on the connection is always shown. |
appearance.layout |
"floating", "classic" | "floating" |
How the window's regions are framed. |
appearance.light_theme |
["string","null"] | null |
Imported light theme name. Unset uses Nocterm Default. |
appearance.mode |
"light", "dark", "system" | "system" |
Which palette the interface uses. |
clock.date |
"boolean" | false |
Whether a short date (Oct 24) comes before the time. |
clock.format |
"hour24", "hour12" | "hour24" |
How the clock shows the hour. |
clock.seconds |
"boolean" | false |
Whether the time includes seconds. The clock then updates every second instead of every minute. |
explorer.indexing.excluded |
"array" | [".cache",".git","node_modules",".cargo",".rustup",".npm",".gradle",".m2",".venv","__pycache__",".var","snap"] |
Folders with these names are never entered while counting, wherever they are. The folder being shown is always counted. |
explorer.indexing.local |
"boolean" | true |
Count the files and the size of local folders. |
explorer.indexing.max_local_entries |
"integer"; 1000–10000000 | 1000000 |
Stop counting a local folder after this many entries. |
explorer.indexing.max_remote_entries |
"integer"; 1000–10000000 | 20000 |
Stop counting a remote folder after this many entries. Every folder costs a round trip to the server. |
explorer.indexing.remote |
"boolean" | true |
Count the files and the size of remote folders, over SFTP. |
explorer.indexing.skip_home |
"boolean" | true |
Do not count a home directory itself: it is usually huge. Its subfolders are still counted. |
explorer.indexing.skip_root |
"boolean" | true |
Do not count the root of a file system (/, C:\). |
explorer.open.local.args |
"array" | [] |
Arguments, passed one by one without shell parsing. {file} stands for the file; without it the file is added last. |
explorer.open.local.program |
"string" | "" |
The executable, such as nvim or code. Empty uses the default. |
explorer.open.remote.args |
"array" | [] |
Arguments, passed one by one without shell parsing. {file} stands for the file; without it the file is added last. |
explorer.open.remote.program |
"string" | "nano" |
The executable, such as nvim or code. Empty uses the default. |
explorer.open.rules |
"array" | [] |
Programs for particular file types. The first rule naming a file's extension with a program for that side wins; with none, the defaults above are used. |
hubs.key_lock_minutes |
"integer" | 0 |
Close the account keys of a hub after this many minutes without vault use (at most 1440); 0 keeps them open until the person locks them or signs out. Independent of the local vault's auto-lock: chats and agents never need the keys. |
hubs.servers |
"array" | [] |
Known servers in the order they were added. A table that is not a usable server is ignored without affecting the others. |
layouts.active |
"string" | null |
The selected layout, a preset id or a built-in id (default, swapped). Unset or unknown selects default, or swapped if the earlier swap-sides choice is still in force. |
layouts.presets |
"array" | [] |
The saved presets, in the order the user keeps them. |
local.args |
"array" | [] |
Individual executable arguments, without shell parsing. |
local.cwd |
["string","null"] | null |
Initial directory. Empty means the user's home directory. |
local.env |
"object" | {} |
Additional environment variables; never put passwords here. |
local.integration |
"boolean" | true |
Enable ephemeral cwd and prompt integration in supported shells. |
local.program |
["string","null"] | null |
Shell executable. Empty means the system or server default. |
logging.auto_start |
"boolean" | false |
Automatically record remote output after a successful connection. Never records authentication or input directly. |
logging.directory |
["string","null"] | null |
Output directory. Unset uses the application's state/logs directory. |
logging.max_file_mib |
"integer"; 1–1024 | 10 |
Stop recording at this size instead of filling the disk. |
monitor.detail_interval_secs |
"integer"; 1–60 | 2 |
Seconds between updates while the details are open. |
monitor.details |
"array" | ["cpu","cores","memory","swap","load","uptime","temperature","disks","network","disk_io"] |
What the details show. |
monitor.enabled |
"boolean" | true |
Show the active host's resources in the status bar. |
monitor.history_points |
"integer"; 10–600 | 90 |
Samples the graphs in the details keep. |
monitor.interval_secs |
"integer"; 1–3600 | 30 |
Seconds between updates while the details are closed. Only what the status bar shows is collected then. |
monitor.local |
"boolean" | true |
Watch this computer while no remote session is active. |
monitor.status_bar |
"array" | ["cpu","memory"] |
What the status bar shows, in this order. |
plugins.disabled |
"array" | [] |
Ids of the disabled system plugins. A disabled plugin's panels and widgets are not shown in any window; its settings stay available. Required plugins cannot be disabled. |
plugins.user_plugins |
"boolean" | false |
Whether the application loads user plugins at the start. Off by default and read once, at the start: a change applies at the next start. Left out of the file while off. |
ssh.connect_timeout_secs |
"integer"; 1–600 | 15 |
Seconds to wait for a host to answer before giving up. |
ssh.keepalive_interval_secs |
"integer"; 0–3600 | 30 |
Seconds between keep-alive probes on an idle connection. 0 turns them off. |
ssh.launch.args |
"array" | [] |
Individual executable arguments, without shell parsing. |
ssh.launch.cwd |
["string","null"] | null |
Initial directory. Empty means the user's home directory. |
ssh.launch.env |
"object" | {} |
Additional environment variables; never put passwords here. |
ssh.launch.integration |
"boolean" | true |
Enable ephemeral cwd and prompt integration in supported shells. |
ssh.launch.program |
["string","null"] | null |
Shell executable. Empty means the system or server default. |
ssh.proxy |
object | {"type":"direct"} |
|
terminal.charset |
["utf8","windows1251","koi8_r","windows1252","gbk"] | "utf8" |
|
terminal.clipboard_write |
["deny","focused_terminal"] | "deny" |
Permission for terminal output (OSC 52) to change the system clipboard. |
terminal.copy_on_select |
"boolean" | false |
Copy text to the clipboard as soon as it is selected. |
terminal.cursor_blink |
"boolean" | true |
Blink the cursor while the terminal has focus. |
terminal.cursor_shape |
["block","bar","underline"] | "block" |
Shape of the terminal cursor. |
terminal.font_family |
["string","null"] | null |
Font family. Unset: the design tokens' terminal font. |
terminal.font_size |
["number","null"]; 6.0–72.0 | null |
Font size in pixels. Unset: the design tokens' terminal size. |
terminal.line_height |
["number","null"]; 1.0–3.0 | null |
Line height as a multiple of the font size. Unset: the design tokens' value. |
terminal.scrollback_lines |
"integer"; 0–1000000 | 10000 |
Lines of history kept above the visible screen. |
terminal.semantic_highlighting |
"boolean" | true |
Highlight dates, addresses and important messages in otherwise unstyled output. |
terminal.show_line_numbers |
"boolean" | false |
Show sequential logical line numbers outside the terminal grid. |
terminal.show_timestamps |
"boolean" | false |
Show the timestamp of the first output on each logical line. Show each logical line's first output time in UTC (this machine's clock). |
terminal.term |
"string" | "xterm-256color" |
Terminal type announced to the remote host (its TERM variable). |
vault.auto_lock_minutes |
"integer"; 1–1440 | 15 |
Lock after this many minutes without vault use (1–1440). |
vault.prompt_on_startup |
"boolean" | false |
Prompt for the master password when Nocterm starts. |
workspaces.container_directory |
"string" | "/home" |
Absolute POSIX project directory used when a container directory is left empty. |