Skills Manager
Write an AI Agent skill once and sync it to 32 AI coding tools via symlinks — a local-first desktop manager.
The skill only drives a local CLI: no network calls, no credential access; scope is limited to ~/.skills-manager and symlink management in tool skill directories; write commands use an advisory lock; the Windows fallback chain (symlink→junction→tracked copy) records provenance transparently. Deductions: `adopt` moves real user directories, and `--` without `--yes` still skips confirmation and applies (the doc admits this), so a false trigger by an agent mutates state; the binary must be downloaded from a website or Releases with no checksum/signature guidance, so supply-chain integrity is unverifiable statically.
SKILL.md and references/.md document JSON contracts, exit codes, the dry-run/apply matrix (including the counterintuitive `adopt -- --dry-run` silent output), lock conflicts, and error messages in exceptional, self-consistent detail — near-exemplary diagnosability at the documentation level. Capped at 10: no executed key-path reproduction, and no committed tests covering the skm commands themselves (workflow tests only cover the publish script).
The description states precise triggers (managing skills, missing skill, running skm) and explicit negative boundaries (not npx skills, skill-creator, marketplace); Out-of-scope and Which-tool tables narrow scope further; cross-platform (with Windows permission notes) and headless scenarios are well covered. Deductions: the core dependency must be fetched from overseas sites (GitHub Releases, ClawHub, official website) with no China mirror or verification means; many `--` semantic traps raise correct-usage friction despite accurate triggering.
Well-layered docs (SKILL.md → .md → tools.md), clear boundary declarations, install locations, prefix-collision tables, MIT license, and version-gated publishing (publish-skill.yml). Deductions: the skill itself has no changelog/version field; its update path depends on ClawHub publishing tied to app versions; publisher is an unverified individual; README contains sponsorship/ad content.
High marginal value over manually creating symlinks across 32 tools; machine-readable output suits agent automation; docs are directly usable. However, static review cannot verify actual output correctness (junction fallback, adopt move behavior) — completion evidence is author-claimed only, so capped at 7, scored 6.
Auditable primary material exists: source repo, MIT license, real CI workflows (build.yml builds and attaches skm; publish-skill.yml with version gating and unit tests). But CI tests cover only the publish script, not the skm behavior the skill claims; the JSON contracts have no independent reproduction or third-party corroboration — thin multi-source verification, capped at 5, scored 4.
- Caution: `skm adopt --` without `--yes` still applies changes (the confirmation prompt is skipped); always pass `--yes` explicitly and preview with `--dry-run` (human mode) first.
- `skm doctor --` always exits 0 — gate scripts on `issues_count`, not the exit code; `fix --yes --` may print a result on stdout while exiting 1.
- The CLI binary must be downloaded from overseas sites (GitHub Releases / official website) with no checksum or signature verification guidance in the repo; verify integrity yourself. The app is not Apple-notarized.
- Enabling a skill writes symlinks (or tracked copies on Windows) into AI tool directories — a real filesystem side effect; use only with informed consent.
- This was a static review with no execution; all behavior claims come from the docs themselves and must be verified by the user.
What does this skill do, and when should you use it?
Skills Manager is a free, open-source (MIT) cross-platform desktop app that solves the fragmentation of AI coding assistant skill configurations. It stores all skills in a central hub (~/.skills-manager/skills) and symlinks them into 32 tools including Claude Code, Codex, Cursor, and Gemini CLI. The app is built with Tauri 2.0 (Rust) and React 19, and runs on macOS, Windows, and Linux. Each release also ships a CLI, skm, plus a companion skill (skills-manager-cli) that teaches agents how to drive it from a terminal.
skm initializes the hub config (skm init), moves real skill directories already sitting in tool folders into the hub and relinks them (skm adopt), lists skills and per-tool link status (skm list --), creates or removes symlinks for a given tool (skm enable/disable <skill> --for <tool>), detects installed tools and reports sync issues (skm doctor), and repairs broken links (skm fix --yes). On Windows it tries directory symlink, then junction (mklink /J), then a tracked copy with the source path recorded. skm does not create, edit, search, or marketplace-install skills — those live in the GUI.
- An engineer on a headless server or SSH session who wants to manage skills entirely from a terminal (skm init + skm adopt give a full GUI-free workflow).
- A developer using skills across Claude Code, Codex, Cursor, and Gemini CLI who does not want to maintain duplicate copies in every tool directory.
- A Windows user on a standard, non-elevated account — the junction fallback needs no admin rights.
- Anyone debugging why a skill is not showing up in Claude Code or Codex: skm doctor -- plus skm list --tool pinpoint the cause and skm fix repairs it.
- Someone consolidating legacy skills scattered across tool directories: preview with skm adopt --dry-run, then apply.
- Terminal power users who want to automate skill setup in dotfiles scripts.
What are this skill's strengths and limitations?
- MIT licensed, free, open source, local-first, no cloud dependency.
- Write once, symlink-sync to 32 tools — no duplicate copies to maintain.
- GUI and CLI share the same config and links, so they are interchangeable; a fully terminal-only workflow is supported.
- Designed for agent callers: documented -- contracts, dry-run/apply separation, and explicit exit-code behavior.
- Windows sync works without administrator rights via the junction fallback.
- init and adopt are idempotent; init refuses to clobber an existing unparseable config.
- Hub directory is fixed to ~/.skills-manager/skills; no CLI-supported way to change it.
- The CLI cannot create/edit/search/translate skills, enable or disable tools themselves, or add custom tools — all GUI-only.
- skm is not a standalone npm package; you must install the desktop app or download a release binary, and it is easy to confuse with the unrelated npx skills CLI.
- A tool installed after init may keep showing 'not installed' until the GUI re-detects it.
- macOS builds are ad-hoc signed but not notarized; the Linux AppImage may need WEBKIT_DISABLE_COMPOSITING_MODE=1 in some VMs.
- No test suite or independent security audit is evidenced in the source material.
How do you install this skill?
- Download the installer for your platform from https://skillsmanager.freeourdays.com/#download (macOS .dmg, Windows .msi/.exe, Linux .deb/.AppImage/.rpm), or use Homebrew: brew tap jiweiyeah/tap && brew install --cask jiweiyeah/tap/skills-manager (use the full path — Homebrew's official repo has an unrelated cask with the same token). 2. For the CLI alone, grab skm-<target>.tar.gz (.zip on Windows) from GitHub Releases, extract, and put it on PATH; or install via the app (Settings → Command Line Tool) or by running skm init. 3. The companion skill at skills/skills-manager-cli/SKILL.md is copied into the hub automatically when the CLI is installed, and is also auto-published to ClawHub on every version bump.
How do you use this skill?
For agents, this skill triggers when skills need managing from a terminal or when a skill is missing in a tool. Typical flow: skm init --; skm list -- to inspect; skm enable <skill> --for <tool> to enable; skm doctor -- then skm fix --yes -- to diagnose and repair. Agent conventions: prefer -- on init/list/doctor/fix/adopt; pass --yes on apply commands to avoid a blocking TTY prompt; doctor -- exits 0 even with issues, so gate on .issues_count; if fix --yes reports failures, read failed[].message from stdout and do not loop. The hub path is fixed at ~/.skills-manager/skills; marketplace search/install, skill authoring, translation, custom tools, and enabling/disabling tools themselves are GUI-only.