The quiet control point for skills shared across AI agents. Install once, declare availability across agents, and keep environments in sync. Standalone Go binary with zero language runtime dependencies.

bash
# macOS and Linux
$ curl -fsSL https://raw.githubusercontent.com/akunzai/skills-manager/main/install.sh | bash

# Windows PowerShell
PS> irm https://raw.githubusercontent.com/akunzai/skills-manager/main/install.ps1 | iex

# Add a skill and inspect availability
$ skills add akunzai/agent-skills
$ skills ls

Linux, macOS, and Windows. Also on Homebrew, Scoop, and mise. Source on GitHub · Latest release · JSON Schema

Skills Manager terminal screencast: adding the agent-skills catalog, inspecting availability, and confirming an offline sync
Add a catalog once, inspect where each skill is available, and reconcile from Cache without another network round-trip.

Why Skills Manager

Against npx skills: Zero runtime dependencies

npx skills runs on Node.js and executes via npm/npx. Skills Manager compiles to a single native Go binary with zero language runtime dependencies. It starts in milliseconds, works in minimal environments (containers, servers, CI), and uses system git only for remote updates.

Against npx skills: Local symlinks and live authoring

When adding a local directory, npx skills copies files into the skills directory. Skills Manager provides first-class local symlink sources (skills add --symlink ./my-skill). Edits in your working tree reflect immediately across all agents without copying or reinstalling.

Against npx skills: Command sources with prerequisite checks

Skills can be CLI tools or package managers rather than Git repos. Skills Manager supports executable command sources (--command) paired with prerequisite verification (--check), tracked declaratively in skills.json.

Against npx skills: Persistent availability policies

Skills Manager maintains declarative availability policies in configuration: defaultAgents, per-skill include, exclude, and follow-defaults. Universal agents that read the standard directory are recognized directly without creating redundant links.

Offline sync and drift diagnosis

Network fetching is isolated to skills update, which then reconciles the Scope; skills sync reconciles disk 100% offline from a shared cache. skills doctor --fix diagnoses broken symlinks, physical collisions, and drift, repairing manageable state safely.

Signed skills verified before install

When a Source signs its skills with an OpenSSF Model Signing signature (skill.oms.sig), every file is checked against it before the skill is written: Sigstore keyless signers are recorded in skills.json on first sight, and certificate chains such as NVIDIA’s are trusted with --trust-cert. A skill that does not verify is never installed, the previous copy stays, and --force cannot override it. When you have reviewed the content yourself, skills trust records that exact content in skills.json, where your team sees it; it is installed and marked unverified until the Source changes it. skills ls marks signed skills with ✓ and trusted unverified ones with !.

State-expressing exit codes

Exit 0 when Scope matches declared Config, 1 when drift or pending action exists (reporting next steps without misleading error styling), and 2 on real failure. Designed for clean automation in CI pipelines.

Workflows

Remote Git discovery
# Add a skill from GitHub shorthand
$ skills add akunzai/agent-skills --skill agents-md

# Target specific agents with persistent policy
$ skills add anthropics/skills --agent claude,antigravity --yes

Remote sources are cached locally; duplicate copies are deduplicated automatically.

Command skill with prerequisite check
# Add a skill installed via external CLI command
$ skills add playwright-cli \
    --command "playwright-cli install --global --skills=agents" \
    --check "which playwright-cli"

# Prerequisite is verified before execution; skips when check passes
$ skills sync

Integrate CLI package managers and tools into the same declarative skills.json.

Project Scope for team reproducibility
# Initialize project-level configuration
$ skills -p init
$ skills -p add akunzai/agent-skills --skill agents-md
$ git add .agents/skills.json && git commit -m "chore: add agent skills"

# Teammates clone and restore declared state deterministically
$ skills -p update

Declare team-wide skills in .agents/skills.json. Materialized skills in .agents/skills/ are ordinary files—commit only skills.json for a clean repo, or commit the skills directory directly for zero-install onboarding.

Global vs. Project Scopes

Scope Command Configuration Skills Directory
Global skills ... ~/.agents/skills.json ~/.agents/skills/
Project skills -p ... (--project) ./.agents/skills.json ./.agents/skills/

Commands

Command Intent Exit Contract
skills init Create a schema-backed skills.json for the selected Scope 0 created
skills add Declare skills from Git, local symlink, or command 0 added, 1 blocked
skills add <source> --trust-cert <pem> Require the Source’s skill signatures to chain to a certificate 0 added and verified, 1 blocked
skills trust <skill> Trust a skill’s current content although its signature does not verify; --revoke removes the trust 0 trusted, 2 refused
skills add <source> --list Browse a Source’s Skills without declaring any 0 listed, 1 none found
skills adopt Declare untracked or agent-directory skills, keeping their content 0 adopted, 1 left for you
skills ls Inspect declared skills, sources, and agent availability 0 clean
skills agents Inspect or change where a skill is available (include, exclude, reset, follow defaults) 0 applied
skills config Inspect or change settings; config edit opens skills.json 0 applied
skills outdated Inspect Remote → Cache → Scope freshness 0 fresh, 1 outdated
skills diff <skill> Show a remote Skill’s upstream and local changes before updating 0 no changes, 1 changes
skills update Refresh declared remote Sources, then sync the Scope 0 synced, 1 drift
skills sync Reconcile Scope from existing Cache without network access 0 synced, 1 drift
skills sync --dry-run Preview reconciliation actions non-mutatingly 0 synced, 1 pending work
skills doctor Diagnose broken symlinks, collisions, and drift 0 healthy, 1 findings
skills doctor --fix Safely repair diagnosed health issues 0 repaired
skills rm <skill> Remove a skill: its declaration, copy, availability links, and Baseline 0 removed, 2 not fully removed
skills prune Remove unmanaged items from skills directory 0 pruned
skills guide Print or install agent guidance for AI agents 0 completed
skills self-update Replace this CLI with a newer release (Homebrew, Scoop, and mise installs name their upgrade command instead) 0 replaced

Supported Agents

Universal Agents Direct (~/.agents/skills/)

Agents that natively read ~/.agents/skills/ (or project ./.agents/skills/) directly without requiring individual symlinks. Includes OpenAI Codex, OpenCode, GitHub Copilot CLI, Cursor, Grok Build (Global), Muse Code, and any tool conforming to the agent skills standard.

Claude Code Managed Symlink
~/.claude/skills/
Google Antigravity Managed Symlink
~/.gemini/antigravity-cli/skills/

Requirements & Compatibility