Managing AI agent skills across tools is still manual, duplicated, and hard to reproduce.
Teams copy skill folders into .claude/skills, .codex/skills, and other agent directories by hand, then lose track of which repo, tag, or commit each project is actually using.
ski turns that into a package-manager workflow for agent skills. Install skills from Git into Claude, Codex, Cursor, and OpenClaw with a manifest, lockfile, and shared store-backed copied installs.
- git repositories as skill sources
- local and global scope
init,add,install,remove,update,list,info, anddoctor
- Git-only sources
- Trust is manual
- No Windows support
Install with Homebrew:
brew tap Z-Bra0/skicli
brew install skicliHomebrew installs the formula as skicli, but the command is still ski.
Or install with the release script:
curl -fsSL https://raw.githubusercontent.com/Z-Bra0/Ski/master/scripts/install.sh | shski init --target claude
ski add https://github.com/org/repo-map.gitski add is the first-time workflow: it updates ski.toml, resolves and writes ski.lock.json, fetches the skill into the store, and copies it into the configured targets.
Use ski install later to restore skills from ski.toml and ski.lock.json, for example in a fresh clone.
Share one repo-map skill across Claude and Codex:
ski init --target claude --target codex
ski add https://github.com/org/repo-map.gitThis keeps one stored snapshot of the skill and materializes matching copies into both .claude/skills and .codex/skills.
Pin a team audit skill to a specific commit:
ski init --target claude
ski add git:https://github.com/acme/team-audit-skill.git@9f3c2abThis makes the project reproducible because the manifest and lockfile keep the selected source and resolved revision explicit.
Restore skills from the manifest and lockfile in a fresh clone:
ski installmake build # local dev build; `ski version` prints `dev`
make release VERSION=0.2.1make testski init [-g]
ski add [-g] [--target target]... <source>
ski install [-g]
ski list [-g]
ski info [-g] <skill>
ski doctor [-g]
ski update [-g] [skill]
ski remove [-g] [--target target]... <skill>
ski version- Use
skionly with skill repositories you have verified and trust. Review the upstream repo andSKILL.mdbeforeadd,install, orupdate. ski addprompts when a repo contains multiple skills. In non-interactive mode, use--skillor--all.ski add --target ...writes a per-skill target override for new skills. If the skill already exists with the same identity,add --target ...extends it into those additional targets.ski remove --target ...removes a skill only from those targets. Without--target,removedeletes the skill entry entirely.ski listshows 1-based skill references like@1. Those references are scope-local and can be used withinfo,update,remove, andadd @N --target ....- Supported sources are remote Git endpoints. You can use
git:https://...or omit thegit:prefix for URL-form sources such ashttps://...,ssh://..., andgit://.... ski versionreports the CLI build version. Dev builds printdev; release builds use the version passed tomake release VERSION=....make release VERSION=...also writesdist/ski_<version>_checksums.txtfor installer verification.- Local targets write into the project.
-guses~/.ski/global.tomland global agent directories instead. - Built-in targets include
cursor,claude,copilot,codex,windsurf,gemini,antigravity,opencode,openclaw,goose, andagents. - Custom target folders use
dir:. For example:dir:./agent-skills/claude.
- SPEC.md — file formats, schemas, adapter interfaces
- ARCHITECTURE.md — internal design and Go layout
- DECISIONS.md — design decisions and rationale
GPL-3.0. See LICENSE.