kitops-ml/kitops/skill

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Package, version, share, and unpack AI/ML models as OCI-standard ModelKits with the KitOps `kit` CLI. Use this skill when authoring a Kitfile or running kit init, pack, tag, login, push, pull, or unpack.

Install

npx vskill@latest install kitops-ml/kitops/skill

SKILL.md

Using the KitOps kit CLI

KitOps packages models, datasets, code, docs, prompts, and MCP servers together as a ModelKit — an OCI artifact you can store in any OCI registry. A ModelKit is defined by a Kitfile (a YAML manifest) and built with kit pack.

This skill documents the real behavior of the kit CLI. It was generated from and ships with a specific kit version, so it always matches the installed binary. Confirm anything not covered here with kit <command> --help.

Core workflow

kit init <dir> # generate a Kitfile for a directory (optional starting point)
kit pack <dir> # build a ModelKit into local storage
kit tag SRC DST # add another reference to a local ModelKit
kit login <reg> # authenticate to a remote registry
kit push SRC # upload a ModelKit to a registry
kit pull REF # download a ModelKit into local storage
kit unpack REF # extract a ModelKit's contents onto disk

Authoring a Kitfile

The Kitfile is a YAML manifest, by default named Kitfile at the root of the context directory. All path values are relative to the context directory; absolute paths are rejected. Only local filesystem paths are allowed for code, datasets, docs, prompts, and mcpServers paths; model.path also accepts a ModelKit reference. No two layers may declare the same path.

Sections:

  • manifestVersion (string): use 1.0.0. Other values produce a warning and

are treated as 1.0.0.

  • package: name, version, description, authors (list of strings).
  • model (object): name, path, framework, format, version,

description, license (SPDX id), parts (list of name/path/type, e.g. LoRA weights), and parameters (arbitrary JSON-compatible YAML).

  • code (list): each has path, description, license.
  • datasets (list): each has name, path, description, license. A dataset

may instead reference a remote source via remotePath (an s3:// URL, which also requires remoteHash, or a ModelKit reference).

  • docs (list): each has path, description.
  • prompts (list): each has path, description. A prompt directory that

contains a SKILL.md can be installed as an agent skill (see unpack).

  • mcpServers (list): each has name (required, unique) and path pointing to

a single .mcpb bundle file, plus description.

Example:

yaml
manifestVersion: 1.0.0
package:
name: mymodel
version: 1.0.0
description: Sentiment classifier
authors: [Jane Doe]
code:
- path: src/
description: Training and inference code
license: Apache-2.0
datasets:
- name: training-set
path: data/train.csv
description: Labeled training data
license: CC-BY-4.0
model:
name: sentiment-model
path: models/model.safetensors
framework: PyTorch
version: 1.0.0
license: Apache-2.0

Tip: kit init <dir> inspects a directory and generates a starting Kitfile. Useful flags: --name, --desc, --author, --force (overwrite an existing Kitfile), and --output (- writes to stdout). kit init <repo> --remote generates a Kitfile from a remote Hugging Face repository (with --ref).

pack — build a ModelKit

kit pack [flags] DIRECTORY

Builds a ModelKit from the Kitfile using DIRECTORY as the context, and stores it in local storage. Relative paths in the Kitfile are resolved against DIRECTORY.

  • -f, --file — path to the Kitfile (default: Kitfile in the context dir; use

- to read from stdin).

  • -t, --tag — assign one or more tags, comma-separated:

-t registry/repository:tag1,tag2.

  • --compression — none (default), gzip, gzip-fastest, or zstd.
  • --layer-format — tar (default) or raw.
kit pack .
kit pack . -f ./Kitfile -t myregistry.com/myorg/mymodel:1.0.0

tag — add a reference

kit tag SOURCE_MODELKIT[:TAG] TARGET_MODELKIT[:TAG]

Adds a new reference to an existing local ModelKit. Both the source and target must include a tag or digest.

A full reference is [HOST[:PORT]/][NAMESPACE/]REPOSITORY[:TAG]. HOST defaults to localhost when omitted. A TAG may use letters, digits, _, ., -, must not start with . or -, and is at most 128 characters.

kit tag myregistry.com/myorg/mymodel:latest myregistry.com/myorg/mymodel:v1.0.0

login — authenticate

kit login [flags] [REGISTRY]

Authenticate before pushing or pulling from a private registry.

  • -u, --username, -p, --password, --password-stdin.
kit login myregistry.com -u myuser --password-stdin

push — upload to a registry

kit push [flags] SOURCE [DESTINATION]

Uploads a local ModelKit to a remote registry. Without a DESTINATION, the ModelKit must already be tagged with a full registry reference (a registry host is required — you cannot push to localhost). With a DESTINATION, a locally tagged ModelKit is pushed to that reference.

kit push myregistry.com/myorg/mymodel:1.0.0
kit push mymodel:1.0.0 myregistry.com/myorg/mymodel:latest

pull — download from a registry

kit pull [flags] registry/repository[:tag|@digest]

Downloads a ModelKit into local storage. A registry host is required (you cannot pull from localhost).

kit pull myregistry.com/myorg/mymodel:1.0.0

unpack — extract contents to disk

kit unpack [flags] [registry/]repository[:tag|@digest]

Extracts a ModelKit's contents to the filesystem. Looks in local storage first, then the remote registry.

  • -d, --dir — target directory (created if missing; default: current dir).
  • -f, --filter — limit what is extracted, format [types]:[filters], where

types is a comma-separated subset of kitfile,model,datasets,code,docs,prompts,mcpservers. Repeatable; a layer is unpacked if it matches any filter. Example: --filter=model or --filter=datasets:my-dataset.

  • -o, --overwrite — overwrite existing files.
  • -i, --ignore-existing — skip files that already exist.
  • --as-skill[=agent,...] — install SKILL.md prompt layers as agent skills

instead of unpacking to their original paths. With no value, kit auto-detects installed agents; otherwise pass a comma-separated list (e.g. --as-skill=claude-code,cursor). Installs globally unless -d is given.

kit unpack myregistry.com/myorg/mymodel:1.0.0 -d ./unpacked
kit unpack myregistry.com/myorg/mymodel:1.0.0 --filter=model -o

Other useful commands

  • kit list — list ModelKits in local storage (or a remote repository).
  • kit inspect REF — print a ModelKit's manifest and config.
  • kit info REF — show a ModelKit's Kitfile.
  • kit remove REF — delete a ModelKit from local storage.
  • kit version — print the installed kit version.

Common errors and how to resolve them

  • "registry is required when pushing" / "...when pulling" — the reference has

no registry host (it resolves to localhost). Use a full reference like myregistry.com/myorg/mymodel:tag, and kit tag the local ModelKit first if needed.

  • "No tag specified ... Using 'latest' as default" — informational; kit

defaulted the reference to :latest. Specify a tag explicitly to avoid it.

  • "reference cannot include multiple tags" — push/pull/unpack accept a single

reference. Split multiple tags into separate commands (or use kit tag).

  • "source/target ModelKit reference requires a tag or digest" — kit tag

needs a :tag (or @digest) on both arguments.

  • Kitfile validation errors (surface on pack/init) include:
  • "absolute paths are not supported in a Kitfile" — make every path relative

to the context directory.

  • "only local paths are permitted" — code/datasets/docs/prompts paths

must be local files or directories, not URLs.

  • "... use the same path ..." — two layers point at the same path; each layer

needs a distinct path.

  • "invalid path for mcpServer ...: path must point to a single .mcpb file" — an

mcpServers entry must reference one .mcpb bundle.

  • "Unrecognized manifestVersion" — set manifestVersion: 1.0.0.
  • "Failed to pack model kit" — a path in the Kitfile is missing or the Kitfile

itself was not found; verify -f/the context directory and that every path exists.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
1,411
Repository forks
184
7-day trend score
36

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/kitops-ml/kitops/skill/badge)](https://verified-skill.com/skills/kitops-ml/kitops/skill)

Something wrong with this skill or its page? Tell us.