Skip to main content

telemetry-cli

Command-line tools for binary telemetry, built for Unix pipelines:

  • pick decodes fields from fixed-length binary records: integers, floats, complex numbers, characters and bit fields, in any byte order (manual).
  • recs extracts records from a byte stream by their start (and end) markers (manual).
  • recl estimates the record length of a binary file (manual).
  • tgen generates synthetic telemetry from a command file describing each record (manual).
  • realign puts frames that start at any bit (in a raw bit stream) on byte boundaries, so pick can read them (manual).
$ printf '\x00\x00\x00\x01\xff\xfeHi\x00\x00\x00\x02\x00\x07ok' > demo.bin
$ pick demo.bin 8 -q order=big u s 2S
1 -2 Hi
2 7 ok
$ pick demo.bin 8 -q order=big -n u0x w2b
0 00 00 00 01  1111 1111 1111 1110
1 00 00 00 02  0000 0000 0000 0111

Together: tgen makes a stream, recs pulls the frames out of it, recl finds their length, and pick decodes them. See Using the tools together.

Install

Requires Python 3.10 or later. The package is telemetry-cli on PyPI, and is best installed as an isolated command-line tool:

pipx install telemetry-cli
# or
uv tool install telemetry-cli

Either installs the commands pick, recs, recl, tgen and realign. You can also pip install telemetry-cli in a virtual environment.

History

These are Python ports of tools written at JPL. pick and recl began together as C++ tools, for a project whose telemetry arrived with no documentation of its structure: recl to find the length of the records, and pick to take them apart and work out what was in them. (A bit reminiscent of the film Contact.) Both were later rewritten in Perl (pick by 2000), and tgen (2003) and recs joined them.

The command lines are the same, and so is the output, apart from fixes listed in the CHANGELOG: chiefly pick's byte-order handling on little-endian machines, and recl's measurement. tgen's command files are now Python; tgen --convert translates the old Perl ones. The Perl originals, with their history, are in legacy/.

Development

python -m venv .venv && .venv/bin/pip install -e '.[dev]'
.venv/bin/pytest

The tests compare each tool with its Perl original. tests/golden/ holds the Perl's output for large tables of command lines (about 2,200 for pick, 700 for recs), and the tests check that the Python version reproduces it byte for byte. Where it deliberately differs, the case names the CHANGELOG entry that explains why. With perl installed, further tests run random command lines through both versions and compare them (HYPOTHESIS_PROFILE=deep pytest for a longer search), and python tools/make_golden.py --check confirms the saved output is current. The examples in the documentation run as tests too.

Release files for telemetry-cli 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for telemetry-cli 1.1.0
File Size Uploaded
telemetry_cli-1.1.0.tar.gz 979.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for telemetry-cli 1.1.0
File Interpreter ABI Platform
telemetry_cli-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / telemetry_cli-1.1.0.tar.gz

Download URL telemetry_cli-1.1.0.tar.gz
Size 979.7 kB
Tags Source
SHA-256 checksum
How to use checksums
36bfdfbf1323905062c5983e41e6997af3e95f7f5608515a72ffd4f1c5331359
BLAKE2b-256 checksum
How to use checksums
8d5b451a0a7ec8546eb1e0db11a3b345182b36c220ab3be573b4ec486e8d9613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / telemetry_cli-1.1.0-py3-none-any.whl

Download URL telemetry_cli-1.1.0-py3-none-any.whl
Size 75.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
31a3198863c8d567841d58e38faab1999a23883dd384ea312681d2f15be6392f
BLAKE2b-256 checksum
How to use checksums
578ef2a4b5d836694e9e47f31fa4828056535e63acca05d654384b9c4302fe6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page