Reference
Configuration
All configuration lives in ~/.sudoterm/config.json (chmod 600). Restart the daemon (sudoterm restart) after edits.
Example
{
"version": "1.0.0",
"port": 7681,
"host": "127.0.0.1",
"subdomain": "my-vps",
"logLevel": "info",
"shell": "/bin/bash",
"tmuxSessionName": "sudoterm",
"ai": {
"provider": "anthropic",
"model": "claude-sonnet-4-5"
}
}Keys
| Key | Default | Description |
|---|---|---|
port | 7681 | Local port the daemon listens on |
host | 127.0.0.1 | Bind address — keep loopback unless you know what you're doing |
subdomain | null | Set automatically by sudoterm subdomain change |
logLevel | info | debug / info / warn / error |
shell | $SHELL | Shell to spawn for terminal sessions |
tmuxSessionName | sudoterm | tmux session prefix |
ai.provider | anthropic | Default provider for new conversations |
ai.model | claude-sonnet-4-5 | Default model |
CLI editing
Instead of opening the JSON in an editor:
sudoterm config # print current config
sudoterm config get ai.model # read one key
sudoterm config set ai.model claude-opus-4-1 # write one key (restart to apply)
sudoterm config path # print pathFiles in ~/.sudoterm/
| File | Purpose | Mode |
|---|---|---|
config.json | Daemon config | 644 |
data.db | SQLite — users, sessions, notes, AI keys (encrypted) | 600 |
master.key | 32-byte master key for AES-256-GCM | 600 |
tunnel.json | Cloudflare Tunnel credentials | 600 |
notes/<noteId>/ | Note image uploads | 700 |