The project's README from github.com/xingkongliang/skills-manager. As one markdown file: README.md.
One app to manage AI agent skills across all your coding tools.
🎬 Video intro (YouTube) · 视频介绍 (Bilibili)
中文说明 · @JayTL00 on X · Buy me a coffee
Install Skills — Marketplace

Global Workspace

Agent Workspace

Project Workspace

Backup & Multi-Device Sync

Settings

.zip / .skill archives, or the skills.sh marketplace. Everything goes into one central repo, which defaults to ~/.skills-manager and can be customized in Settings.SKILL.md / README.md, inspect source metadata, and compare local content with the upstream version inside the app.Install with Homebrew:
brew install --cask skills-manager
You can also download the .dmg for your Mac from the latest release.
Download the installer for your platform from the latest release: .exe or .msi for Windows, and .AppImage, .deb, or .rpm for Linux (x64 and arm64).
Every installer ships the CLI inside the app — see Where the binary lives.
Claude Code, Codex, Cursor and the rest can install a skill, deploy it to another agent, or report what is where — by driving Skills Manager rather than writing into an agent's folder behind its back. That is what keeps source metadata, preset membership, update tracking and cross-agent deployment state intact.
The Dashboard offers a one-time setup: pick the agents that should be able to do it, and the app installs the manage-skills skill and deploys it to exactly those. Afterwards it is an ordinary library skill — adding or removing an agent is the agent badge row on its own card. No PATH setup is involved: the app publishes a copy of its CLI where agents look for it.
It is also an ordinary published skill, so it can be installed without the app:
npx skills add xingkongliang/skills-manager
The Backup page (sidebar) keeps your skill library versioned in a Git repository. One device gets versioned backup with restorable snapshots; several devices connected to the same repository stay in sync with each other automatically. The remote stays a plain Git repository — you can git clone it anywhere, no lock-in.
skills-manager-backup repository for you. The token is stored in the OS keychain — never in files or the repo config.Skills, tags, presets, and per-agent skill toggles are backed up. Secrets (API keys, tokens, proxy settings) and machine-specific wiring never leave the machine. Skills over 100 MB stay local and are excluded from backup automatically (labeled on the Backup page). The SQLite database is not in Git — it stores metadata that is rebuilt from the skill files.
The Backup page offers three levels: disconnect this machine (other devices and remote data untouched), revoke the GitHub authorization, or delete the remote backup entirely (routed through GitHub's own type-the-name confirmation).
53 agents are supported out of the box, including:
Claude Code · Codex · Cursor · GitHub Copilot · Gemini CLI · OpenCode · OpenClaw · Hermes Agent · OpenHands · Cline · Goose · Windsurf · Continue · Grok · Antigravity · Qwen Code · ZCode · Crush · Kilo Code · Roo Code · Amp · Kiro CLI · Droid · TRAE IDE · Warp · Qoder · CodeBuddy
Settings lists them all, leading with the ones detected on your machine. You can also add custom tools there and manage their skills the same way.
| Layer | Tech |
|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS |
| Desktop | Tauri 2 |
| Backend | Rust |
| Storage | SQLite (rusqlite) |
| i18n | react-i18next |
npm install
npm run tauri:dev
The repository includes an agent-friendly CLI built on the same Rust shared core used by the desktop app. Both the CLI and the desktop app go through the same SQLite database, central library, and sync engine.
# Look around
npm run cli -- skills list
npm run cli -- skills show db
# Install into the library (does NOT deploy to any agent by itself)
npm run cli -- skills install ./my-skill
npm run cli -- skills install https://github.com/foo/bar/tree/main/skills/baz
npm run cli -- skills install vercel-labs/agent-skills@react-best-practices
# Put it into the agents that should have it, then check
npm run cli -- skills deploy react-best-practices --agent claude_code --agent codex
npm run cli -- skills status react-best-practices
# Pull upstream changes, and adopt what an agent already has
npm run cli -- skills check --all
npm run cli -- skills update --all
npm run cli -- skills adopt ~/.claude/skills --dry-run
--help on any group or subcommand prints the full surface — the groups below
each carry more than these examples show, and destructive commands take
--dry-run (and remove requires --yes).
Available command groups:
repo — inspect or change the configured base directoryagents (tools alias) — list agents and globally enable or disable themskills — manage the central library and real per-agent deployments (deploy / undeploy / status)presets — create, update, delete, organize, deploy, undeploy, and inspect presetsgit — operate on the git-backed skills/ repository (clone, pull, push, commit, versions, restore)Extra flags:
--skills-root <path> — operate on a cloned/exported skills repo directly instead of the local app default. The manager's state (DB, presets, cache, logs) lives in ~/.skills-manager/external/<name>-<hash>/, namespaced by the canonical path of the skills root, so the external checkout itself stays clean.--json — machine-readable output for scripts/agents. Failures print {"ok": false, "code": …, "message": …} on stderr with a non-zero exit. A deployment refused because the target is not ours carries the paths as data (code: "TARGET_CONFLICT", details.conflicts[].path) so a caller can name the directory in the way instead of quoting a sentence.npm run -s cli -- --skills-root /path/to/my-skills --json skills list
At startup the app publishes a copy of its own CLI to ~/.skills-manager/bin/skills-manager-cli, always matching the running app, so agents can find it without anything on your PATH. A .version stamp beside it is written only after the copy is verified and removed before each republish, so a copy that failed — a binary held open on Windows, say — is never presented as usable.
Putting the CLI on your own PATH, for typing commands yourself, is separate:
npm run cli:install
# equivalent to:
# cargo install --path src-tauri --bin skills-manager-cli --locked --force
This drops the binary at ~/.cargo/bin/skills-manager-cli. Re-run after pulling updates to refresh it.
Official releases also publish standalone CLI binaries for macOS arm64/x64, Windows x64, and Linux x64. Download the matching skills-manager-cli-* asset, make it executable on macOS/Linux, and place it on PATH.
The CLI and desktop app share the same SQLite database and repository lock. The app's filesystem watcher normally refreshes after CLI metadata or deployment changes. If the app was suspended while a command ran, trigger one manual refresh.
npm run tauri:build
npm run cli:build
macOS refuses to open the app. Releases from v1.29.0 onward are signed with an Apple Developer ID certificate and notarized, so they open normally. If you see "Apple could not verify…" or "App is damaged", you are on v1.28.5 or older — upgrading is the fix. (Upgrading changes the code signature, so macOS may ask once more for the skills-manager-git-backup keychain entry; click Always Allow.)
Anything else — open an issue, and attach the bundle from Settings → Export Logs.
MIT