Usage
All commands are non-interactive — safe to call from any AI agent. Commands fail fast with a clear error if something is missing, rather than blocking on user input.
Installing skills
sm install
Installs the bundled skillsmanager skill into all detected agent directories.
sm install # install to all agents
sm install --agent claude # install to a specific agent
sm install --agent claude,cursor,openclaw # install to multiple agents
sm install <name>
Downloads a skill from remote storage and symlinks it into an agent’s skills directory.
sm install <skill-name> --agent <agent>
sm install code-review --agent claude
sm install write-tests --agent cursor
The skill is cached at ~/.skillsmanager/cache/<uuid>/<skill-name>/ and symlinked — one copy, many agents.
Browsing skills
sm list
Lists all skills in a tree view grouped by registry → collection → skill. GitHub collections show the source repo in the badge.
sm list
Example output:
REGISTRY gdrive
├── personal [gdrive]
│ ├── code-review Opinionated code review workflow
│ └── write-tests Generates unit tests
└── curated [github: owner/skills-repo]
└── algorithmic-art Generates algorithmic art
Collections not linked to any registry appear under (unregistered) — run sm refresh to link them.
sm status
Shows the login state and identity for each backend.
sm status
Example output:
Backend Status Identity
──────── ──────────────────────── ──────────────────────────────
local ✓ logged in ajay
gdrive ✓ logged in you@example.com
github ✗ not logged in run: sm setup github
Never triggers auth flows — safe to run at any time.
sm search
Full-text BM25 search across skill names and descriptions.
sm search <query>
sm search "code review"
sm search linkedin
Adding and updating skills
sm add
Uploads a local skill directory to a collection.
sm add <path>
sm add ./my-skill
sm add ./my-skill --collection work
If --collection is omitted, the skill is added to the default collection.
Registering a remote skill path (cross-backend collections)
When a collection has a cross-backend skills source (e.g. type: github pointing to a GitHub repo), you cannot upload local files — the files already live in the remote repo. Instead, register a path pointer with --remote-path:
sm add --remote-path <path-in-repo> --name <skill-name> --description "<desc>" --collection <name>
Example:
sm add --remote-path skills/write-tests/ --name write-tests \
--description "Generate unit tests for a function or module" \
--collection my-curated-col
This writes an entry into SKILLS_COLLECTION.yaml without touching any skill files. When a user installs the skill, the files are pulled from the declared metadata.repo.
sm update
Pushes local changes to an existing skill back to remote storage.
sm update <path>
sm update ./my-skill
Collections
Collections are folders that group related skills. Each collection has a SKILLS_COLLECTION.yaml index file.
sm collection create
Creates a new skill collection.
sm collection create
sm collection create my-collection
sm collection create my-collection --backend github --repo owner/repo
sm collection create my-collection --backend gdrive
Cross-backend collections: --skills-repo
Use --skills-repo to create a collection whose skill files live in a specific GitHub repo, regardless of where the collection YAML is stored:
# Collection YAML in Google Drive, skill files in a GitHub repo
sm collection create curated --backend gdrive --skills-repo owner/skills-repo
# Collection YAML in one GitHub repo, skill files in another
sm collection create curated --backend github --repo owner/registry-repo --skills-repo owner/skills-repo
This sets type: github and metadata.repo in the generated SKILLS_COLLECTION.yaml. After creating such a collection, register skill entries with sm add --remote-path ... rather than uploading files.
Registries
A registry is the root index that points to all your collections. See the Protocol spec for the full architecture.
sm registry create
Creates a new local registry.
sm registry create
sm registry create --backend gdrive # create directly in Google Drive
sm registry list
Shows all registries and their collections.
sm registry list
sm registry push
Pushes a local registry and all its collections to a remote backend. Transactional — all-or-nothing.
sm registry push --backend gdrive
sm registry discover
Searches a backend for existing registries and adds them to local config.
sm registry discover --backend gdrive
sm registry add-collection
Adds a collection reference to the registry.
sm registry add-collection <name>
Discovery and sync
sm refresh
Re-discovers collections from all connected backends and updates the local index.
sm refresh
Google Drive setup
sm setup google
One-time interactive wizard for Google Drive authentication. Human-facing only — not for agent use.
sm setup google
Config file
All state is stored in ~/.skillsmanager/config.json. You can inspect it directly — it’s plain JSON with registries, collections, and a skills index.
Key paths:
| Path | Purpose |
|---|---|
~/.skillsmanager/config.json | Cached registries, collections, skills index |
~/.skillsmanager/registry.yaml | Local registry |
~/.skillsmanager/collections/<name>/ | Local collection storage |
~/.skillsmanager/credentials.json | Google OAuth client credentials |
~/.skillsmanager/token.json | OAuth access + refresh token |
~/.skillsmanager/cache/<uuid>/<skill>/ | Downloaded skill cache |