// documentation
skillgraph docs
The package manager for AI-agent skills — npm, but for skills. Pull a skill and its
entire dependency graph into .claude/skills/ with one command, and publish
your own under your @scope.
Overview
A skill is a flat-named folder with a SKILL.md (its name and
description in frontmatter), following the open
Agent Skills standard. Skills can declare dependencies on
other skills, so the registry forms a directed graph — its namesake. Install a skill and
skillgraph resolves the whole closure, pins it in a lockfile, and writes every skill into your
project's .claude/skills/.
Concepts
- Coordinates & scope
-
A published skill is addressed by a coordinate
@scope/name. Thescopeis your username; it is stamped server-side from your identity, never typed — so you can only ever publish under your own. On disk the scope disappears: a skill always materializes to a flat.claude/skills/<name>/. - Owned vs installed
- Installed skills are ones you consume (read-only). Owned skills are ones you manage
and can publish.
forkturns an installed skill into an owned copy under your scope, recording its origin as lineage. - The registry is the source of truth
- Ownership, lineage, and content are server-authoritative. Your local files — the manifest, the lock, the per-skill sidecar — are regenerable, non-authoritative state; editing them can't forge ownership or inject content. Published versions are immutable.
- Manifest → lock → skills
-
skillgraph.jsonis intent (the skills you want, by version orlatest);skillgraph.lock.jsonis the resolved, pinned graph you got;.claude/skills/is the materialized content. A bareinstallreproduces from the lock without re-resolving — npm'sinstallvsci, over a flattened, single-version graph.
CLI reference
Search and install need no account; sign in only to publish. The surface is scriptable and non-interactive — built for humans at a terminal and agents in a loop.
-
skg search <keyword>find skills by name or description -
skg install @scope/nameresolve the full closure into .claude/skills/ -
skg installreproduce the project from its lockfile -
skg lsprint the installed dependency tree -
skg ls @scope/nameinspect a coordinate before installing
-
skg init <dir>bring a SKILL.md folder under management -
skg publish <target…>publish a graph of managed skills, leaves first -
skg fork @scope/namescaffold an owned copy of another author's skill -
skg revert @scope/nameflip a fork back to its origin -
skg import <git-url>clone a repo and publish its skills under your scope
-
skg loginsign in with GitHub, store an API key -
skg whoamishow the @scope you publish under -
skg logoutremove the stored key
FAQ
- Do I need an account to install skills?
- No. Search, install, and inspect are fully anonymous — you only sign in to publish your own skills.
- Where do skills get installed?
- Into your project's .claude/skills/ folder — Claude Code's skill-discovery directory — each as a flat <name>/ folder. The manifest (skillgraph.json) and lockfile (skillgraph.lock.json) live at the project root.
- What is a coordinate and a scope?
- A published skill is addressed as @scope/name, where the scope is your username. You never type your scope when publishing — the registry stamps it from your identity, so you can only ever publish under your own.
- Owned vs installed — what is the difference?
- Installed skills are ones you consume (read-only). Owned skills are ones you manage and can publish. fork turns an installed skill into an owned copy under your scope, recording its origin as lineage.
- How does publishing a dependency graph work?
- publish resolves the managed skills you point it at, orders them leaves-first, and publishes each. A co-published sibling dependency is stamped with your scope; a cross-author dependency is referenced by its full coordinate.
- Is it Claude-only?
- The on-disk target is Claude Code's .claude/skills/ for now, but the manifest and lock live at the project root (agent-agnostic) so the same resolved graph can materialize into other agents' directories later.