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.
Installation
Section titled “Installation”npm install autotel-terminal autotelStandalone CLI
Section titled “Standalone CLI”Run as a standalone OTLP receiver:
npx autotel-terminalThen point your app at it:
OTEL_EXPORTER_OTLP_PROTOCOL=http/json \OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4319 \node app.jsCLI Options:
-p, --port <port>— Port (default: 4319)-H, --host <host>— Host (default: 127.0.0.1)-t, --title <title>— Dashboard title
In-Process Usage
Section titled “In-Process Usage”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 completeDashboard Controls
Section titled “Dashboard Controls”| 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 |
Features
Section titled “Features”- Real-time span streaming
- Parent/child span tree per trace
- Search and error filtering
- Span detail view with attributes
- Waterfall visualization
- Relative time labels
Examples
Section titled “Examples”example-terminal— Interactive terminal dashboard with live span streaming, error filtering, and P95 latency.
OTLP Endpoints (Standalone)
Section titled “OTLP Endpoints (Standalone)”| Endpoint | Signal |
| ------------------ | ------------ |
| POST /v1/traces | Traces |
| POST /v1/logs | Logs |
| POST /v1/metrics | Metrics |
| GET /healthz | Health check |