Installing Anthropic-style skill packs
Anthropic-style skill packs are repos shaped around top-level skills/<kebab>/SKILL.md, optional agents/, references/, and per-target command directories (.claude/commands/, .gemini/commands/). AgentsMesh classifies these automatically and imports them as a single bulk set — no --as or --target needed.
This guide walks the full install → list → uninstall round-trip using addyosmani/agent-skills as the example.
1. Install
agentsmesh init # if not already set upagentsmesh install https://github.com/addyosmani/agent-skillsAgentsMesh:
- Acquires
.agentsmesh/.install.lock. - Clones the source.
- Runs the multi-signal classifier. For
agent-skillsthe classifier matchesskills/<kebab>/SKILL.md,agents/<name>.md,references/, multi-tool rules at root, and per-target command dirs — total score ≥ 1.4, primary signal present →anthropic-skill-pack. - Aggregates 23 skills + 3 agents + 7 commands (4
.claude/commands/+ 3.gemini/commands/merged into the canonicalcommands/set, with claude precedence on basename collisions) + 1 root rule. - Surfaces the bulk-select prompt (
[a/n/s]) unless--force. - Materialises the pack under
.agentsmesh/packs/addyosmani-agent-skills/with a per-file integrity manifest at.agentsmesh-install-manifest.json. - Writes the entry to
installs.yaml. - Runs
agentsmesh generateso every active target (claude-code, cursor, opencode, …) gets the skill files in its native layout.
✓ Installed pack "addyosmani-agent-skills" to .agentsmesh/packs/.Generated: 67 created, 0 updated, 0 unchanged2. Inspect
agentsmesh installs listNAME SOURCE FEATURES INSTALLEDaddyosmani-agent-skills github:addyosmani/agent-skills@5b4c6da skills, agents, commands 2026-05-16ls .claude/skills | head # writes for the claude-code targetls .cursor/skills | head # writes for the cursor targetls .opencode/skills | head # writes for the opencode targetEach target’s tree carries exactly the 23 skills, with no boilerplate (README.md, etc.) bleeding through — the install-layer boilerplate filter excludes them.
3. Handle prompts (interactive only)
Bulk-select
When the classifier picks anthropic-skill-pack and stdin is a TTY, the prompt shape depends on how many entities the source carries.
One entity total — single yes/no:
Found in source-name: - 1 skill
Install skill "interview-me"? [y/N]y installs it, n or Enter skips, anything else aborts (exit 130). The three-tier picker would be pointless ceremony here, so AgentsMesh skips it.
Two or more entities — three-tier picker:
Found in agent-skills: - 23 skills - 3 agents - 7 commands - 1 root rule
Install [a]ll, [n]one, or [s]elect per type? [a/n/s]aaccepts everything (also the default under--force,--json, non-TTY).nreturns nothing and exits0(no writes).senters Tier 2, asking once per non-empty kind:Install all 23 skills? [y/n/c]—y/ntake/skip the whole kind;cdrills into Tier 3 per-entity prompts:Install skill "interview-me"? [y/N/a/q](a= accept this and every remaining entity in the kind;q= skip this and every remaining entity in the kind).
See the install reference for the full tier matrix, marketplace and multi-collection flows, conflict handling, and the consolidated bypass table.
Broken-link
If a skill body references a file outside its scope (../references/orchestration-patterns.md from a skills/<x>/SKILL.md), you get a per-entity cluster:
Entity "code-reviewer" (agent) has 2 broken links: - ../references/orchestration-patterns.md (resolvable-outside) - ../references/missing.md (unresolvable)
Action: [i]nclude resolvable as supporting files / [l]eave with warnings / [a]bort installicopies the resolvable file into the entity’ssupportingFilesand rewrites the body link to./references/<x>.md. Unresolvables are left in place with warnings. Bodies authored with the{baseDir}/x.mdplaceholder or Windows-style..\refs\x.mdrewrite verbatim — the scanner matches the raw destination, not a normalized form.l(the--forcedefault) preserves all link strings and warns.aaborts the run with exit 130; no writes.
When two resolvable links share a basename (docs/A/README.md and docs/B/README.md both pulled in), AgentsMesh slugs the second to keep distinct files: you end up with references/docs-A-README.md and references/docs-B-README.md rather than one file overwriting the other.
4. Uninstall
agentsmesh uninstall addyosmani-agent-skillsAgentsMesh:
- Acquires
.agentsmesh/.install.lock. - Reads
installs.yamlto find the entry. - Reads
.agentsmesh-install-manifest.jsonand computes drift against the current pack contents. When drift is present (locally edited files), the modification prompt offers[d]elete-anyway / [k]eep-modified / [a]bort. rm -rfs.agentsmesh/packs/addyosmani-agent-skills/.- Drops the
installs.yamlrow (and any matchingextends:row). - Runs
agentsmesh generatesocleanupStaleGeneratedOutputsevicts orphaned target files (.claude/skills/<x>/, etc.).
agentsmesh installs list# No installed packs.--keep-pack preserves the directory on disk but still drops the yaml rows (useful when you’ve edited files and want to keep them around). --keep-generated skips the post-uninstall generate; target files stay until the next manual generate — a warning lists what will be cleaned then.
Partial-batch failures
agentsmesh uninstall name1,name2,name3 --force (or --all) wraps each pack in its own try/catch. If one pack’s apply step throws (EACCES, disk full, etc.), survivors still apply, post-operation generate still runs over them, and the failed pack lands in the JSON envelope’s data.failed[] array. The run exits 1 whenever data.failed[] is non-empty — see agentsmesh uninstall reference for the JSON shape.
Where to dig deeper
agentsmesh installreference — full flag list, source formats, classifier and lock details.agentsmesh uninstallreference — flags, exit codes, modification prompt semantics.agentsmesh installsreference — JSON shape, scope behavior.- Architecture: install internals — signal scoring, classifier dispatch, pack-writer atomicity, manifest format.