Linked skills for AI agents.
Skillmo adds skill repos to your project as git submodules inside .claude/skills/. Unlike copy-based tools, the link stays -- versioned, updatable, and trackable in git history.
npx skills add copies files into your project. After that:
- No link back to the source repo
- No version pinning -- no record of what you copied
- No update path -- re-run overwrites blindly
- Drift is invisible across repos
Skillmo uses git submodules under the hood, giving you persistent links with friendly UX.
# Install globally
npm install -g skillmo
# Add a skill from GitHub
skillmo add myorg/security-rules
# Add pinned to a specific version
skillmo add myorg/base-context --ref v2.0.0
# See what's installed
skillmo status
# Update a skill to latest
skillmo update security-rules
# Remove a skill
skillmo remove security-rulesOr use without installing:
npx skillmo add myorg/security-rulesWhen you run skillmo add myorg/repo, it:
- Resolves
myorg/repotogit@github.com:myorg/repo.git - Runs
git submodule addinto.claude/skills/repo - Claude Code reads the skill natively -- no compile step needed
The submodule reference is committed to your repo. Teammates get the skill when they clone. If they forget --recurse-submodules:
skillmo initThat initializes all skillmo-managed submodules.
| Command | Description |
|---|---|
skillmo init |
Initialize all submodules (safety net for clones) |
skillmo add <repo> |
Add a skill from GitHub shorthand or full git URL |
skillmo add <repo> --ref <tag> |
Add pinned to a branch or tag |
skillmo add <repo> --name <name> |
Add with a custom directory name |
skillmo remove <name> |
Remove a skill and clean up the submodule |
skillmo update [name] |
Update one or all skills to latest |
skillmo status |
Show detailed info on all installed skills |
skillmo list |
Compact listing of installed skills |
myorg/repo expands to git@github.com:myorg/repo.git.
Full URLs are also accepted:
skillmo add git@gitlab.com:myorg/rules.git
skillmo add https://github.com/myorg/rules.gitAny git repo with a SKILL.md works. Same format Claude Code already reads:
myorg/security-rules/
SKILL.md
README.md # optional
---
name: security-rules
description: Organization security policies for AI agents
---
# Security Rules
- All secrets via environment variables, never hardcoded
- No curl piping to shell in scripts
- Always validate input at API boundariesNo special format. No build step. If it works as a Claude skill manually, it works with Skillmo.
Both tools install skills from GitHub repos. The difference is what happens after.
npx skills add |
npx skillmo add |
|
|---|---|---|
| Mechanism | Clone repo, copy files | git submodule add |
| After install | Files in your project, no link to source | Live git link to source repo |
| Version tracking | Content hash in skills-lock.json |
Git submodule pinned to exact commit |
| Detect changes | Compare hash (did source change?) | git submodule status (am I behind?) |
| Update | Re-clone, overwrite files | git submodule update --remote (merge) |
| Update diff | No diff -- old files replaced | Full diff visible in git log and PRs |
| Git history | Skill changes invisible in repo history | Submodule pointer changes show in commits |
| Teammates | Get copied files on clone | Get skills on clone --recurse-submodules |
Use npx skills when you want a quick, one-off install and don't need to track changes over time.
Use npx skillmo when you want skills that stay linked to their source -- updatable with diffs, visible in PRs, and trackable in git history. Especially useful for org-wide skills shared across many repos.
You can. Skillmo just makes it pleasant:
- GitHub shorthand:
skillmo add myorg/repoinstead ofgit submodule add git@github.com:myorg/repo.git .claude/skills/repo - Clean removal:
skillmo remove namehandlesdeinit,git rm, and.git/modulescleanup in one command - Readable status:
skillmo statusshows skill names, versions, and URLs instead of raw SHA hashes - Teammate safety net:
skillmo initinitializes submodules for people who forgot--recurse-submodules
git clone https://github.com/jonzarecki/skillmo.git
cd skillmo
npm install
npm run build
# Run
npm test # 18 tests
npm run lint # eslint
npm run dev # watch mode
# Demo
npm run demo # interactive demo
npm run demo:record # record demo video (requires VHS)See ARCH.md for the full architecture.
- Node.js >= 18
- Git >= 2.25

