The released xprobe package supports Linux x86_64 with glibc 2.34 or newer. It contains the CLI and separate CUDA 12 and CUDA 13 CUPTI Agents. A CUDA toolkit is not required to install xprobe; NVIDIA driver and CUPTI availability matter only when measuring GPU events.
For agent use, install the version-matched Skill and let the agent bootstrap or repair the CLI under a writable prefix. This is the only installation command a user needs to run:
npx skills@1 add \
https://github.com/itdevwu/xprobe/tree/v0.4.0/skills/xprobe-measure-latency \
--globalThe Skill verifies xprobe --version, installs the matching release when needed,
then runs doctor before it profiles. It has the live context needed to adjust
PATH, prefix, permission, NVIDIA, CUDA, and CUPTI issues. Node.js is required
only for Skill installation.
The versioned bootstrap installs to ~/.local without root access:
curl --proto '=https' --tlsv1.2 -fsSL \
https://raw.githubusercontent.com/itdevwu/xprobe/v0.4.0/install.sh | shThe bootstrap downloads the release archive and its SHA256 file, verifies the archive, and then installs this layout:
~/.local/bin/xprobe
~/.local/lib/xprobe/cuda12/libxprobe-cupti.so
~/.local/lib/xprobe/cuda13/libxprobe-cupti.so
~/.local/include/xprobe/cupti_agent.h
~/.local/share/xprobe/
Add ~/.local/bin to PATH when it is not already present. To use another
prefix, download the script and pass --prefix:
curl --proto '=https' --tlsv1.2 -fsSLO \
https://raw.githubusercontent.com/itdevwu/xprobe/v0.4.0/install.sh
sh install.sh --prefix /opt/xprobeWriting a system prefix such as /usr/local may require running the downloaded
script with sudo. The installer never elevates privileges itself.
For a fully explicit archive workflow:
version=0.4.0
base=https://github.com/itdevwu/xprobe/releases/download/v$version
archive=xprobe-$version-linux-x86_64.tar.gz
curl --proto '=https' --tlsv1.2 -fLO "$base/$archive"
curl --proto '=https' --tlsv1.2 -fLO "$base/$archive.sha256"
sha256sum --check "$archive.sha256"
tar -xzf "$archive"
"./xprobe-$version-linux-x86_64/install.sh"The unpacked package can also be run in place as long as its bin and lib
layout remains together.
Run the newer version's installer with the same prefix to replace the installed files. Remove an installation with the matching script:
sh install.sh --prefix "$HOME/.local" --uninstallThe uninstall operation removes only xprobe-owned files below bin/xprobe,
lib/xprobe, include/xprobe, and share/xprobe.
The xprobe CLI works independently of an AI agent. When a Skill installation is missing or damaged, manually install the complete version-matched directory:
npx skills@1 add \
https://github.com/itdevwu/xprobe/tree/v0.4.0/skills/xprobe-measure-latency \
--globalThe command interactively selects among detected agents. A non-interactive installation names the target explicitly:
npx --yes skills@1 add \
https://github.com/itdevwu/xprobe/tree/v0.4.0/skills/xprobe-measure-latency \
--agent codex --global --copy --yesUse claude-code or cursor for those clients. Omit --global to install into
the current project. Review the Skill before use because Agent Skills can direct
an agent to execute commands with its granted permissions.
Without Node.js, copy the complete skills/xprobe-measure-latency directory
from the release archive into the Skill directory documented by the target
agent. Do not copy only SKILL.md; its references, examples, and trace-analysis
script are part of the contract.
After installing the CLI, run:
xprobe --version
xprobe doctor --json --non-interactive --no-colorHost selectors require eBPF/perf permissions. Online CUDA Agent injection
requires ptrace permission and a shared mount namespace with the target. Read
the individual doctor checks rather than treating diagnostic completion as a
claim that every collector is available.