Skip to content
tinylabscomPublic

About

Signed pack registry for mvmctl, with verifiable manifests and a browsable catalog.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

mvm-packs

The signed pack registry for mvmctl. This repository was formerly named mvm-templates; templates are no longer its supported interface.

Pack catalog

index.json is the main list of published packs. It is the only catalog. Schema v2 lists each version together with the manifest_sha256 of its exact published manifest.json bytes. It is generated from published manifests, not unpublished source metadata, and validation requires every entry and digest to match. Do not edit it by hand.

Browse the generated pack registry pages for a human-readable index and individual pack details. The generator reads index.json, the pinned published manifests, pack policy files and revocations.toml; the Markdown is rendered as a static site and deployed from main by the Pages workflow. To submit a new pack (it must embed its application binary), follow the publishing guide.

Status of the Claude pack

Every pack must embed its application binary in a signed .mvmpkg; a policy alone cannot be signed. The policy-only agent/claude@1.0.1 is revoked, so mvmctl pull agent/claude@1.0.1 is refused. The runnable Claude pack is agent/claude@2.0.1: an aarch64 application archive built on the mvm v0.27.0-rc.4 runtime, bundle-signed by a dedicated author key and signed into the registry by this repository's publish workflow. agent/claude@2.0.0 is also published, but the image-set revocation list embedded in its archive expires 2026-11-08T14:35Z, after which it cannot launch, so use 2.0.1. Pulling a GitHub release asset needs an mvmctl that follows redirects (the final v0.27.0, or a build from main); the rc.4 client cannot. Running it needs the owner's provider-bound host secret and --allow-host api.anthropic.com:443. The environment is described in CLAUDE-ENVIRONMENT.md.

Other published packs remain in the catalog as legacy policy-only versions; publication alone is not a claim that they are supported.

Signatures and trust

Catalogs are discovery metadata, not proof of authenticity. Each published pack has a signed manifest.json and an adjacent manifest.sigstore.json:

The manifest binds the pack reference, description, and payload SHA-256 digests and sizes. Clients must verify its signature against the publisher trust policy before trusting those bytes. See README.packs.md for publisher identities, historical-signature handling, and revocation requirements.

Layout

index.json                         # sole pack catalog, schema v2 (generated)
pack-sources/<namespace>/<name>/    # editable pack.toml and pack/ payload
packs/<namespace>/<name>/<version>/
  manifest.json                    # signed metadata and payload digests
  manifest.sigstore.json           # detached Sigstore bundle
  files/                           # manifest-declared payload

Publishing and validation

Edit a source under pack-sources/ and bump its version when content changes. The publisher builds and keyless-signs bundles, regenerates the root catalog, verifies the registry, and commits the published output. Published versions are immutable; never hand-edit their manifests, signatures, or payloads.

Run the repository checks:

python3 -m unittest discover -s tests
python3 scripts/build-packs.py --check-sources
python3 scripts/build-pack-pages.py --check
python3 scripts/validate-packs.py

With just installed, plain just lists the available recipes; just check runs these checks. Use just pages to regenerate docs/registry/, or just pages-check to check them without writing. To preview the Starlight site locally, use Node.js 22.23.4 or newer (.node-version). If mise is installed, the recipes select that version automatically:

just pages-install
just pages-dev

Open http://127.0.0.1:8000/mvm-packs/. The preview rebuilds when the catalog, revocations or published pack files change; Ctrl+C stops the server.

To additionally verify publisher signatures (requires cosign):

python3 scripts/validate-packs.py --verify-signatures

Full publishing and revocation validation is documented in README.packs.md.

About

Signed pack registry for mvmctl, with verifiable manifests and a browsable catalog.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages