The Skillset CLI is designed for unattended use in CI pipelines and automation scripts. This page covers the two mechanisms that make non-interactive operation reliable: environment variables that replace the login step, and theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/org-quicko/skillset/llms.txt
Use this file to discover all available pages before exploring further.
--json flag that makes every command’s output machine-parseable and prompt-free.
Skip login with environment variables
In CI, skip the skillset login step entirely. Set two environment variables and the CLI picks them up on every command, always overriding the stored config file:
SKILLSET_REGISTRY and SKILLSET_TOKEN take precedence over whatever skillset login stored on disk. You can mix them: setting only SKILLSET_REGISTRY points the CLI at that Registry while leaving Token resolution to the stored config (or omitting auth entirely for read-only commands).
Catalog reads —
search, info, list, update — do not require a Token. You only need SKILLSET_TOKEN for write operations (publish) and for submitting URL-installed Skills.Machine-readable output with --json
Every command accepts --json. In this mode:
- The command’s result is written to stdout as a JSON object or array.
- Any failure is written to stderr as
{ "error": { "code": "…", "message": "…" } }— never mixed into stdout, so a caller parsing stdout always gets a well-formed payload. - Exit code is
0on success, non-zero on any failure. - No prompts are shown, regardless of whether a terminal is attached.
--json never prompts, some flags that are optional interactively become required:
| Command | Required under --json |
|---|---|
login | --token |
install | --scope |
publish (batch) | --yes |
Parsing JSON output with jq
Exit codes
| Exit code | Meaning |
|---|---|
0 | Command completed successfully |
1 | At least one error occurred |
publish, update) the exit code is 1 if any single Skill in the batch failed, even when others succeeded. Inspect the per-Skill status fields in the JSON output to identify which ones need attention.
GitHub Actions example
The following workflow publishes all Skills under./skills on every push to main:
SKILLSET_REGISTRY and SKILLSET_TOKEN as encrypted secrets in your repository settings.
More CI examples
Error format
All failures under--json produce a JSON object on stderr:
code is the Registry’s own error code when the failure originated there (e.g. not_found, already_published, unauthorized), and cli_error for failures that never reached the Registry. Branching on code rather than message makes scripts resilient to wording changes.
Batch publish outcomes
When publishing a directory that contains multiple Skills,publish --json returns an array. Each element has a status of "published" or "failed":
1 if any element has "status": "failed". A partial success is a failure from the pipeline’s perspective — check and fix the failing Skills before relying on the batch as a whole.