Terminal console

The server can draw a management interface on the console it was started in, instead of scrolling log lines past you. It runs on its own thread beside the web host: closing it leaves the server running, and failing to start it never stops the server from serving.

It is the same information the web admin console shows, reachable without a browser — useful on a machine you are already logged into over SSH or RDP, and while the workspace is still coming up.

What it shows

Pane What it holds
Overview Live CPU and memory charts, plus the process facts (thread-pool threads, whether the graph is loaded).
Logs The in-memory log buffer, filterable, and scrollable back through the window it keeps.
Metrics A chart for any metric the server records.
Health The registered health checks and their current status.
Threads The server's own threads, listed separately from the extractor processes it starts.
Shell A C# shell against the live workspace, using the shell execution scope. Unavailable on a read-only replica and while the graph is not accepting code.
Stop Shuts the server down.

Turning the interface on changes nothing about where the log goes: the rolling log files and the in-memory buffer are written exactly as before, and the start-up log still goes to the console until the interface takes it over. Close the interface and the console gets the live log back.

When it is on

Situation Default
Started by hand on Windows or macOS, with a console attached On
Started by hand on Linux Off — opt in with MSK_TUI=true
Running as a Windows service (MSK_RUN_AS_SERVICE) Off — a service has no console of its own
Running in a container Off — the image sets MSK_TUI=false
No console attached, or the console is redirected (piped, captured by a supervisor) Off
The desktop app Off — it has its own window

MSK_TUI overrides the default in both directions:

MSK_TUI=true   # ask for the interface where it is off by default
MSK_TUI=false  # never draw it

MSK_TUI=true can ask for an interface but cannot make a console able to show one. A console that lacks something the interface needs is reported at start-up, with the list of what it cannot do, so you are not left waiting for a screen that is never coming:

The terminal management interface cannot run on <console>, which does not support:
  …

The routine reasons the interface is off — a container, a service, a console nobody is looking at — are a debug-level line rather than a message on stdout.

If the interface fails to start, the server keeps running and logs to the console as usual, and the error names MSK_TUI=false as the way to stop it from trying.

© 2026 Curiosity. All rights reserved.
Powered by Neko