Installation
Every install channel, and how the standalone installer verifies what it downloads.
Every distribution channel runs the same Python core. Pick the one that fits how you already manage tools.
| Channel | Command | Needs |
|---|---|---|
| Run once | uvx skillporter diagnose . |
uv |
| Run once | npx @shanmukhdheekonda/skillporter diagnose . |
Node 16+, Python 3.9+ |
| Install | uv tool install skillporter |
uv |
| Install | pipx install skillporter |
pipx |
| Install | Standalone release installer | sh, python3, curl or wget |
Python 3.9 or newer is required in every case. The package has no runtime dependencies.
Every install channel, including the checks that verify the standalone download, is on the install page.
Run without installing
uvx skillporter diagnose .
npx @shanmukhdheekonda/skillporter diagnose .
The npm package is a thin launcher around the same Python zipapp. It still needs python3 on PATH.
Install from PyPI
uv tool install skillporter
pipx install skillporter
Both install into an isolated environment, which keeps you clear of the externally managed environment errors that system pip raises on current Linux distributions.
Confirm the version:
skillporter --version
Standalone release installer
The installer is for Linux and macOS. On Windows, use uv, pipx or npx.
Download the installer from the immutable release tag, then run it:
curl -fsSL https://github.com/Shanmukh-l33t/skillporter/releases/download/v3.0.1/install.sh -o install.sh
SKILLPORTER_VERSION=v3.0.1 sh install.sh
The installer is deliberately not a curl | sh one-liner. Downloading it to a file lets you read it before it runs.
What the installer verifies
- Immutable tag.
SKILLPORTER_VERSIONmust look likev3.0.1. Branch names such asmainand aliases such aslatestare rejected. - Checksum. The downloaded
skillporter.pyzmust matchSHA256SUMS.txtfrom the same release. - Authenticity. A checksum fetched from the same place as the file only detects corruption. It does not prove who published it. The installer therefore refuses to continue until one independent check passes.
- Archive structure. The download must be a valid Python zipapp. The payload is not executed during this check.
- Atomic placement. The file is staged inside the destination directory and moved into place with one rename, so a failed upgrade leaves the existing binary untouched.
Authenticity options
Choose one. Without any of them the installer exits with an error and writes nothing.
GitHub artifact attestation (default). If the GitHub CLI is installed and authenticated, the installer runs gh attestation verify against the release workflow.
gh auth status
SKILLPORTER_VERSION=v3.0.1 sh install.sh
Prerequisite: gh on PATH and signed in.
Pinned SHA-256. Supply the expected digest yourself. This is the right choice for Dockerfiles and CI, where the digest lives in your own repository.
SKILLPORTER_VERSION=v3.0.1 \
SKILLPORTER_SHA256=8bd7125b8f2a1a4f7c475406c71eaaec317bc4d7a0dd5d19e857301ef127179c \
sh install.sh
The digest above is skillporter.pyz from the v3.0.1 release. You can confirm it independently:
gh attestation verify skillporter.pyz --repo Shanmukh-l33t/skillporter
Detached signature. The installer can verify SHA256SUMS.txt.sig with an OpenSSL public key:
SKILLPORTER_VERSION=v3.0.1 SKILLPORTER_PUBLIC_KEY_FILE=/path/to/pub.pem sh install.sh
This path is for mirrors and internal builds that sign their own checksum file with scripts/build_standalone.py --sign-key. The official v3.0.1 GitHub release does not publish a signature file, so use attestation or a pinned digest for it.
Installer environment variables
| Variable | Purpose |
|---|---|
SKILLPORTER_VERSION |
Release tag to install. Must be an immutable tag. |
SKILLPORTER_INSTALL_DIR |
Destination directory. Defaults to /usr/local/bin when writable, otherwise ~/.local/bin. |
SKILLPORTER_SHA256 |
Expected SHA-256 of skillporter.pyz. |
SKILLPORTER_PUBLIC_KEY_FILE |
PEM public key used to verify SHA256SUMS.txt.sig. |
SKILLPORTER_RELEASE_BASE_URL |
Alternative release host, for mirrors. |
SKILLPORTER_ALLOW_UNATTESTED_CHECKSUM |
Set to 1 to accept the same-origin checksum alone. This trusts the download host on first use and is not recommended. |
Run the zipapp directly
Each release also ships skillporter.pyz, a single-file Python zipapp:
python3 skillporter.pyz --version
Build from source
git clone https://github.com/Shanmukh-l33t/skillporter
cd skillporter
python3 scripts/build_standalone.py
./dist/skillporter.pyz --version
Upgrade and remove
uv tool upgrade skillporter
pipx upgrade skillporter
uv tool uninstall skillporter
pipx uninstall skillporter
For the standalone installer, run it again with a newer SKILLPORTER_VERSION to upgrade, or delete the skillporter file from the install directory to remove it.
Next
Getting started walks through the first commands. MCP integration covers running Skillporter as a tool server inside a harness. Questions about channels, platforms and upgrades are answered in the FAQ.