otel-ci
Add your description here
What it is and what it does
otel-ci is a Python utility for recording OpenTelemetry spans from command-line execution. It wraps CLI commands to generate and propagate spans via environment variables, similar to otel-cli. The key difference is its ability to export spans to a local directory instead of sending them live to a receiver, then replay those spans in bulk to an OTLP endpoint later. This deferred export model is useful when you want to avoid the overhead and latency of live span transmission during command execution.
The package supports nested span recording (running otel-ci within otel-ci) and integrates with OpenTelemetry's standard exporters. It depends on opentelemetry-exporter-otlp for replay functionality and requires Python 3.12.1 or later.
Use it for:
- Record spans from CI/CD pipeline steps without adding live export latency to the build.
- Batch-export traces from multiple commands executed in sequence, then replay them together to a collector.
- Debug command execution by capturing nested spans and exporting them to disk for later analysis.
- Instrument shell scripts and automation workflows with distributed tracing without modifying the underlying commands.
- Collect telemetry from ephemeral or resource-constrained environments where live export is impractical.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Records and exports OpenTelemetry spans from CLI commands, with optional bulk replay to an OTLP receiver instead of live export.
Yes, if you need CLI span recording with deferred export. The low install friction and active maintenance are positive signals. However, the unclear license status is a blocker for some use cases—verify the actual license before committing to production. The Python 3.12.1 requirement is a hard constraint.
Install
otel-ci on PyPI
pip
pip install otel-ciuv
uv add otel-cipoetry
poetry add otel-ciInstalling otel-ci
Before you install
Low friction install with a single runtime dependency (opentelemetry-exporter-otlp). Package is actively maintained with a recent release.
License in practice
License status is unclear—no SPDX identifier or license text is declared. Verify the actual license before use in proprietary or restricted contexts.
Quickstart
pip install otel-ci
export OTEL_EXPORTER_FILE_DIRECTORY="/tmp/out"
export OTEL_TRACES_EXPORTER="file"
otel-ci exec ls
export OTEL_TRACES_EXPORTER="otlp"
export OTEL_EXPORTER_OTLP_ENDPOINT="localhost:4317"
otel-ci replay -d "/tmp/out"
Requires Python 3.12.1 or later.
Verify before relying
- Whether the package is documented beyond the description excerpt provided.
- What the actual license is (SPDX identifier or text).
- Whether nested span recording and service naming work as shown in the usage examples.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.12.1) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — opentelemetry-exporter-otlp |
| Maintenance | actively maintained — 4 days since the last release |
| First released | |
| Downloads | 74,419/month — #14,839 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: otel_ci-0.4.0-py3-none-any.whl
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
pytest-otelA pytest plugin that captures and exports…
permissive · top 15,000 on PyPI
pyroscope-otelConnects OpenTelemetry tracing with Pyroscope…
permissive · top 5,000 on PyPI
otel-extensionsProvides helper classes, decorators, and…
permissive · top 15,000 on PyPI
asciinemaRecords and replays terminal sessions, saving…
copyleft · top 5,000 on PyPI
opentelemetry-instrumentation-clickAdds distributed tracing instrumentation to the…
permissive · top 5,000 on PyPI
opentelemetry-instrumentation-redisAdds distributed tracing to Redis client calls…
permissive · top 1,000 on PyPI
azure-monitor-opentelemetry-exporterExports OpenTelemetry traces, metrics, and logs…
permissive · top 1,000 on PyPI
opentelemetry-instrumentation-ollamaAdds distributed tracing to Ollama Python…
permissive · top 5,000 on PyPI
azure-core-tracing-opentelemetryIntegrates Azure SDK clients with OpenTelemetry…
unclear · top 5,000 on PyPI