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)
| File | Size | Uploaded | |
|---|---|---|---|
| telemetry_cli-1.1.0.tar.gz | 979.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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