sptool

Install the sptool process supervisor — no Docker required.

One command pulls the prebuilt binary straight out of a public container image and drops it on the machine. This one URL detects how it was fetched: curl → install.sh PowerShell → install.ps1 browser → this page

Install

Linuxcurl -fsSL https://sptool.bat.nz | sh
Windows (PowerShell)irm https://sptool.bat.nz | iex

One binary is all there is: sptool is both the CLI and, via a hidden subcommand, the supervisor it starts for you.

Where it installs

OSLocationNotes
Linux /usr/local/bin System-wide and already on PATH. Needs root — the script uses sudo if you aren't root.
Windows %LOCALAPPDATA%\Microsoft\WindowsApps Per-user, no admin. This folder is already on PATH, so sptool runs by name in any shell.
= C:\Users\<you>\AppData\Local\Microsoft\WindowsApps

Both amd64 and arm64 are published for each OS; the scripts pick the right one. There is no macOS build — the process machinery is Windows Job Objects and Linux PDEATHSIG, with no darwin equivalent implemented.

Options

Set these as environment variables before running the one-liner.

VariableDefaultMeaning
SPTOOL_VERSIONlatestrelease to install, e.g. 0.0.2
SPTOOL_BINDIRsee Where it installsinstall directory

Examples

Linux# pin a version curl -fsSL https://sptool.bat.nz | SPTOOL_VERSION=0.0.2 sh # install somewhere you own, no sudo curl -fsSL https://sptool.bat.nz | SPTOOL_BINDIR=$HOME/.local/bin sh
Windows (PowerShell)# pin a version $env:SPTOOL_VERSION='0.0.2'; irm https://sptool.bat.nz | iex # install elsewhere $env:SPTOOL_BINDIR='C:\tools'; irm https://sptool.bat.nz | iex

Updating

After the first install the tool updates itself — no script, same source:

Any OSsptool shutdown # stops every probe under the supervisor sptool update

update refuses to run while a supervisor is up. That supervisor is the old build and the new CLI would not talk to it anyway, so retiring it is deliberate rather than a surprise — shutdown takes the probes down with it. --version 0.0.2 installs an exact release; --force reinstalls the current one.

First run

Profiles live in one YAML file — ~/.config/sptool/config.yaml, or %APPDATA%\sptool\config.yaml on Windows. Then:

Any OSsptool run -v interval=30 netprobe # flags precede the profile name sptool list sptool logs --tail 50 netprobe sptool stop netprobe

Force a specific script

Append the filename to skip detection: sptool.bat.nz/install.sh · sptool.bat.nz/install.ps1

Behind the scenes

Cut a new release maintainer

SupervisorTool repogit tag v0.0.3 && git push --tags

CI gates on a Linux + Windows test matrix, then publishes the GitHub release and pushes the GHCR image. A brand-new package is created private — make supervisor-tool-dist public once in GitHub → your profile → Packages → settings, or anonymous pulls return 403.

Copy install.sh / install.ps1 here from the repo's install/ folder whenever they change — this service serves copies, not the originals.