Skip to content
AI-Native Portfolio

CLI Dashboard

active

A 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.

Related Content