Loading...
Loading...
Manage the user's shared agent-skill library via skills-manager-cli — install, update, remove, deploy or undeploy skills per agent, manage presets, organize tags, search, and adopt existing skills. Use this whenever the user wants Claude Code, Codex, Cursor, or another agent to gain or lose a skill, wants to organize the central library, or asks what is installed or deployed. Prefer this over direct agent-folder installs because Skills Manager preserves source metadata, preset membership, updates, and cross-agent deployment state.
npx skill4agent add xingkongliang/skills-manager manage-skillsD="$HOME/.skills-manager/bin"
B="$D/skills-manager-cli"; [ -e "$B" ] || B="$B.exe" # .exe on Windows
if [ -s "$D/.version" ] && [ -x "$B" ]; then
echo "$B"
elif [ -s "$D/.version" ] || [ -e "$B" ]; then
echo BRIDGE_BROKEN
else
P="$(command -v skills-manager-cli 2>/dev/null || true)"
[ -x "$P" ] && echo "$P"
fi$SM$SM~/.skills-manager/bin.versionBRIDGE_BROKEN--jsonok=falsecodemessage"$SM" --json skills list{"ok": false, "code": "TARGET_CONFLICT", "kind": "target_conflict",
"message": "Refusing to deploy: 1 of 2 target(s) …",
"details": {"conflicts": [{"path": "/Users/me/.claude/skills/db",
"reason": "is not a managed deployment"}]}}skills adopt~/.skills-manager/skills/presets add-skill/remove-skillskills deploy/undeploypresets deploy/undeploy# From skills.sh marketplace
"$SM" skills install vercel-labs/agent-skills@react-best-practices
# Any git URL (use /tree/branch/subpath form when the skill lives in a sub-directory)
"$SM" skills install https://github.com/anthropics/skills.git
"$SM" skills install https://github.com/foo/bar/tree/main/skills/baz
# Local folder
"$SM" skills install ./my-skill
# Force a source type when the ref is ambiguous
"$SM" skills install foo/bar --skillssh
"$SM" skills install ./looks-like/owner-repo --local"$SM" skills deploy <skill> --agent claude_code --agent codex--sync--sync-preset./..//~/://.gitgit@owner/repoowner/repo/skillowner/repo@skill--local--git--skillsshskills listskills show <name>"$SM" --json skills search "react performance" --limit 5install_refskills installinstallsskills_sh_url# Re-fetch one skill (git/skillssh re-clones, local/import re-imports source dir)
"$SM" skills update <skill-name-or-id>
# Re-fetch all eligible skills
"$SM" skills update --all
# Just probe remote revisions, don't touch files
"$SM" skills check --allcheckupdateskipped: true{ "name": "ppt-master", "refreshed": false,
"held_back_removals": ["library: templates/mine.pptx"] }refreshed: falseheld_back_removalslibrary# Always preview first when removing more than one
"$SM" skills remove <skill> --dry-run
# --yes is required for the actual delete; --json mode does NOT auto-confirm
"$SM" skills remove <skill> --yes"$SM" skills deploy <skill> --agent claude_code
"$SM" skills undeploy <skill> --agent codex
"$SM" skills deploy <skill-a> <skill-b> --agent codex --dry-run
"$SM" skills deploy <skill> --agent claude_code --agent codex
"$SM" --json skills status <skill>skills enable/disableskills deployskills undeploy--agentskills status# Sync current active preset to all enabled agents
"$SM" skills sync
# Preview the target list — safe, no writes
"$SM" skills sync --dry-run
# Switch the one legacy active preset, then sync
"$SM" skills sync --preset "Web Dev"
# Only sync to a single agent (useful when one agent's directory got out of sync)
"$SM" skills sync --tool claude_codenpx skills addgit clone# Dry-run scan first — lists candidates without writing
"$SM" skills adopt ~/.claude/skills --dry-run
# Adopt everything found — each becomes source_type=local (can't auto-update from git)
"$SM" skills adopt ~/.claude/skills
# Adopt a single skill and pin it to a git source so `update` works later
"$SM" skills adopt ~/.claude/skills/react-best-practices \
--git-url https://github.com/vercel-labs/agent-skills/tree/main/react-best-practices
# Or pass --git-subpath explicitly when the URL is just the repo root
"$SM" skills adopt ~/.claude/skills/react-best-practices \
--git-url https://github.com/vercel-labs/agent-skills \
--git-subpath react-best-practices
# Skill lives at the repo root? Pass an empty subpath
"$SM" skills adopt ~/.claude/skills/my-skill \
--git-url https://github.com/me/my-skill --git-subpath ""adopt--git-url/tree/branch/path--git-subpathupdate"$SM" skills tag add <skill> web frontend
"$SM" skills tag remove <skill> frontend
"$SM" skills tag set <skill> web frontend
"$SM" skills tag rename frontend web
"$SM" skills tag delete obsolete --dry-run
"$SM" skills tag delete obsolete --yes
"$SM" skills tag list <skill> # tags on one skill
"$SM" skills tag list # all distinct tags"$SM" --json skills list --untagged
"$SM" --json skills list --no-preset
"$SM" --json skills list --tag frontend
"$SM" --json skills list --preset "Web Dev"
"$SM" --json skills list --deployed-to codex"$SM" presets list
"$SM" presets current
"$SM" presets show "Web Dev"
"$SM" presets create "Web Dev" --description "Frontend work"
"$SM" presets update "Web Dev" --name "Frontend"
"$SM" presets delete "Old" --dry-run
"$SM" presets delete "Old" --yes
"$SM" presets add-skill <preset> <skill>...
"$SM" presets remove-skill <preset> <skill>...
"$SM" presets deploy <preset> # all enabled coding agents
"$SM" presets deploy <preset> --agent codex
"$SM" presets undeploy <preset> --agent claude_code
"$SM" presets undeploy <preset> # every agent with target rows for this preset
"$SM" --json presets status <preset>deploy/undeploypresets apply/deactivate--agent"$SM" --json repo status # base dir, skill / preset counts, active preset
"$SM" --json agents list # detected agents and their target paths
"$SM" agents enable codex
"$SM" agents disable claude_coderepo statusagents listagents disableagents enableagents disable <agent>skills undeploypresets undeployskills search "X" --limit 5skills install <install_ref>skills deployskills status <name>"$SM" --json skills listpreset_idspresetsdeployed_totagssource_typeenabledskills adopt ~/.claude/skills --dry-runskills adopt ~/.claude/skillsskills adopt ... --git-url ... --git-subpath ..."$SM" skills check --all # see what has upstream changes
"$SM" skills update --all # applyrefreshed: trueskills deploy <skill> --agent <key>presets deployskills deployskills syncpresets applyupdatenpx skills addgit clonelocaladopt ... --git-url ... --git-subpath ...skills removeskills install <git-ref>--dry-runcheckupdate