Get CableProbe · v0.1.2

Download & install

Releases live on GitHub and PyPI — this site hosts no binaries. CableProbe requires Python 3.11+ and is developed and tested on Raspberry Pi OS / Debian. On non-Linux hosts it still installs, and the --help, check and report commands work, but the live probes are unavailable.

1. pip / pipx (any Debian / Ubuntu / RPi OS host)

Isolated and recommended. The Python dependencies — including pyudev (LGPL-2.1, Linux-only) — are pulled from PyPI as normal, unmodified, replaceable packages.

pipx install cableprobe

# CableProbe also shells out to these standard Linux tools:
sudo apt install usbutils util-linux    # journalctl / dmesg ship with the base OS

Then confirm the host is ready:

cableprobe check

2. scripts/install.sh (one command on a Pi)

Creates /opt/cableprobe/venv, installs the package there, links /usr/local/bin/cableprobe, and apt-get installs the helper CLI tools. It does not modify system Python packages.

git clone https://github.com/rosscooney/CableProbe && cd CableProbe
sudo ./scripts/install.sh

# remove later with:
sudo scripts/uninstall.sh

3. Disposable Raspberry Pi image (build your own)

CableProbe ships the recipe, not a prebuilt image. Use the pi-gen custom stage in packaging/pi-gen/: Raspberry Pi's official image builder fetches stock Raspberry Pi OS and adds CableProbe on top via pip. The output is a headless image you flash, use once against a suspect cable, and re-flash.

Because you build the image on your own machine from stock Raspberry Pi OS, the GPL/LGPL parts of the OS come straight from Raspberry Pi Ltd and Debian — this project is not in that supply chain. If you then hand a built .img to third parties, see the licensing notes in packaging/pi-gen/README.md.

4. From a checkout (development)

git clone https://github.com/rosscooney/CableProbe && cd CableProbe
python3 -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
pytest

Upgrading

Upgrade the way you installed.

To the latest published release

pipx upgrade cableprobe          # pulls a newer version from PyPI, if there is one
pipx install --force cableprobe==0.1.2   # pin or roll back to a specific release

pipx upgrade cableprobe only fetches a newer version number from PyPI. If it says cableprobe is already at latest version, you are on the latest release — there is nothing newer to install. A new release has to be published to PyPI first (see the releases page).

To the latest development code from GitHub

To run main ahead of the last release, install straight from the repository. Re-run this whenever main moves — --force reinstalls even when the version number hasn't changed.

pipx install --force "git+https://github.com/rosscooney/CableProbe"

# a specific branch, tag or commit:
pipx install --force "cableprobe @ git+https://github.com/rosscooney/CableProbe@main"

Other install methods

# scripts/install.sh — pull the checkout and re-run; it reinstalls in place
git -C cableprobe pull && sudo ./cableprobe/scripts/install.sh

# development checkout
git pull && pip install -e ".[dev]"

Release notes on GitHub call out any change to probes or report fields; older .cableprobe.json reports still open with cableprobe report.

Verify your install

cableprobe --version
cableprobe check
cableprobe probes      # list available probes
cableprobe rules       # show the built-in detection rules

Before you run it against a real cable

Run CableProbe on a dedicated, disposable Raspberry Pi that holds no sensitive data and is isolated from networks you care about. Treat any cable under test as hostile hardware. Running with sudo is recommended — the kernel-log and udev-attribute probes see more detail with privileges.