[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84161":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":29,"readmeContent":30,"aiSummary":9,"trendingCount":16,"starSnapshotCount":16,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},84161,"asm","luongnv89\u002Fasm","luongnv89","The universal skill manager for AI coding agents.",null,"https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fasm","TypeScript",537,37,6,27,0,45,52,142,8.74,false,"main",[24,25,26,27,28],"agents","ai","aiagents","coding","skills","2026-06-12 02:04:38","\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets\u002Flogo\u002Flogo-full.svg\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"assets\u002Flogo\u002Flogo-black.svg\" \u002F>\n    \u003Cimg src=\"assets\u002Flogo\u002Flogo-full.svg\" alt=\"asm\" width=\"340\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fagent-skill-manager\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fagent-skill-manager.svg\" alt=\"npm version\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fagent-skill-manager\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fagent-skill-manager.svg\" alt=\"npm downloads\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fagent-skill-manager\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fluongnv89\u002Fagent-skill-manager.svg?style=social\" alt=\"GitHub stars\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green.svg\" alt=\"MIT License\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fagent-skill-manager\u002Factions\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fagent-skill-manager\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\" alt=\"CI\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fnodejs.org\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode.js-%E2%89%A5%2018-339933.svg\" alt=\"Node.js\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">One tool to manage every AI agent's skills\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  Stop juggling skill directories across Claude Code, Codex, Cursor, Windsurf, and 10+ other AI agents.\u003Cbr\u002F>\n  \u003Cstrong>agent-skill-manager\u003C\u002Fstrong> (\u003Ccode>asm\u003C\u002Fcode>) gives you a single TUI and CLI to install, search, audit, and organize all your agent skills — everywhere.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#get-started-in-30-seconds\">\u003Cstrong>Get Started in 30 Seconds &rarr;\u003C\u002Fstrong>\u003C\u002Fa>\n  &nbsp;&nbsp;|&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fluongnv.com\u002Fasm\u002F\">\u003Cstrong>Browse 2,800+ Skills Online &rarr;\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n### 🌐 ASM Catalog — Browse Skills in Your Browser\n\nDon't want to install anything yet? **[Explore the full skill catalog online &rarr;](https:\u002F\u002Fluongnv.com\u002Fasm\u002F)**\n\nSearch, filter by category or repo, and copy install commands — all from a single page. No signup, no backend, no tracking. Share filtered views via URL (e.g. `?q=code-review&cat=development`).\n\n---\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshots\u002Ftui.png\" alt=\"agent-skill-manager TUI dashboard\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## Your AI agent skills are a mess\n\nYou use Claude Code at work, Codex for side projects, and OpenClaw for experiments. Each tool keeps skills in its own hidden directory with its own conventions. Here's what that looks like in practice:\n\n- **Skills scattered everywhere** — `~\u002F.claude\u002Fskills\u002F`, `~\u002F.codex\u002Fskills\u002F`, `~\u002F.openclaw\u002Fskills\u002F`, project-level `.claude\u002Fskills\u002F`... you have the same skill installed three times and can't remember which version is where\n- **No visibility** — there's no quick way to see what's installed, what's duplicated, or what's outdated across all your agents\n- **Installing is manual and risky** — you clone repos, copy folders, hope the SKILL.md is valid, and pray you didn't just install something that exfiltrates your codebase\n\nThe more AI agents you use, the worse this gets. Every new tool adds another skill directory to babysit.\n\n## `asm` brings order to the chaos\n\n**agent-skill-manager** is a single command that manages skills across every AI coding agent you use. One TUI. One CLI. Every agent.\n\n- **See everything at once** — List, search, and filter skills across all providers and scopes from one dashboard. No more `ls`-ing through hidden directories.\n- **Install from GitHub in one command** — `asm install github:user\u002Frepo` handles cloning, validation, and placement. Supports single-skill repos, multi-skill collections, subfolder URLs, and private repos via SSH.\n- **Catch problems before they bite** — Built-in security scanning flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before you install. Duplicate audit finds and cleans redundant skills across providers.\n- **Create, test, and publish skills** — Scaffold new skills with `asm init`, symlink them for live development with `asm link`, audit for security issues, verify metadata, and publish to the [ASM Registry](https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fasm-registry) with a single command. [See the full local dev workflow &darr;](#build-test-and-ship-your-own-skills)\n- **Works with every major agent** — 19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. Add custom providers in seconds via config.\n- **Two interfaces, one tool** — Full interactive TUI with keyboard navigation, search, and detail views. Or use the CLI with `--json` for scripting and automation.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshots\u002Fasm-stats.png\" alt=\"asm stats — skill statistics across all providers\" width=\"700\" \u002F>\n  \u003Cbr\u002F>\u003Cem>asm stats — totals, disk usage, and per-provider breakdown at a glance\u003C\u002Fem>\n\u003C\u002Fp>\n\n## How it works\n\n1. **Install `asm`** — one command via npm or curl\n2. **Run `asm`** — it auto-discovers skills across all configured agent directories\n3. **Manage everything** — install, search, inspect, audit, and uninstall skills from the TUI or CLI\n4. **Stay safe** — security scan skills before installing, detect duplicates, and clean up with confidence\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#get-started-in-30-seconds\">\u003Cstrong>Start Managing Your Skills &rarr;\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshots\u002Fasm-search-code-review.png\" alt=\"asm search — find installed and available skills\" width=\"700\" \u002F>\n  \u003Cbr\u002F>\u003Cem>asm search code-review — finds installed skills and suggests new ones from indexed repos\u003C\u002Fem>\n\u003C\u002Fp>\n\n---\n\n## Build, Test, and Ship Your Own Skills\n\n`asm` isn't just for consuming skills — it's the complete toolkit for **creating, developing, auditing, and testing skills locally** before you share them.\n\n### 1. Scaffold a new skill\n\nInteractive mode — pick a target tool:\n\n```bash\nasm init my-skill\n```\n\nScaffold directly into Claude Code:\n\n```bash\nasm init my-skill -p claude\n```\n\nScaffold in a custom directory:\n\n```bash\nasm init my-skill --path .\u002Fskills\n```\n\nThis creates a `my-skill\u002FSKILL.md` with valid YAML frontmatter and a markdown template ready to fill in.\n\n### 2. Develop with live reload via symlink\n\n`asm link` creates a symlink from your local skill directory into an agent's skill folder. Because it's a symlink, every edit you make to the source is immediately visible to the agent — no reinstall needed.\n\n#### Target a specific tool\n\n```bash\n# Link into Claude Code\nasm link .\u002Fmy-skill -p claude\n\n# Link into Codex\nasm link .\u002Fmy-skill -p codex\n\n# Interactive — pick the tool from a prompt\nasm link .\u002Fmy-skill\n```\n\n#### Link multiple skills at once\n\nPass several paths in a single command to link them all in one step:\n\n```bash\nasm link .\u002Fskill-a .\u002Fskill-b .\u002Fskill-c -p claude\n```\n\nYou can also point at a folder that contains multiple skills (each in its own subdirectory with a `SKILL.md`):\n\n```bash\n# Link every skill found inside .\u002Fmy-skills-folder\nasm link .\u002Fmy-skills-folder -p claude\n```\n\n#### Override the symlink name\n\n```bash\nasm link .\u002Fmy-skill --name my-alias -p claude\n```\n\n#### Force-overwrite an existing symlink\n\n```bash\nasm link .\u002Fmy-skill -p claude --force\n```\n\nEdit the source files — changes are reflected immediately in the agent. This is the fastest iteration loop for skill development.\n\n### 3. Audit your skill for security issues\n\nAudit an installed skill by name:\n\n```bash\nasm audit security my-skill\n```\n\nAudit a local directory:\n\n```bash\nasm audit security .\u002Fpath\u002Fto\u002Fmy-skill\n```\n\nAudit every installed skill:\n\n```bash\nasm audit security --all\n```\n\nThe security scanner flags dangerous patterns — shell execution, network access, credential exposure, obfuscation, and external URLs — so you can catch problems before users install your skill.\n\n### 4. Inspect and verify metadata\n\nCheck name, version, description, file count:\n\n```bash\nasm inspect my-skill\n```\n\nMachine-readable output for CI:\n\n```bash\nasm inspect my-skill --json\n```\n\n### 5. Test the install flow locally\n\nOnce your skill is on GitHub, verify that end users can install it cleanly.\n\nInstall your own skill as a user would:\n\n```bash\nasm install github:you\u002Fawesome-skill\n```\n\nInstall to a specific tool:\n\n```bash\nasm install github:you\u002Fawesome-skill -p claude\n```\n\nInstall a specific skill from a multi-skill repo:\n\n```bash\nasm install github:you\u002Fskills --path skills\u002Fawesome-skill\n```\n\nForce reinstall to test upgrades:\n\n```bash\nasm install github:you\u002Fawesome-skill --force\n```\n\nNon-interactive install (useful for CI):\n\n```bash\nasm install github:you\u002Fawesome-skill -p claude --yes --json\n```\n\nThis catches issues that local development misses — broken repo structure, missing files, invalid frontmatter in a clean install context.\n\n### 6. Publish to the ASM Registry\n\nOnce your skill is ready and on GitHub, submit it to the [ASM Registry](https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fasm-registry) so anyone can install it by name:\n\n```bash\nasm publish .\u002Fmy-skill\n```\n\nThis runs a security audit, generates a signed manifest, forks the registry, and opens a pull request automatically. Once merged, your skill is globally discoverable:\n\n```bash\n# Anyone can install it by name — no URL needed\nasm install my-skill\n```\n\nPreview what the manifest will look like before submitting:\n\n```bash\nasm publish --dry-run .\u002Fmy-skill\n```\n\nOverride security warnings (caution: review findings first):\n\n```bash\nasm publish --force .\u002Fmy-skill\n```\n\nSkip confirmation in CI:\n\n```bash\nasm publish --yes .\u002Fmy-skill\n```\n\n> **Requires:** [`gh` CLI](https:\u002F\u002Fcli.github.com) authenticated with `gh auth login`. The publish command uses `gh` to fork the registry, create a branch, write the manifest, and open the PR — all without leaving your terminal.\n\n### Typical local development workflow\n\n1. **Scaffold** — `asm init awesome-skill -p claude`\n2. Edit your `SKILL.md`\n3. **Link for live testing** — `asm link .\u002Fawesome-skill -p claude`\n4. Test with your AI agent\n5. **Security audit** — `asm audit security awesome-skill`\n6. **Verify metadata** — `asm inspect awesome-skill`\n7. **Score quality** — `asm eval .\u002Fawesome-skill`\n8. Push to GitHub\n9. **Verify install flow** — `asm install github:you\u002Fawesome-skill`\n10. **Publish to registry** — `asm publish .\u002Fawesome-skill`\n\nWhether you're building skills for yourself or publishing them for the community, `asm` gives you the full create → develop → audit → ship pipeline in one tool.\n\n---\n\n## Skill Verification\n\nSkills indexed by `asm` are automatically evaluated against a set of verification criteria. Skills that pass all criteria receive a **verified** badge in the catalog and `\"verified\": true` in the index JSON. Skills that fail any criterion are still indexed but marked as unverified.\n\n### Verification Criteria\n\nA skill must satisfy **all four** of the following to be verified:\n\n1. **Valid frontmatter** -- The SKILL.md file must contain YAML frontmatter with both a `name` and a `description` field. Empty or whitespace-only values fail this check.\n\n2. **Meaningful body content** -- The markdown body (everything after the frontmatter block) must contain at least 20 characters of instruction text. A SKILL.md that is only frontmatter with no real guidance for the agent will fail.\n\n3. **No malicious patterns** -- The full SKILL.md content is scanned for dangerous code patterns:\n   - `atob()` calls (runtime base64 decoding \u002F obfuscation)\n   - Suspicious base64-encoded strings (40+ character base64 blocks with padding)\n   - Hex-escape sequences (4+ consecutive `\\xNN` escapes)\n   - Hardcoded credentials (`API_KEY`, `SECRET_KEY`, or `PASSWORD` assignments)\n\n4. **Proper structure** -- The skill directory must exist and contain a `SKILL.md` file that the ingestion pipeline can read.\n\n### How to Reproduce Locally\n\nYou can verify your skill before publishing:\n\n```bash\n# Index your repo -- verification runs automatically during ingestion\nasm index ingest github:your-user\u002Fyour-repo\n\n# Check the output JSON for the verified field\nasm index search \"your-skill\" --json\n```\n\nEach indexed skill in the output JSON includes `\"verified\": true` or `\"verified\": false`. If verification fails, the ingestion debug log (set `ASM_DEBUG=1`) prints the specific reasons.\n\n### Quality Evaluation (`asm eval`)\n\nStatic verification tells you the SKILL.md is well-formed. `asm eval` goes further: the built-in `quality` provider runs a scored rubric over structure, frontmatter, clarity, prompt engineering, context efficiency, safety, testability, and naming — and emits per-category scores plus concrete suggestions for improvement. Zero setup, zero API keys, zero external binaries.\n\n```bash\n# Score the skill and print recommendations\nasm eval .\u002Fmy-skill\n\n# CI-friendly machine-readable output\nasm eval .\u002Fmy-skill --machine\n\n# Apply deterministic auto-fixes to SKILL.md\nasm eval .\u002Fmy-skill --fix\n\n# List registered eval providers\nasm eval-providers list\n```\n\nThe eval surface is a pluggable provider framework: each provider implements a common `EvalProvider` contract and resolves via semver range. See [`docs\u002Feval-providers.md`](.\u002Fdocs\u002Feval-providers.md) for the provider model.\n\n---\n\n## ASM Registry — Install and Publish Skills by Name\n\nThe [ASM Registry](https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fasm-registry) is the curated index of community-published skills. Once a skill is listed, anyone can install it by name — no GitHub URL needed.\n\n### Install from the registry\n\n```bash\n# Install by bare name (searches the registry)\nasm install code-review\n\n# Install by scoped name (author\u002Fskill — always unambiguous)\nasm install luongnv89\u002Fcode-review\n\n# Force a fresh registry fetch (bypasses the 1-hour cache)\nasm install code-review --no-cache\n```\n\n`asm install` resolves the name against the registry index, downloads the manifest, clones the exact pinned commit, and installs the skill to your agent.\n\n### Publish your skill to the registry\n\n```bash\nasm publish .\u002Fmy-skill\n```\n\nThe publish pipeline:\n\n1. **Validates** your `SKILL.md` frontmatter (name, description, version)\n2. **Security audit** — blocks dangerous skills automatically; warns on risky patterns\n3. **Generates a manifest** with the current commit SHA and a `skill_path` for multi-skill repos\n4. **Opens a PR** against [luongnv89\u002Fasm-registry](https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fasm-registry) via the `gh` CLI\n\nThe registry CI validates schema, checks author identity, runs a duplicate check, typosquat detection, and an independent security scan before any maintainer reviews. Once merged, the index rebuilds automatically and your skill is live.\n\n| Flag        | Description                                |\n| ----------- | ------------------------------------------ |\n| `--dry-run` | Preview the manifest without creating a PR |\n| `--force`   | Override warning-level security findings   |\n| `--yes`     | Skip the confirmation prompt               |\n| `--machine` | Output as a machine-readable JSON envelope |\n\n### How registry resolution works\n\nWhen you run `asm install code-review`:\n\n1. `asm` fetches the registry index (cached for 1 hour at `~\u002F.config\u002Fagent-skill-manager\u002Fregistry-cache.json`)\n2. Finds the manifest for `code-review` — including the pinned `commit` and `skill_path`\n3. Clones the repository at that exact commit and navigates to the skill subdirectory\n4. Installs as if you had run `asm install github:author\u002Frepo#commit:skill_path`\n\nIf multiple authors publish a skill with the same name, `asm` shows a disambiguation prompt. Use a scoped name (`author\u002Fskill`) to skip it.\n\n---\n\n## Get Started in 30 Seconds\n\n### npm (recommended)\n\n```bash\nnpm install -g agent-skill-manager\n```\n\n> Runs on **Node.js ≥ 18** for both the CLI and the interactive TUI. No other runtime required.\n\n### One-liner install\n\n```bash\ncurl -sSL https:\u002F\u002Fraw.githubusercontent.com\u002Fluongnv89\u002Fagent-skill-manager\u002Fmain\u002Finstall.sh | bash\n```\n\nThis installs `agent-skill-manager` globally. Then just run:\n\n```bash\nasm\n```\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#cli-commands\">\u003Cstrong>See All Commands &rarr;\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ca id=\"troubleshooting\">\u003C\u002Fa>\n\n### Shadowed installs\n\nIf you have multiple `asm` binaries on `PATH` (for example, a leftover install from an older package manager), shells resolve whichever appears first and a fresh upgrade can be silently shadowed.\n\n**Diagnose:** `asm --version` detects and warns when it sees multiple `asm` binaries on `PATH`. For a full report, run `asm doctor` — it lists the resolved path and any shadowed installs.\n\n**Fix:** remove the stale install with your package manager, then re-run `asm --version` to confirm only one binary is left.\n\n---\n\n## Open-Source Skill Collections\n\nA curated list of skill repositories you can install with a single command. Over **2,800 skills** available across these collections:\n\n> **Last updated:** 2026-03-28\n\n| Repository                                                                          | Description                                                         |  Stars | Skills |\n| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------- | -----: | -----: |\n| [anthropic-skills](https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills)                            | Official Agent Skills from Anthropic                                | 95,957 |     18 |\n| [superpowers](https:\u002F\u002Fgithub.com\u002Fobra\u002Fsuperpowers)                                  | Agentic skills framework & development methodology                  | 89,816 |     14 |\n| [everything-claude-code](https:\u002F\u002Fgithub.com\u002Faffaan-m\u002Feverything-claude-code)        | Performance optimization system for Claude Code, Codex, and beyond  | 81,392 |    183 |\n| [agency-agents](https:\u002F\u002Fgithub.com\u002Fmsitarzewski\u002Fagency-agents)                      | Specialized expert agents with personality and proven deliverables  | 50,749 |      — |\n| [ui-ux-pro-max-skill](https:\u002F\u002Fgithub.com\u002Fnextlevelbuilder\u002Fui-ux-pro-max-skill)      | Design intelligence for building professional UI\u002FUX                 | 43,112 |      7 |\n| [antigravity-awesome-skills](https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills) | 1,000+ battle-tested skills for Claude Code, Cursor, and more       | 25,047 |  1,322 |\n| [marketingskills](https:\u002F\u002Fgithub.com\u002Fcoreyhaines31\u002Fmarketingskills)                 | Marketing skills — CRO, copywriting, SEO, analytics, growth         | 14,099 |     33 |\n| [agentskills](https:\u002F\u002Fgithub.com\u002Fagentskills\u002Fagentskills)                           | Specification and documentation for Agent Skills                    | 13,342 |      — |\n| [claude-skills](https:\u002F\u002Fgithub.com\u002Falirezarezvani\u002Fclaude-skills)                    | 192 skills for engineering, marketing, product, compliance, C-level |  7,434 |    451 |\n| [taste-skill](https:\u002F\u002Fgithub.com\u002FLeonxlnx\u002Ftaste-skill)                              | Gives your AI good taste — stops generic, boring output             |  3,389 |      7 |\n| [affiliate-skills](https:\u002F\u002Fgithub.com\u002FAffitor\u002Faffiliate-skills)                     | Full affiliate marketing funnel: research to deploy                 |     99 |     48 |\n| [skills](https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fskills)                                       | Reusable skills to supercharge your AI agents                       |      1 |     35 |\n\nInstall any collection with an interactive picker:\n\n```bash\nasm install github:anthropics\u002Fskills\n```\n\nOr install everything at once:\n\n```bash\nasm install github:anthropics\u002Fskills --all\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshots\u002Fasm-inspect-oss-ready.png\" alt=\"asm inspect — detailed skill information\" width=\"700\" \u002F>\n  \u003Cbr\u002F>\u003Cem>asm inspect oss-ready — version, creator, and every tool installation at once\u003C\u002Fem>\n\u003C\u002Fp>\n\n---\n\n## Supported Agent Tools\n\n`asm` ships with **19 built-in providers**, all enabled by default. Disable any you don't need via `asm config edit`.\n\n| Tool               | Global Path                       | Project Path            | Default |\n| ------------------ | --------------------------------- | ----------------------- | :-----: |\n| Claude Code        | `~\u002F.claude\u002Fskills\u002F`               | `.claude\u002Fskills\u002F`       | enabled |\n| Codex              | `~\u002F.codex\u002Fskills\u002F`                | `.codex\u002Fskills\u002F`        | enabled |\n| OpenClaw           | `~\u002F.openclaw\u002Fskills\u002F`             | `.openclaw\u002Fskills\u002F`     | enabled |\n| Agents (generic)   | `~\u002F.agents\u002Fskills\u002F`               | `.agents\u002Fskills\u002F`       | enabled |\n| Cursor             | `~\u002F.cursor\u002Frules\u002F`                | `.cursor\u002Frules\u002F`        | enabled |\n| Windsurf           | `~\u002F.windsurf\u002Frules\u002F`              | `.windsurf\u002Frules\u002F`      | enabled |\n| Cline              | `~\u002FDocuments\u002FCline\u002FRules\u002F`        | `.clinerules\u002F`          | enabled |\n| Roo Code           | `~\u002F.roo\u002Frules\u002F`                   | `.roo\u002Frules\u002F`           | enabled |\n| Continue           | `~\u002F.continue\u002Frules\u002F`              | `.continue\u002Frules\u002F`      | enabled |\n| GitHub Copilot     | `~\u002F.github\u002Finstructions\u002F`         | `.github\u002Finstructions\u002F` | enabled |\n| Aider              | `~\u002F.aider\u002Fskills\u002F`                | `.aider\u002Fskills\u002F`        | enabled |\n| OpenCode           | `~\u002F.config\u002Fopencode\u002Fskills\u002F`      | `.opencode\u002Fskills\u002F`     | enabled |\n| Zed                | `~\u002F.config\u002Fzed\u002Fprompt_overrides\u002F` | `.zed\u002Frules\u002F`           | enabled |\n| Augment            | `~\u002F.augment\u002Frules\u002F`               | `.augment\u002Frules\u002F`       | enabled |\n| Amp                | `~\u002F.amp\u002Fskills\u002F`                  | `.amp\u002Fskills\u002F`          | enabled |\n| Gemini CLI         | `~\u002F.gemini\u002Fskills\u002F`               | `.gemini\u002Fskills\u002F`       | enabled |\n| Google Antigravity | `~\u002F.antigravity\u002Fskills\u002F`          | `.antigravity\u002Fskills\u002F`  | enabled |\n| Pi                 | `~\u002F.pi\u002Fskills\u002F`                   | `.pi\u002Fskills\u002F`           | enabled |\n| Hermes             | `~\u002F.hermes\u002Fskills\u002F`               | `.hermes\u002Fskills\u002F`       | enabled |\n\nDisable a provider — opens config in `$EDITOR`, set `\"enabled\": false` for any provider:\n\n```bash\nasm config edit\n```\n\nNeed a tool not listed? Add a custom provider entry to the config.\n\n---\n\n## FAQ\n\n**Is it free?**\nYes. `asm` is MIT licensed and free forever. No accounts, no telemetry, no paywalls.\n\n**Is it actively maintained?**\nYes — actively developed with frequent tagged releases (46 and counting, latest v2.11.0). Check the [changelog](docs\u002FCHANGELOG.md) for the full history.\n\n**Which AI agents does it support?**\n19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. All 19 are enabled by default; disable any you don't need via `asm config edit`. You can also add any custom agent that stores skills as directories with a `SKILL.md` file.\n\n**How does it compare to managing skills manually?**\nManual management means remembering where each agent stores skills, cloning repos by hand, checking for duplicates yourself, and having no security scanning. `asm` automates all of that with one command.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshots\u002Fasm-audit.png\" alt=\"asm audit — duplicate detection across providers\" width=\"700\" \u002F>\n  \u003Cbr\u002F>\u003Cem>asm audit — finds duplicate groups and tells you exactly which to keep\u003C\u002Fem>\n\u003C\u002Fp>\n\n**Can I use it with private repos?**\nYes. Use `--transport ssh` or `--transport auto` to clone private repos via SSH.\n\n**Is it safe to install skills from GitHub?**\n`asm` includes built-in security scanning that flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before installation. Run `asm audit security github:user\u002Frepo` to scan any skill before installing.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshots\u002Fasm-audit-security-oss-ready.png\" alt=\"asm audit security — security scanning report\" width=\"700\" \u002F>\n  \u003Cbr\u002F>\u003Cem>asm audit security oss-ready — flags external URLs, shell execution, and credential access\u003C\u002Fem>\n\u003C\u002Fp>\n\n**What's the SKILL.md format?**\nEvery skill is a directory containing a `SKILL.md` file with YAML frontmatter (name, description, version) followed by markdown instructions the AI agent loads at runtime. Run `asm init my-skill` to scaffold one.\n\n---\n\n## Start Managing Your Skills Today\n\nYou're already using AI agents. You're already installing skills. The only question is whether you keep doing it manually — or let `asm` handle it.\n\nMIT licensed. Free forever. One install command.\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#get-started-in-30-seconds\">\u003Cstrong>Install agent-skill-manager &rarr;\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>CLI Commands\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### Interactive TUI\n\n```bash\nasm\n```\n\n### Commands\n\n| Command                         | Description                                           |\n| ------------------------------- | ----------------------------------------------------- |\n| `asm list`                      | List all discovered skills                            |\n| `asm search \u003Cquery>`            | Search by name\u002Fdescription\u002Fprovider                   |\n| `asm inspect \u003Cskill-name>`      | Show detailed info for a skill                        |\n| `asm install \u003Csource>`          | Install a skill from GitHub or the registry           |\n| `asm publish [path]`            | Publish a skill to the ASM Registry                   |\n| `asm uninstall \u003Cskill-name>`    | Remove a skill (with confirmation)                    |\n| `asm init \u003Cname>`               | Scaffold a new skill with SKILL.md template           |\n| `asm link \u003Cpath> [\u003Cpath2> ...]` | Symlink one or more local skills for live development |\n| `asm audit`                     | Detect duplicate skills                               |\n| `asm audit security \u003Cname>`     | Run security audit on a skill                         |\n| `asm eval \u003Cskill>`              | Score a skill and print improvement suggestions       |\n| `asm eval-providers list`       | List registered eval providers and versions           |\n| `asm stats`                     | Show aggregate skill metrics dashboard                |\n| `asm export`                    | Export skill inventory as JSON manifest               |\n| `asm index ingest \u003Crepo>`       | Index a skill repo for searching                      |\n| `asm index search \u003Cquery>`      | Search indexed skills                                 |\n| `asm index list`                | List indexed repositories                             |\n| `asm index remove \u003Cowner\u002Frepo>` | Remove a repo from the index                          |\n| `asm bundle list`               | List saved or pre-defined bundles (`--predefined`)    |\n| `asm bundle install \u003Cname>`     | Install every skill in a bundle in one pass           |\n| `asm bundle create \u003Cname>`      | Create a bundle from installed skills                 |\n| `asm bundle show \u003Cname>`        | Show bundle details and skill list                    |\n| `asm bundle modify \u003Cname>`      | Add\u002Fremove skills or update bundle metadata           |\n| `asm bundle export \u003Cname>`      | Export a bundle to a JSON file                        |\n| `asm bundle remove \u003Cname>`      | Remove a saved bundle                                 |\n| `asm config show`               | Print current config                                  |\n| `asm config path`               | Print config file path                                |\n| `asm config reset`              | Reset config to defaults                              |\n| `asm config edit`               | Open config in $EDITOR                                |\n\n### Global Options\n\n```text\n-h, --help             Show help for any command\n-v, --version          Print version and exit\n--json                 Output as JSON (list, search, inspect, audit)\n-s, --scope \u003Cscope>    Filter: global, project, or both (default: both)\n--sort \u003Cfield>         Sort by: name, version, or location (default: name)\n-y, --yes              Skip confirmation prompts\n--no-color             Disable ANSI colors\n```\n\n### Examples\n\nList all global skills sorted by provider location:\n\n```bash\nasm list --scope global --sort location\n```\n\nWhen you have many skills installed, `asm list` offers condensed views:\n\n```bash\nasm list --summary            # counts by tool\u002Fscope\u002Feffort only\nasm list --compact            # one line per skill\nasm list --group-by tool      # group rows under tool headers\nasm list --limit 20           # show only the first 20 rows\n```\n\nSearch for skills and output JSON:\n\n```bash\nasm search \"code review\" --json\n```\n\nInspect a specific skill:\n\n```bash\nasm inspect my-skill\n```\n\nRemove duplicates automatically:\n\n```bash\nasm audit --yes\n```\n\nSecurity audit a skill before installing:\n\n```bash\nasm audit security github:user\u002Frepo\n```\n\nAudit all installed skills:\n\n```bash\nasm audit security --all\n```\n\nScore a skill with the static quality provider:\n\n```bash\nasm eval .\u002Fmy-skill\n```\n\nList registered eval providers:\n\n```bash\nasm eval-providers list\n```\n\nScaffold a skill, link it for live testing, audit, and inspect:\n\n```bash\nasm init my-skill -p claude\n```\n\n```bash\n# Link globally (available in all projects)\nasm link .\u002Fmy-skill -p claude\n\n# Link multiple skills at once\nasm link .\u002Fskill-a .\u002Fskill-b -p claude\n```\n\n```bash\nasm audit security my-skill\n```\n\n```bash\nasm inspect my-skill --json\n```\n\nUninstall without confirmation:\n\n```bash\nasm uninstall old-skill --yes\n```\n\nIndex a skill repo and search it:\n\n```bash\nasm index ingest github:anthropics\u002Fskills\n```\n\n```bash\nasm index search \"frontend design\" --json\n```\n\n**Skill bundles** — install a curated set of skills in one command. Pre-defined bundles ship with ASM for common workflows (frontend, devops, iOS release, content writing). Browse them at [luongnv.com\u002Fasm\u002Fbundles](https:\u002F\u002Fluongnv.com\u002Fasm\u002Fbundles\u002F) or list them locally:\n\n```bash\nasm bundle list --predefined\n```\n\nInstall every skill in a pre-defined bundle:\n\n```bash\nasm bundle install frontend-dev\n```\n\nInstall from a bundle file (custom or shared):\n\n```bash\nasm bundle install .\u002Fmy-bundle.json\n```\n\nBuild a custom bundle from your installed skills, then export it to share:\n\n```bash\nasm bundle create my-workflow\nasm bundle export my-workflow .\u002Fmy-workflow.json\n```\n\nA bundle is a JSON file with a `name`, `description`, `author`, and a list of `skills` (each with `name` + `installUrl`). The schema is validated on install — see `src\u002Futils\u002Ftypes.ts` (`BundleManifest`). You can also assemble a custom bundle visually on the website's [\u002Fbundles](https:\u002F\u002Fluongnv.com\u002Fasm\u002Fbundles\u002F) page and export it as JSON.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Installing Skills from GitHub\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nInstall skills directly from GitHub repositories — supports both single-skill repos and multi-skill collections.\n\n**Single-skill repo** (SKILL.md at root):\n\n```bash\nasm install github:user\u002Fmy-skill\n```\n\n```bash\nasm install github:user\u002Fmy-skill#v1.0.0 -p claude\n```\n\n**Multi-skill repo** (skills in subdirectories):\n\n```bash\nasm install github:user\u002Fskills --path skills\u002Fcode-review\n```\n\n```bash\nasm install github:user\u002Fskills --all -p claude -y\n```\n\nInteractive picker:\n\n```bash\nasm install github:user\u002Fskills\n```\n\n**Subfolder URL** (auto-detects branch and path):\n\n```bash\nasm install https:\u002F\u002Fgithub.com\u002Fuser\u002Fskills\u002Ftree\u002Fmain\u002Fskills\u002Fagent-config\n```\n\n```bash\nasm install github:user\u002Fskills#main:skills\u002Fagent-config\n```\n\n**Private repos** (SSH transport):\n\n```bash\nasm install github:user\u002Fprivate-skill --transport ssh\n```\n\nTry HTTPS, fallback to SSH:\n\n```bash\nasm install github:user\u002Fprivate-skill -t auto\n```\n\n**Vercel skills CLI** (delegates to `npx skills add`, then registers in asm):\n\n```bash\nasm install github:user\u002Fskills --method vercel --skill my-skill\n```\n\n```bash\nasm install https:\u002F\u002Fgithub.com\u002Fuser\u002Fskills -m vercel --skill my-skill -y\n```\n\n**Other options:**\n\n```bash\nasm install github:user\u002Fmy-skill --name custom-name\n```\n\n```bash\nasm install github:user\u002Fmy-skill --force\n```\n\n```bash\nasm install github:user\u002Fmy-skill -p claude --yes --json\n```\n\n**Source format:** `github:owner\u002Frepo[#branch-or-tag]` or `github:owner\u002Frepo#ref:path` for subfolder installs. HTTPS GitHub URLs with `\u002Ftree\u002F` paths are also supported — the branch and subfolder are auto-detected.\n\n**Install flags:**\n\n| Flag                     | Description                                                |\n| ------------------------ | ---------------------------------------------------------- |\n| `-p, --tool \u003Cname>`      | Target tool (claude, codex, cursor, windsurf, etc.)        |\n| `--name \u003Cname>`          | Override skill directory name                              |\n| `--path \u003Csubdir>`        | Install a specific skill from a subdirectory               |\n| `--all`                  | Install all skills found in the repo                       |\n| `-m, --method \u003Cmethod>`  | Install method: `default` or `vercel` (default: `default`) |\n| `--skill \u003Cname>`         | Alias for `--path` (Vercel skills CLI compatibility)       |\n| `-t, --transport \u003Cmode>` | Transport: `https`, `ssh`, or `auto` (default: `auto`)     |\n| `-f, --force`            | Overwrite if skill already exists                          |\n| `-y, --yes`              | Skip confirmation prompt                                   |\n| `--json`                 | Output result as JSON                                      |\n\n**Multi-skill repo support:** When a repo doesn't have `SKILL.md` at the root, `asm` automatically scans for skills in subdirectories (up to 5 levels deep). In interactive mode, it presents a numbered picker. Use `--path` to target a specific skill or `--all` to batch-install everything.\n\nThe install command clones the repository, validates `SKILL.md` files, scans for security warnings, previews skill metadata, and installs to the selected provider's global skill directory. Requires `git` on PATH.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>TUI Keyboard Shortcuts\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Key            | Action                                |\n| -------------- | ------------------------------------- |\n| `↑\u002F↓` or `j\u002Fk` | Navigate skill list                   |\n| `Enter`        | View skill details                    |\n| `d`            | Uninstall selected skill              |\n| `\u002F`            | Search \u002F filter skills                |\n| `Esc`          | Back \u002F clear filter \u002F close dialog    |\n| `Tab`          | Cycle scope: Global → Project → Both  |\n| `s`            | Cycle sort: Name → Version → Location |\n| `r`            | Refresh \u002F rescan skills               |\n| `c`            | Open configuration                    |\n| `a`            | Audit duplicates                      |\n| `q`            | Quit                                  |\n| `?`            | Toggle help overlay                   |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Configuration\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nOn first run, a config file is created at `~\u002F.config\u002Fagent-skill-manager\u002Fconfig.json` with 19 default providers, all enabled:\n\n```json\n{\n  \"version\": 1,\n  \"providers\": [\n    {\n      \"name\": \"claude\",\n      \"label\": \"Claude Code\",\n      \"global\": \"~\u002F.claude\u002Fskills\",\n      \"project\": \".claude\u002Fskills\",\n      \"enabled\": true\n    },\n    {\n      \"name\": \"codex\",\n      \"label\": \"Codex\",\n      \"global\": \"~\u002F.codex\u002Fskills\",\n      \"project\": \".codex\u002Fskills\",\n      \"enabled\": true\n    },\n    {\n      \"name\": \"openclaw\",\n      \"label\": \"OpenClaw\",\n      \"global\": \"~\u002F.openclaw\u002Fskills\",\n      \"project\": \".openclaw\u002Fskills\",\n      \"enabled\": true\n    },\n    {\n      \"name\": \"agents\",\n      \"label\": \"Agents\",\n      \"global\": \"~\u002F.agents\u002Fskills\",\n      \"project\": \".agents\u002Fskills\",\n      \"enabled\": true\n    },\n    {\n      \"name\": \"cursor\",\n      \"label\": \"Cursor\",\n      \"global\": \"~\u002F.cursor\u002Frules\",\n      \"project\": \".cursor\u002Frules\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"windsurf\",\n      \"label\": \"Windsurf\",\n      \"global\": \"~\u002F.windsurf\u002Frules\",\n      \"project\": \".windsurf\u002Frules\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"cline\",\n      \"label\": \"Cline\",\n      \"global\": \"~\u002FDocuments\u002FCline\u002FRules\",\n      \"project\": \".clinerules\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"roocode\",\n      \"label\": \"Roo Code\",\n      \"global\": \"~\u002F.roo\u002Frules\",\n      \"project\": \".roo\u002Frules\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"continue\",\n      \"label\": \"Continue\",\n      \"global\": \"~\u002F.continue\u002Frules\",\n      \"project\": \".continue\u002Frules\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"copilot\",\n      \"label\": \"GitHub Copilot\",\n      \"global\": \"~\u002F.github\u002Finstructions\",\n      \"project\": \".github\u002Finstructions\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"aider\",\n      \"label\": \"Aider\",\n      \"global\": \"~\u002F.aider\u002Fskills\",\n      \"project\": \".aider\u002Fskills\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"opencode\",\n      \"label\": \"OpenCode\",\n      \"global\": \"~\u002F.config\u002Fopencode\u002Fskills\",\n      \"project\": \".opencode\u002Fskills\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"zed\",\n      \"label\": \"Zed\",\n      \"global\": \"~\u002F.config\u002Fzed\u002Fprompt_overrides\",\n      \"project\": \".zed\u002Frules\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"augment\",\n      \"label\": \"Augment\",\n      \"global\": \"~\u002F.augment\u002Frules\",\n      \"project\": \".augment\u002Frules\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"amp\",\n      \"label\": \"Amp\",\n      \"global\": \"~\u002F.amp\u002Fskills\",\n      \"project\": \".amp\u002Fskills\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"gemini\",\n      \"label\": \"Gemini CLI\",\n      \"global\": \"~\u002F.gemini\u002Fskills\",\n      \"project\": \".gemini\u002Fskills\",\n      \"enabled\": false\n    },\n    {\n      \"name\": \"antigravity\",\n      \"label\": \"Google Antigravity\",\n      \"global\": \"~\u002F.antigravity\u002Fskills\",\n      \"project\": \".antigravity\u002Fskills\",\n      \"enabled\": false\n    }\n  ],\n  \"customPaths\": [],\n  \"preferences\": {\n    \"defaultScope\": \"both\",\n    \"defaultSort\": \"name\"\n  }\n}\n```\n\n- **Enable providers** — Set `\"enabled\": true` to start scanning a provider\n- **Custom paths** — Add arbitrary directories via `customPaths`\n- **Disable providers** — Set `\"enabled\": false` to skip scanning a provider\n- **Preferences** — Set default scope and sort order\n\nManage config from the CLI (`asm config show|path|reset|edit`) or toggle providers in the TUI by pressing `c`.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>SKILL.md Format\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nEvery skill is a directory containing a `SKILL.md` file. The file starts with a YAML frontmatter block followed by markdown instructions that the AI agent loads at runtime.\n\n### Frontmatter\n\n```yaml\n---\nname: my-skill\ndescription: \"A short description of what this skill does\"\nlicense: \"MIT\"\ncompatibility: \"Claude Code, Codex\"\nallowed-tools: Bash Read Grep Glob WebFetch\neffort: medium\nmetadata:\n  version: 1.0.0\n  creator: \"Your Name \u003Cyou@example.com>\"\n---\n```\n\n| Field              | Required | Description                                         |\n| ------------------ | :------: | --------------------------------------------------- |\n| `name`             |   yes    | Unique skill identifier (used in list\u002Fsearch)       |\n| `description`      |   yes    | One-line summary shown in listings                  |\n| `license`          |    no    | SPDX license identifier (e.g., `MIT`, `Apache-2.0`) |\n| `compatibility`    |    no    | Comma-separated list of compatible AI agents        |\n| `allowed-tools`    |    no    | Space or comma-delimited tool names the skill uses  |\n| `effort`           |    no    | Effort level: `low`, `medium`, `high`, or `max`     |\n| `metadata.version` |    no    | Semver version string (defaults to `0.0.0`)         |\n| `metadata.creator` |    no    | Author name and optional email                      |\n\n> **Version resolution:** `asm` prefers `metadata.version` over a top-level `version` field. If neither is present, the version defaults to `0.0.0`. Both formats are supported for backward compatibility.\n\n### Body\n\nThe markdown body after the frontmatter is loaded by the AI agent as the skill's instructions. A typical structure:\n\n```markdown\n# my-skill\n\nDescribe what this skill does here.\n\n## When to Use\n\n- Trigger conditions for this skill\n\n## Instructions\n\n- Step-by-step instructions for the agent\n```\n\n### Scaffold a new skill\n\nCreates `my-skill\u002FSKILL.md` in the default provider:\n\n```bash\nasm init my-skill\n```\n\nCreates in Claude Code's skill directory:\n\n```bash\nasm init my-skill -p claude\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>From Source\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fagent-skill-manager.git\ncd agent-skill-manager\nnpm install\n```\n\nBundle to `dist\u002F`:\n\n```bash\nnpm run build\n```\n\nRun from source (development):\n\n```bash\nnpm start\n```\n\n### Advanced Install\n\nDownload and inspect the install script before running:\n\n```bash\ncurl -sSL https:\u002F\u002Fraw.githubusercontent.com\u002Fluongnv89\u002Fagent-skill-manager\u002Fmain\u002Finstall.sh -o install.sh\n```\n\n```bash\nless install.sh\n```\n\n```bash\nbash install.sh\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Project Structure\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```text\nagent-skill-manager\u002F\n├── bin\u002F                       # CLI entry point (source)\n│   └── agent-skill-manager.ts\n├── dist\u002F                      # Built bundle (npm package ships this)\n│   └── agent-skill-manager.js\n├── scripts\u002F\n│   └── build.ts               # Build script with version injection\n├── src\u002F\n│   ├── index.tsx              # TUI app bootstrap & keyboard handling (ink)\n│   ├── cli.ts                 # CLI command parser & dispatcher\n│   ├── config.ts              # Config loading & saving\n│   ├── scanner.ts             # Skill directory scanning & filtering\n│   ├── auditor.ts             # Duplicate detection & reporting\n│   ├── installer.ts           # GitHub skill installation pipeline\n│   ├── uninstaller.ts         # Safe skill removal logic\n│   ├── formatter.ts           # Output formatting (tables, detail, JSON)\n│   ├── utils\u002F\n│   │   ├── types.ts           # Shared TypeScript types\n│   │   ├── colors.ts          # TUI color palette\n│   │   ├── version.ts         # Version constant\n│   │   ├── frontmatter.ts     # SKILL.md frontmatter parser\n│   │   └── editor.ts          # $EDITOR command parser\n│   └── views\u002F\n│       ├── dashboard.tsx      # Main dashboard layout\n│       ├── skill-list.tsx     # Scrollable skill list\n│       ├── skill-detail.tsx   # Skill detail view\n│       ├── confirm.tsx        # Uninstall confirmation dialog\n│       ├── duplicates.tsx     # Duplicate audit view\n│       ├── config.tsx         # In-TUI config editor\n│       └── help.tsx           # Help view\n├── docs\u002F                      # Extended documentation\n│   ├── ARCHITECTURE.md        # System design & data flow\n│   ├── DEVELOPMENT.md         # Local setup & debugging\n│   ├── DEPLOYMENT.md          # Publishing & CI pipeline\n│   ├── CHANGELOG.md           # Version history\n│   └── brand_kit.md           # Logo, colors, typography\n├── assets\u002F\n│   ├── logo\u002F                  # SVG logos (full, mark, wordmark, icon, favicon)\n│   └── screenshots\u002F           # TUI screenshots\n├── install.sh                 # One-command installer (curl | bash)\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Tech Stack\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n- **Runtime:** Node.js ≥ 18 (CLI and TUI both run on Node alone)\n- **Language:** TypeScript + TSX (ESNext, strict mode)\n- **Build:** esbuild (ships pre-built via npm)\n- **TUI Framework:** [Ink](https:\u002F\u002Fgithub.com\u002Fvadimdemedes\u002Fink) + [@inkjs\u002Fui](https:\u002F\u002Fgithub.com\u002Fvadimdemedes\u002Fink-ui)\n- **Testing:** Vitest (+ ink-testing-library for TUI)\n- **CI:** GitHub Actions + pre-commit hooks\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Documentation\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Document                                 | Description                                        |\n| ---------------------------------------- | -------------------------------------------------- |\n| [Architecture](docs\u002FARCHITECTURE.md)     | System design, components, and data flow           |\n| [Eval Providers](docs\u002Feval-providers.md) | Pluggable eval framework and how to add a provider |\n| [Development](docs\u002FDEVELOPMENT.md)       | Local setup, testing, and debugging                |\n| [Deployment](docs\u002FDEPLOYMENT.md)         | Publishing and CI pipeline                         |\n| [Changelog](docs\u002FCHANGELOG.md)           | Version history                                    |\n| [Brand Kit](docs\u002Fbrand_kit.md)           | Logo, colors, and typography                       |\n| [Contributing](CONTRIBUTING.md)          | How to contribute                                  |\n| [Security](SECURITY.md)                  | Vulnerability reporting                            |\n| [Code of Conduct](CODE_OF_CONDUCT.md)    | Community guidelines                               |\n\n\u003C\u002Fdetails>\n\n---\n\n\u003C!-- NOTE: The single source of truth for acknowledgements data is website\u002Fdata\u002Facknowledgements.json.\n     When updating contributors or dependencies, edit that JSON file first, then sync this section and website\u002Findex.html. -->\n\n## Acknowledgements\n\n### Contributors\n\n| Contributor                                | PRs                                                                                                              |\n| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |\n| [@luongnv89](https:\u002F\u002Fgithub.com\u002Fluongnv89) | [38 merged PRs](https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fagent-skill-manager\u002Fpulls?q=is%3Apr+is%3Amerged+author%3Aluongnv89) |\n| [@Mordris](https:\u002F\u002Fgithub.com\u002FMordris)     | [#111](https:\u002F\u002Fgithub.com\u002Fluongnv89\u002Fagent-skill-manager\u002Fpull\u002F111)                                                |\n\n### Dependencies\n\n| Library                                                 | Description                                                                     |\n| ------------------------------------------------------- | ------------------------------------------------------------------------------- |\n| [ink](https:\u002F\u002Fgithub.com\u002Fvadimdemedes\u002Fink)              | React renderer for interactive command-line apps — powers the asm TUI           |\n| [@inkjs\u002Fui](https:\u002F\u002Fgithub.com\u002Fvadimdemedes\u002Fink-ui)     | Prebuilt ink components (inputs, spinners, lists) used across the TUI views     |\n| [react](https:\u002F\u002Fgithub.com\u002Ffacebook\u002Freact)              | UI library backing the ink TUI components and the web catalog                   |\n| [react-dom](https:\u002F\u002Fgithub.com\u002Ffacebook\u002Freact)          | React DOM renderer for the browser-based skill catalog                          |\n| [react-window](https:\u002F\u002Fgithub.com\u002Fbvaughn\u002Freact-window) | Windowed list virtualization for the browser-based skill catalog                |\n| [yaml](https:\u002F\u002Fgithub.com\u002Feemeli\u002Fyaml)                  | JavaScript parser and stringifier for YAML — used to parse SKILL.md frontmatter |\n\n---\n\n## Roadmap\n\nTrack our progress and upcoming features on the [project kanban board](https:\u002F\u002Fgithub.com\u002Fusers\u002Fluongnv89\u002Fprojects\u002F6). See [prd.md](prd.md) for the full product requirements and [tasks.md](tasks.md) for the sprint-based development plan.\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\n[MIT](LICENSE) — free to use, modify, and distribute. See the [LICENSE](LICENSE) file for details.\n",2,"2026-06-11 04:12:27","trending"]