Using packslip with mise
mise uses packslip manifests to select and verify release artifacts, install their executables, and provide completions and agent skills for the tool version active in your project.
Install from a vendor manifest
With mise installed and activated, run:
mise use -g packslip:github.com/jdx/packslip
Omit -g to manage the tool in the current project instead. The backend
reads the manifest to select the artifact and executable paths. It
verifies the release against the repository identity and checks the
selected file’s digest and size before unpacking it.
The project name can include a monorepo tool subpath. A vendor on its own domain instead supplies a signed release list, and users configure a trusted key or identity. See the mise packslip backend documentation for tool options.
Keep completions aligned with the active version
For an installed tool named mytool that declares a completion resource:
mise completion zsh --tool mytool
mise completion zsh --tool mytool --install
The first command prints a completion script. The second installs a shell stub that asks mise for the appropriate script. In zsh and bash, completions follow directory-based version changes on the next completion; fish and PowerShell load once per shell session.
Publishers should identify the executable on resources in multi-command
releases and scope archive resources precisely. Generated completion
caches are separate for each version, command, and shell. Static files
or usage specs can avoid running the vendor’s executable to generate the
script; usage-derived completions still need usage at shell runtime.
When a completion resource uses exec, mise runs the command on demand
when the shell first requests completion and caches successful output.
The packslip.exec setting governs resources generated at install time,
such as agent skills; it is not needed for on-demand completions.
Give agents the matching skill
A vendor can declare a skill directory in an artifact, in a separate signed asset, or at the release’s source commit. List the skills for the tool versions active in your project, then link them into your agent’s skills directory:
mise skills ls
mise skills sync --dir .agents/skills
Sync links the installed skills into the chosen directory. Running it
after a version change updates mise-owned links. It leaves user-created
directories and unrelated links alone. A skill generated by running the
tool during installation requires the packslip.exec setting; fetched
skills do not require executing the tool.
Preserve trust across upgrades and machines
mise preserves trust in two places:
- Local pins remember previously accepted signers, trust properties, and release-list sequences.
mise.lockcarries the project’s signer commitment alongside artifact URLs and digests, allowing another machine to enforce it immediately.
mise rejects a supplementary signed list that disappears after acceptance and checks release age against the verified log timestamp. These checks help prevent an upgrade from silently weakening the trust established by previous installs.
Require review by a third party
Configure trusted stamping hosts to admit only versions listed by a reviewer you trust. A stamp constrains which releases can be installed; the vendor signature still authenticates the release. See release lists for how stamping works.