Install
Install the publisher when you want to inspect the catalog, dry-run a publish, or run the publishing workflow on a configured runner. The CLI exists to make vindex publication repeatable before Skulk relies on those vindexes for GPU/CPU runtime placement.
Dependencies are managed with uv. Commands run
through uv run, which resolves the environment on demand.
Local Development Install
uv sync --extra dev
This installs the CLI plus development tools used by CI: tests, linting, and
type checking. Add --extra mtp for MTP sidecar extraction (numpy and
safetensors — pure-numpy and cross-platform, no mlx). Add --extra ui for
the local GUI (it already includes the mtp deps). Vision sidecars and vindex
publishing need no extra — huggingface_hub is a base dependency.
Runner Install
uv sync
Use the bare sync on a self-hosted publishing runner that only needs the product
CLI. A Linux runner can publish vindexes; real MTP and vision publishing also
needs --extra mtp. MTP extraction is pure-numpy and cross-platform, so the same
Linux runner can perform it — no macOS Apple Silicon host is required (see
Runner Setup).
Check The Install
uv run skulk-weights doctor
uv run skulk-weights catalog validate
Then run one dry-run:
uv run skulk-weights publish --model foxlight/gemma-3-4b-full-q4-k --dry-run
To add your own operator catalog, initialize a config after install:
uv run skulk-weights catalog init
Compatibility Wrappers
The repository keeps a few wrapper scripts under scripts/ for automation that
has not moved to the package CLI yet:
scripts/doctor.sh
scripts/manifest.py validate
scripts/publish-vindex.sh --model foxlight/gemma-3-4b-full-q4-k --dry-run
scripts/publish-weights.sh --model foxlight/gemma-3-4b-full-q4-k --dry-run
New documentation and new automation should use skulk-weights.