CLI reference
Every command, option and exit code in the skillporter CLI.
skillporter <command> [options]
Every command accepts --help, -q / --quiet, -v / --verbose, and --no-color. Most commands accept --json (or --format json) for machine-readable output.
Exit codes
| Code | Meaning |
|---|---|
0 |
Clean, or the operation succeeded. |
1 |
A policy or diagnostic finding: drift, broken symlink, spec error, security block, lockfile mismatch, dependency cycle or conflict. |
2 |
Usage or runtime error: invalid argument, unknown harness, missing path. |
The split between 1 and 2 lets CI distinguish "the check failed" from "the check could not run".
Installing and removing
skillporter add <source>
Resolve a source, validate it, run the static security assessment and install the selected skills.
skillporter add anthropics/skills --skill pdf --harness all
| Option | Description |
|---|---|
--harness <id> |
Target harness, or all, compatible, or detected. Repeat the flag for several harnesses. |
--exclude-harness <id> |
Exclude specific harnesses from target selection. Repeatable or comma-separated. |
--on-conflict fail|skip|overwrite |
Conflict policy when a destination already exists (fail by default). |
--isolated |
Prefer dedicated harness folders (such as .cursor/skills) over shared .agents/skills. |
--custom-path <harness=rel/dir> |
Override a harness install directory within the active scope. |
--skill <name> |
Select a skill from a repository that contains several. Repeatable. |
--ref <ref> |
Git branch, tag or commit to resolve. |
--strategy copy|symlink |
copy is the default and is safe in Docker and CI. symlink creates relative links. |
--scope project|user |
Install into the repository or into your home directory. |
--path <dir> |
Repository root. Defaults to the current directory. |
--adapt |
Also write adapted rule files for harnesses that use them. |
--dry-run |
Plan, validate and scan without writing files. |
--max-risk-score <n> |
Fail when a skill's risk score exceeds n. |
--engine auto|skillspector|static |
Scanner engine. static is the built-in engine. |
--offline |
Use the built-in scanner only. |
--allow-risky |
Accept non-structural security findings. The decision is recorded in the audit log. |
--force |
Overwrite an existing installation. It never bypasses a security block. |
See Skill management for the accepted source formats.
skillporter install <skill-dir>
Install a local skill directory. --harness is required. It accepts --strategy, --scope, --path, --adapt, --dry-run, --allow-risky and --force with the same meaning as add.
skillporter install ./skills/release-notes --harness claude-code --harness codex
skillporter remove <skill>
Remove a skill from one or more harnesses. uninstall is an alias. A shared .agents/skills copy is kept while another managed harness still owns it.
skillporter remove pdf --harness cursor
Options: --harness, --exclude-harness, --scope, --path, --dry-run.
skillporter move <skill>
Move an installed skill from one set of harnesses to another atomically (--from and --to are required). Pass --isolated when moving to a harness with a dedicated folder (such as .cursor/skills or .gemini/skills) without sharing .agents/skills.
skillporter move pdf --from claude-code --to cursor --isolated
Options: --from, --to, --exclude-harness, --scope, --strategy, --path, --on-conflict, --force, --isolated, --custom-path, --dry-run.
skillporter adopt [skills...]
Bring existing unmanaged on-disk skills under Skillporter tracking (state.json and skillporter.yaml) after running specification validation and static security scanning.
skillporter adopt --all
Options: --all, --path, --scope, --allow-risky.
skillporter outdated [skill]
Compare managed skills against their upstream sources (version, commit, and SHA-256 tree hash) without modifying any files.
skillporter outdated
Options: --path, --scope.
skillporter update [skill]
Fetch tracked skills from their recorded source again, run the security gate, snapshot the current version and replace it. Without a skill name it updates every tracked skill.
Options: --scope, --path, --dry-run, --allow-risky.
skillporter rollback <skill>
Restore a skill from its most recent snapshot in .skillporter/backups/. Pass all to roll back every skill.
skillporter rollback pdf --dry-run
Options: --backup-id <id>, --scope, --path, --dry-run.
Manifest and lockfile
skillporter init [path]
Write skillporter.yaml from the skills and harnesses found in the workspace. --force overwrites an existing manifest.
skillporter sync [path]
Reconcile the workspace with the manifest, resolve dependencies and write skillporter.lock.
| Option | Description |
|---|---|
--harness <id> |
Limit synchronization to specific harnesses. |
--strategy copy|symlink |
Installation strategy. |
--scope project|user |
Scope to synchronize. |
--prefer <path> |
The copy to treat as authoritative when copies differ. |
--dry-run |
Preview without modifying files. |
--max-risk-score <n> |
Fail when a skill's risk score exceeds n. |
--allow-risky |
Accept non-structural security findings. |
--force |
Overwrite drifted copies after snapshotting them. |
See Synchronization.
skillporter lock [path]
Write skillporter.lock. With --check, write nothing and exit 1 when the lockfile is stale or the files on disk no longer match it.
skillporter lock --check
skillporter graph [path]
Print the resolved dependency graph and the topological install order. --json exports it.
Inspecting a workspace
skillporter diagnose [path]
Show which harnesses can see each skill, and report broken symlinks, content drift, duplicate loading and specification errors.
skillporter diagnose . --harness claude-code --harness codex
Options: --harness (repeatable, or all), --scope.
skillporter doctor [path]
Run the full health check. --fix repairs missing or drifted installs and removes broken symlinks. --dry-run previews the repair.
skillporter status [path]
Summarize the manifest, the lockfile, detected harnesses, drift and the per-harness installed and locked state.
skillporter list [path]
List installed and discovered skills with their content hash and the harnesses that have them.
skillporter audit [path]
Report each installed skill's origin and security posture, lockfile integrity, and recent events from .skillporter/audit.jsonl. --limit <n> caps the number of events.
skillporter detect [path]
Detect installed harnesses. --all includes harnesses that were not found. --versions probes CLI versions where a binary exists.
skillporter matrix
Print the harness compatibility and verification matrix. --category coding|autonomous filters it.
skillporter info <target>
Show detailed metadata for a harness adapter, a registry package or a local skill.
skillporter info cursor
skillporter inspect <source>
Inspect a local or remote package without installing it: structure, bundled scripts and security posture. --preview-adapt <format> prints how the skill would look as an adapted rule file. Formats: cursor-mdc, copilot-instructions, windsurf-rules, continue-rules, aider-conventions.
skillporter explain <finding>
Explain a diagnostic, lockfile or security finding code and print the commands that fix it.
skillporter explain DRIFT
skillporter explain sec-curl-pipe-sh
Security
skillporter scan [path]
Run the static security assessment on every discovered skill.
skillporter scan . --format sarif > skillporter.sarif
Options: --format text|json|sarif, --max-risk-score <n>, --engine, --offline.
skillporter validate [path]
Validate SKILL.md files against the Agent Skills specification and compute the risk score. It accepts the same options as scan.
skillporter sandbox run <skill>
Experimental. Produces a non-mutating dry-run trace of what a skill's instructions and scripts reference. It does not execute the skill and is not a runtime sandbox. Treat its output as a hint.
See Security scanning for finding codes and scoring.
Portable environments and profiles
skillporter export [output.skillpack]
Package your managed skill environment into a self-contained, SHA-256 verified .skillpack archive (skillpack.json + deduplicated skills/<name>/ contents + lockfile metadata + saved profiles). Automatically strips .env*, private keys, and .git/, and refuses to export skills containing embedded credentials.
skillporter export my-environment.skillpack
skillporter export personal.skillpack --scope user
Options: --path, --scope, --skill (repeatable), --managed-only, --manifest-only.
skillporter import <file.skillpack>
Validate archive structure and per-file SHA-256 hashes, run static security checks on every skill without executing scripts, detect missing harnesses on the destination machine, and restore the environment offline.
skillporter import my-environment.skillpack --dry-run
skillporter import my-environment.skillpack --only-detected --on-conflict skip
Options: --path, --scope, --harness, --exclude-harness, --only-detected, --on-conflict fail|skip|overwrite, --force, --dry-run, --preview, --allow-risky, --max-risk-score, --no-manifest.
skillporter diff <target>
Compare the current workspace (or --base) against a .skillpack archive, another workspace directory, or profile:<name>. Exits 0 when identical and 1 when differences exist.
skillporter diff my-environment.skillpack
Options: --base, --scope.
skillporter profile <list|save|show|use|delete>
Manage named skill environments stored as standard ProjectManifest YAML files under .skillporter/profiles/<name>.yaml.
skillporter profile save security-review
skillporter profile list
skillporter profile use security-review --prune
skillporter harness <list|inspect|status>
Inspect supported, compatible, detected, selected, and configured harnesses, including shared .agents/skills peers and isolated path options.
skillporter harness list --detected
skillporter harness inspect cursor
skillporter harness status
skillporter self-skill [install|show|path]
Install or view the official bundled skillporter AI agent skill so coding agents can operate Skillporter directly.
skillporter self-skill install --harness detected
Packaging and catalog
skillporter pack [path]
Build a deterministic .tar.gz bundle and a provenance.json manifest with the archive hash, tree hash and per-file hashes. --out <dir> sets the output directory.
skillporter search [query]
Search the built-in seed catalog, or the index named by SKILLPORTER_REGISTRY_URL. --category filters results.
skillporter publish [path]
Validate, security-gate and pack a skill for a registry index you configure with --registry. --dry-run verifies the contract without publishing. Skillporter does not operate a hosted public registry.
Automation
skillporter ci-report [path]
Generate a Markdown or JSON report of reachability, security and lockfile state for a pull request. --output <file> writes it to disk. --github-repo <owner/repo> with --pr <number> posts it as a comment.
skillporter mcp
Run the Model Context Protocol server over stdio. It is read-only by default.
| Option | Description |
|---|---|
--root <dir> |
Workspace boundary. Defaults to the current directory. |
--allow-writes |
Enable the mutating tools. |
--allow-user-scope |
Permit scope="user" reads outside the workspace. |
See MCP integration.
skillporter demo
Run the self-contained demo in a temporary workspace. It writes nothing to your current directory.