ottyel is a local OpenTelemetry workstation for the terminal.
It accepts OTLP over HTTP and gRPC, stores traces, logs, metrics, and LLM telemetry in SQLite, and gives you a fast keyboard-first interface with mouse support for investigating systems without shipping data to a hosted backend.
It is built for two jobs:
- inspect ordinary distributed traces, logs, and metrics locally
- inspect LLM-heavy workflows with prompt/output views, model rollups, sessions, timelines, and token or cost summaries
- Clone the repo
- build with
cargo install --locked --path . - run
ottyel
That’s it. It will run both the TUI and the server to ingest telemetry.
Most local observability setups are either too thin to be useful or too tied to
remote infrastructure. ottyel is meant to be a serious local workstation:
- OTLP/HTTP and OTLP/gRPC ingest on the standard local ports
- trace exploration with tree navigation, timing bars, and hot-path highlighting
- logs, metrics, and LLM views in the same terminal app
- local-first workflow for debugging apps, agents, eval runs, and prompt loops
From the repo:
cargo install --locked --path .The binary is installed into Cargo's bin directory, typically
~/.cargo/bin.
Start the app:
ottyelDefault listeners:
- OTLP/HTTP protobuf:
127.0.0.1:4318 - OTLP/gRPC:
127.0.0.1:4317
Default database location:
- macOS:
~/Library/Application Support/ottyel/ottyel.db - Linux:
$XDG_DATA_HOME/ottyel/ottyel.dbor~/.local/share/ottyel/ottyel.db - Windows:
%APPDATA%\ottyel\ottyel.db
Point an OpenTelemetry SDK at it with OTLP/HTTP:
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318Or with OTLP/gRPC:
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4317ottyel can expose the local SQLite dataset over MCP for agents and other
tools. The MCP server is read-only.
ottyel mcpExample client config:
{
"mcpServers": {
"ottyel": {
"command": "ottyel",
"args": ["mcp"]
}
}
}Use a specific database:
{
"mcpServers": {
"ottyel": {
"command": "ottyel",
"args": ["mcp", "--db-path", "/path/to/ottyel.db"]
}
}
}Resources:
ottyel://overviewottyel://traces/recentottyel://logs/recentottyel://metrics/recentottyel://llm/recentottyel://llm/rollups
Resource templates:
ottyel://trace/{trace_id}ottyel://logs/{trace_id}ottyel://llm/{trace_id}/{span_id}/timeline
Tools:
search_tracesget_tracesearch_logssearch_metricssearch_llmget_llm_timeline
- trace list and trace drilldown
- expandable trace tree with waterfall timing bars
- hot-path highlighting
- span detail with attributes, events, links, and LLM fields
- logs feed with filters and detail inspection
- metrics feed with charting and detail views
- LLM inspector with rollups, sessions, model comparison, prompt and output views, and timelines
- span-to-logs pivot from the trace explorer
- command palette, help overlays, mouse support, and layout presets
ottyelis local-first. It is not a hosted collector or multi-user service.- SQLite is the source of truth for the local dataset.
- Raw attributes remain visible even when higher-level LLM normalization is available.
MIT

