A more useful terminal UI for long-running Node services
This project grew out of wanting something more practical than raw server output in a plain terminal window. It adds a structured console view, command handling, scrollback, runtime state, and embedding options that make it easier to operate a service while it is actually running.
What it adds over plain stdout
- A dynamic title row with status information, including AFK detection and timing state.
- A scrollable buffer with better viewport handling, wrapping control, timestamps, and persistent history.
- Built-in command loading so a running service can expose operational commands without building a full admin panel.
- Config and history persistence through local JSON files, which keeps the runtime behavior predictable across restarts.
In practice, it is a better fit for server runtimes, game backends, and small self-hosted tools where a browser dashboard would be overkill but raw console output is too limiting.
Integration style
The library supports both direct in-process integration and launcher-style embedding for external executables. For Node services, the simplest path is creating a console instance and exposing the resulting API to the runtime.
const { createConsole } = require('tty-console');
const ui = createConsole({
titleEnabled: true,
wordWrapEnabled: true,
prompt: '> '
}).start();
console.log('server started');
There is also a launcher mode for cases where the real runtime is another executable and this console acts as the front-end that forwards input and tails output.
Built-in operational features
- Command loading from a dedicated
commands/folder. - Runtime toggles for title row, wrapping, timestamps, mouse mode, and AFK tracking.
- Persistent command history with prefix navigation for faster repeated admin work.
- Useful built-ins like
help,toggle,get,set,cls,mandelbrot, andexit.
Typical use case: keep a service or game server operational from the terminal while still having structured logs, quick commands, and better runtime feedback than standard console output alone.