skills-man is a Rust CLI that installs and manages AI agent skills from GitHub
repositories. It downloads skills into a local skills/ directory and tracks
them in skills.toml so you can keep installs clean and up to date.
- Install a single skill or a skill collection from GitHub (currently only GitHub URLs are supported).
- Sync local skills with upstream changes.
- List, update and uninstall skills.
- Local and global modes.
- Load environment variables from
~/.skills-man/config.toml.
Download a prebuilt binary from GitHub Releases
After downloading, extract it and place skill in a directory on your PATH
(for example, /usr/local/bin).
Or build and install from source:
cargo install --git https://github.com/nomyfan/skills-manRun the CLI:
skill install https://github.com/owner/repo/tree/main/path/to/skill
skill list
skill sync
skill update skill-name
skill uninstall skill-nameAt startup, skill loads environment variables from the global config file.
Priority is:
- Existing shell environment variables
~/.skills-man/config.toml[env]section
Set GITHUB_TOKEN or GH_TOKEN in the global config:
# ~/.skills-man/config.toml
[env]
GITHUB_TOKEN = "github_pat_..."The token is sent with GitHub API requests so skill can use authenticated rate
limits and access private repositories that your token is allowed to read.
skill install <github-url> (alias: skill i)
Install a skill or a skill collection from GitHub.
skill sync
Sync all skills from skills.toml, downloading missing skills and optionally
overwriting local changes.
skill uninstall <skill-name>
Remove a skill directory and its entry in skills.toml.
skill update <skill-name> (alias: skill up)
Check for upstream changes and update a single skill.
skill list
Show installed skills and their metadata.
By default, skills-man works in local mode and stores data in the current
directory:
./skills/./skills.toml
Use -g / --global to switch to global mode:
~/.skills-man/skills/~/.skills-man/skills.toml
Examples:
skill --global install https://github.com/owner/repo/tree/main/path/to/skill
skill -g listIf you use multiple agent CLIs (Codex, Claude Code, Gemini), install skills in
global mode and symlink each agent's skills directory to ~/.skills-man/skills.
This keeps a single source of truth for all tools.
skill -g install https://github.com/owner/repo/tree/main/path/to/skill
skill -g install https://github.com/owner/repo/tree/main/path/to/another-skill
mkdir -p ~/.claude
mkdir -p ~/.codex
mkdir -p ~/.gemini
ln -s ~/.skills-man/skills ~/.claude/skills
ln -s ~/.skills-man/skills ~/.codex/skills
ln -s ~/.skills-man/skills ~/.gemini/skillsYou can share ~/.skills-man/skills.toml with teammates, run skill -g sync, and everyone gets the same skill set.
This repository includes an Agent skill at skills-man-cli/. Install it so an
AI agent can use and troubleshoot the skill CLI:
skill -g install https://github.com/nomyfan/skills-man/tree/main/skills-man-cliSkills must be referenced with the GitHub "tree" URL that points at a directory:
https://github.com/<owner>/<repo>/tree/<ref>/<path>
<ref> can be a branch name, tag, or commit SHA. Both refs and paths can
contain slashes, so the tool tries multiple candidate splits until one succeeds.
Examples:
https://github.com/nomyfan/skills-man/tree/main/skills-man-cli
https://github.com/owner/repo/tree/release/v1.0/path/to/skill
- Each installed skill is recorded in
skills.toml. - A SHA256 checksum of the skill directory detects local edits.
- On
sync, if a checksum mismatch is found, you will be prompted before overwriting local changes.
During install, the tool resolves the ref to a commit SHA using the GitHub API
and only re-downloads when the upstream SHA changes.
MIT