Skip to content

Terminal Viewer

autotel-terminal is a terminal-native trace viewer built with Ink (React for CLIs). It streams OpenTelemetry spans and shows them as traces with a span tree, search, and waterfall view.

Terminal window
npm install autotel-terminal autotel

Run as a standalone OTLP receiver:

Terminal window
npx autotel-terminal

Then point your app at it:

Terminal window
OTEL_EXPORTER_OTLP_PROTOCOL=http/json \
OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4319 \
node app.js

CLI Options:

  • -p, --port <port> — Port (default: 4319)
  • -H, --host <host> — Host (default: 127.0.0.1)
  • -t, --title <title> — Dashboard title

Wire StreamingSpanProcessor directly to your app:

import { init, trace } from 'autotel';
import { renderTerminal, StreamingSpanProcessor } from 'autotel-terminal';
const stream = renderTerminal({ title: 'my-app' });
init({
service: 'my-app',
spanProcessors: [new StreamingSpanProcessor(stream)],
});
// Spans appear in the terminal as they complete

| Key | Action | | ------- | ------------------------ | | / | Search by span name | | e | Toggle error-only filter | | ↑/↓ | Navigate traces/spans | | Enter | Expand selected trace | | l | Toggle logs view | | ? | Help overlay | | q | Quit |

  • Real-time span streaming
  • Parent/child span tree per trace
  • Search and error filtering
  • Span detail view with attributes
  • Waterfall visualization
  • Relative time labels
  • example-terminal — Interactive terminal dashboard with live span streaming, error filtering, and P95 latency.

| Endpoint | Signal | | ------------------ | ------------ | | POST /v1/traces | Traces | | POST /v1/logs | Logs | | POST /v1/metrics | Metrics | | GET /healthz | Health check |