skt — toolchain manager

A standalone, rootless toolchain/version manager. Given <tool>@<version> and a target platform it resolves the version, downloads the artifact, verifies its sha256, extracts it into a content cache, and reports the resulting binary path as machine-readable JSON. It is the version manager that replaces the mise fallback in sklp.

How it works

Host → versioned cache → binary path. The cache root defaults to $XDG_CACHE_HOME/skt (else ~/.cache/skt); override it with --cache-dir.

  1. Step 1
    Resolve

    Map <tool>@<version> to a concrete release for the host OS/arch.

  2. Step 2
    Download

    Fetch the artifact from the recipe's download URL.

  3. Step 3
    Verify

    Stream a sha256 and compare it constant-time to the published checksum.

  4. Step 4
    Cache

    Extract into $XDG_CACHE_HOME/skt and mark the binary; warm hits skip the network.

Commands

The two primary verbs resolve and install a tool. Both accept --json for machine-readable output.

skt resolve go@1.25.5 --json
skt install go@1.25.5 --json

Recipes

CLIs are described by declarative TOML recipes (15 bundled). Each declares per-platform artifacts and an install block.

ToolTypePlatformsChecksum
airclidarwin, linuxcombined
bunclidarwin, linuxcombined
diveclidarwin, linuxcombined
gduclidarwin, linuxcombined
gitleaksclidarwin, linuxcombined
golangci-lintclidarwin, linuxcombined
helmclidarwin, linuxsingle
jqclidarwin, linuxcombined
justclidarwin, linuxcombined
kubectlclidarwin, linuxsingle
nucleiclidarwin, linuxcombined
opentofuclidarwin, linuxcombined
taskclidarwin, linuxcombined
trivyclidarwin, linuxcombined
wasm-bindgenclidarwin, linuxsingle