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.