CLI Dashboard
activeA terminal-based dashboard for monitoring multiple services, built with Ink and React for the terminal.
TypeScriptInkReactNode.js
Overview
A real-time terminal dashboard that aggregates metrics from multiple services. Built with Ink (React for CLIs) to create a responsive, interactive TUI.
Features
- Multi-pane layout — Split screen showing different services
- Real-time updates — WebSocket connections to services
- Keyboard navigation — Vim-style keybindings
- Configurable — YAML config for service endpoints
Why Ink?
Writing TUIs with traditional ncurses or blessed is painful. Ink lets you use React patterns:
function ServicePanel({ name, metrics }: Props) {
return (
<Box flexDirection="column" borderStyle="single">
<Text bold>{name}</Text>
<Text color="green">CPU: {metrics.cpu}%</Text>
<Text color="yellow">Memory: {metrics.memory}MB</Text>
</Box>
);
}
Components, hooks, and familiar patterns — just rendering to the terminal instead of DOM.
Lessons Learned
Terminal rendering has constraints: no CSS, limited colors, character-based layouts. But these constraints force clarity. If your dashboard works in a terminal, it's probably well-designed for any medium.