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).
$ 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 and tgen. 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.0.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.0.0
File Size Uploaded
telemetry_cli-1.0.0.tar.gz 960.0 kB Details

Built distribution (wheel)

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

Total release size: 1.0 MB

Release files / telemetry_cli-1.0.0.tar.gz

Download URL telemetry_cli-1.0.0.tar.gz
Size 960.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b736bc927927892698e28ec94b5a37009d7f1bcb6442223a691e5c71e06dfcf4
BLAKE2b-256 checksum
How to use checksums
3e802ed791a6f0a149aa8ca9fbc32ff22fcb061e1d34b2d773d3ef5c6ebf1b16
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.0.0-py3-none-any.whl

Download URL telemetry_cli-1.0.0-py3-none-any.whl
Size 62.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f91c859ddef4402a9700feae2507d866657203d67ee29d74aea141f13333cd7a
BLAKE2b-256 checksum
How to use checksums
e91f18b09d2e940c6f379d267b804794740591ccb68c7c520f20e926df4d658e
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

1.1.0

2 release files

This release

1.0.0 This release

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