Terminal
Settings → Terminal opens a command-line shell (bash) on the machine Open Net Worth runs on,
right in your browser. Its main use is signing in to a Claude Code or Codex subscription
on that machine, so Lucius can use it as his AI provider — without needing SSH access to the
server.
This is your server. Tools you sign in to here are used under your own agreement with their provider.
Where it’s available
- Private Cloud: always on for the signed-in owner.
- Self-hosted (
onw, Docker, source): off until you switch it on — see below. - Windows: not available.
- Desktop app on its own book: off — on your own computer, just use your normal terminal app. (Connected to a Private Cloud server, the desktop app shows that server’s terminal.)
Switch it on (self-hosted)
A shell can do anything the account running Open Net Worth can do, including reading your book’s files and saved credentials. Read Safeguards first.
-
Make sure the app has a password (Settings → Security). The terminal is never offered without one.
-
Start the app with
ONW_TERMINAL_ENABLED=true, for example:Terminal window ONW_TERMINAL_ENABLED=true onw startDocker: add
ONW_TERMINAL_ENABLED: "true"underenvironment:indocker-compose.yml, thendocker compose up -d. -
Sign in with your password in the browser. The terminal only opens for a real signed-in session — never for password-free local access or the API token. If this computer skips the password, turn off Don’t ask for the password on this computer in Settings → Security, then sign in.
-
Open Settings → Terminal and click Open terminal.
Sign in to Claude Code or Codex from it
- Open Settings → Terminal → Open terminal.
- Run the provider’s sign-in:
- Claude Code:
claude, then follow its sign-in prompts. - Codex:
codex login --device-auth— the device-code sign-in. Codex’s normal browser sign-in tries to return to the server’s own127.0.0.1, which your browser can’t reach.
- Claude Code:
- Open the link it prints on your own computer or phone, approve, and come back.
- In Settings → AI, choose that provider — see Connecting an AI provider.
The sign-in is saved in the home folder of the account running Open Net Worth and stays on that server.
How it behaves
- The shell runs as the app’s user, starts in that user’s home folder, and gets only a basic
environment (
PATH,HOME, locale, terminal, proxy and certificate settings) — none of the app’s own settings, passwords or AI keys. - One terminal at a time. Opening a second says “Another terminal is already open. Close it first.”
- Closes after 15 minutes without input (“Closed after 15 minutes without activity.”). Output from a running command doesn’t count as activity.
- Closing the tab or the terminal ends the shell and everything it started. Processes you
deliberately detach (
nohup,disown,tmux) keep running. - If the app restarts or the connection drops, the terminal ends; open a new one.
- Every time one opens, “Terminal opened” is recorded in the app’s run history and log.
Safeguards
- It can read your data. The shell is you, on your server: it can read the book’s database, connector credentials and stored API keys. That’s why only the signed-in owner gets it. What it can’t read is the running app itself — on Linux the app blocks other processes from inspecting its memory and drops its sign-in secrets from its environment once loaded.
- Recent sign-in (Private Cloud): the terminal asks for a sign-in from the last 15 minutes. An older session sees “For your security the terminal asks for a recent sign-in.” with Sign in again, and returns to the terminal afterwards. In the desktop app the sign-in opens in your browser (the app waits on “Continue in your browser”), then picks up the new session.
- Only from the app’s own page: another website can’t open or drive your shell.
- Never through the API token: phone Shortcuts, the CLI and other AI apps never get a shell.
Troubleshooting
There’s no Terminal in Settings — on a self-hosted server it only appears once it’s switched on and you’re signed in with your password (steps above).
“The terminal is switched off on this server.” — ONW_TERMINAL_ENABLED=true isn’t set, or
the app wasn’t restarted after setting it.
“Sign in to use the terminal.” — you’re using password-free local access or have no password set. See step 3 above.
“The terminal is not available on this operating system.” — the server runs on Windows.