publish
Upload a skill directory to the registry. Requires authentication unless the server is running in dev mode.
Synopsis
Section titled “Synopsis”skillsctl publish --name NAME --version VERSION --description DESC --dir PATH \ [--tag TAG ...] [--changelog TEXT]Required
Section titled “Required”| Flag | Description |
|---|---|
--name NAME | Skill name. Must be unique in the registry. Use lowercase letters, numbers, and hyphens. |
--version VERSION | Semantic version string, e.g. 1.0.0. |
--description DESC | Short description of what the skill does. |
--dir PATH | Path to the skill directory to upload. Must contain SKILL.md at its root. The directory is packaged into a deterministic tar.gz before upload. |
Optional
Section titled “Optional”| Flag | Description |
|---|---|
--tag TAG | Tag to apply to the skill. Can be repeated to add multiple tags. |
--changelog TEXT | Release notes for this version. |
Examples
Section titled “Examples”Publish a new skill:
skillsctl publish \ --name git-conventional \ --version 1.0.0 \ --description "Enforce conventional commit messages" \ --dir ./git-conventionalPublished git-conventional@1.0.0Publish with tags and a changelog:
skillsctl publish \ --name git-conventional \ --version 1.1.0 \ --description "Enforce conventional commit messages" \ --dir ./git-conventional \ --tag git \ --tag commits \ --changelog "Add breaking change detection"Published git-conventional@1.1.0Version immutability
Section titled “Version immutability”Once a version is published, it cannot be overwritten. Publishing git-conventional@1.0.0 a second time returns an error. Increment the version number to publish an update.
Authentication
Section titled “Authentication”On servers with OIDC configured, you must be logged in before publishing. Run skillsctl auth login first. Ownership of a skill is tied to your OIDC subject (not your email), so the same account must be used for all versions of a skill.
Common errors
Section titled “Common errors”Error: version “X” already exists for skill “NAME” That version has already been published. Choose a new version number.
Error: missing SKILL.md at root of directory
The directory passed to --dir must contain a SKILL.md file at its top level.
Error: packed size exceeds limit
The tar.gz exceeds the server’s MaxPackedBytes limit (default 5 MB). Remove large files or split the skill into multiple skills.
Error: file too large
An individual file in the directory exceeds the server’s MaxFileBytes limit (default 1 MB).
Error: unauthenticated
The server requires a valid token. Run skillsctl auth login and try again.
Error: permission denied: skill owned by another user A different account published earlier versions of this skill. You cannot publish new versions for a skill you do not own.