Skip to content

luongnv89/asm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

441 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

asm

npm version npm downloads GitHub stars MIT License CI Node.js

CLI to install and manage agent skills

agent-skill-manager (asm) is a scriptable CLI built for AI agents and automation — install, search, audit, and organize skills across Claude Code, Codex, Cursor, and 16 more tools. Every command supports --json and --yes for non-interactive use. An optional TUI (asm) is available for local browsing.

Get Started · Browse 4,300+ skills · Full docs

Problems asm solves

Pain Without asm With asm
Scattered installs Same skill copied into ~/.claude/skills/, ~/.codex/skills/, ~/.cursor/rules/ — different versions, no single view One asm list across all 19 providers and scopes
No inventory ls through hidden dirs; no idea what is installed, duplicated, or outdated asm search, asm inspect, asm stats, asm audit
Risky manual installs Clone repos, copy folders, hope SKILL.md is valid asm install validates frontmatter, scans security, pins registry commits
Agent-unfriendly output Human-only copy-paste workflows Structured JSON via --json; skip prompts with --yes
New agent, new chore Every tool adds another skill directory to track Add or disable providers in one config file

At a glance

Catalog 4,394 skills from 54 repos — browse online
Providers 19 agents (Claude, Codex, Cursor, Windsurf, Copilot, …)
Agent-ready CLI --json, --yes, --machine on list, search, install, audit, eval
Security Pre-install scan for shell exec, network access, credential exposure
License MIT — no accounts, no telemetry

How it works

graph LR
    A[AI agent / script] --> B["asm command --json"]
    B --> C[Discover skill dirs]
    B --> D[Install / audit / search]
    D --> E{Security scan}
    E --> F[Validate SKILL.md]
    F --> G[Agent provider paths]
    H[GitHub / Registry] --> D
Loading
  1. Install asm once (npm or curl).
  2. Run commands from your agent, shell, or CI — no prompts when you pass --yes.
  3. Parse JSON output to decide what to install, remove, or audit next.

Features

Feature What you get
Cross-provider inventory asm list --json — every skill, every agent, one response
One-command install asm install github:user/repo or asm install skill-name
Agent-parseable output --json on list, search, inspect, install, audit
Duplicate audit asm audit --yes removes redundant skills non-interactively
Security scan asm audit security before install
Authoring pipeline asm init, asm link, asm eval, asm publish
Bundles asm bundle install — curated sets in one pass
Local library asm install --library — install once, asm activate per provider
Cross-tool linking Reinstall or symlink when a skill already exists in another tool

Getting started

Install (npm):

npm install -g agent-skill-manager

List installed skills (JSON for agents):

asm list --json

Install a skill:

asm install github:anthropics/skills --yes

Search installed and catalog skills:

asm search "code review" --json

Alternative install: curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh | bash

Node.js 18+ required. Optional TUI: run asm with no arguments.

Common tasks

Task Command
Machine-readable inventory asm list --json
Skill metadata for agents asm inspect my-skill --json
Non-interactive install asm install code-review -p claude --yes --json
Remove duplicates asm audit --yes
Scan before install asm audit security github:user/repo
Scaffold a new skill asm init my-skill -p claude
Live dev via symlink asm link ./my-skill -p claude
Publish to registry asm publish ./my-skill --yes
Install a bundle asm bundle install frontend-dev --yes

Full command reference, flags, and examples: CLI Commands. Catalog UI and bundles: luongnv.com/asm.

FAQ

Is it free? MIT licensed. No accounts or paywalls.

Is this built for AI agents? Yes. Commands return structured JSON (--json), accept non-interactive flags (--yes, --machine), and map to discrete actions an agent can chain — list inventory, search catalog, install, audit, uninstall.

Which agents are supported? 19 providers: 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. Disable any via asm config edit.

What about the TUI? Run asm with no args for an optional local browser. The CLI is the primary interface for scripts, CI, and agent tool calls.

Private repos? asm install github:user/repo --transport ssh --yes

SKILL.md format? A directory with SKILL.md (YAML frontmatter + markdown body). Run asm init my-skill to scaffold one.

Get started

npm install -g agent-skill-manager
asm list --json

Browse catalog · Documentation · Contributing · MIT Licensed


Build, test, and ship skills

Scaffold

asm init my-skill
asm init my-skill -p claude
asm init my-skill --path ./skills

Develop with live reload

asm link ./my-skill -p claude
asm link ./skill-a ./skill-b ./skill-c -p claude
asm link ./my-skills-folder -p claude
asm link ./my-skill --name my-alias -p claude --force

Audit and inspect

asm audit security my-skill
asm audit security ./path/to/my-skill
asm audit security --all
asm inspect my-skill
asm inspect my-skill --json

Test install flow

asm install github:you/awesome-skill
asm install github:you/awesome-skill -p claude --force --yes --json

Publish to ASM Registry

asm publish ./my-skill
asm publish --dry-run ./my-skill

Requires gh CLI authenticated with gh auth login.

Typical workflow

  1. asm init awesome-skill -p claude
  2. Edit SKILL.md
  3. asm link ./awesome-skill -p claude
  4. Test with your agent
  5. asm audit security awesome-skill
  6. asm inspect awesome-skill
  7. asm eval ./awesome-skill
  8. Push to GitHub
  9. asm install github:you/awesome-skill
  10. asm publish ./awesome-skill
Skill verification and quality eval

Indexed skills are evaluated automatically. Skills passing all criteria get a verified badge in the catalog.

Verification criteria (all required):

  1. Valid frontmatter with name and description
  2. Body content with at least 20 characters of instruction text
  3. No malicious patterns (atob(), suspicious base64, hex escapes, hardcoded credentials)
  4. Directory contains a readable SKILL.md
asm index ingest github:your-user/your-repo
asm index search "your-skill" --json

Quality scoring (asm eval) runs a rubric over structure, clarity, safety, and naming:

asm eval ./my-skill
asm eval ./my-skill --machine
asm eval ./my-skill --fix
asm eval-providers list

See docs/eval-providers.md for the provider model.

ASM Registry

The ASM Registry lists community-published skills. Install by name — no GitHub URL needed.

asm install code-review
asm install luongnv89/code-review
asm install code-review --no-cache
asm publish ./my-skill
Flag Description
--dry-run Preview manifest without creating a PR
--force Override warning-level security findings
--yes Skip confirmation
--machine JSON output

Resolution flow: fetch index (1-hour cache) → find manifest with pinned commit → clone at exact commit → install.

Open-source skill collections

Over 2,800 skills across curated repositories. Use asm search <term> to discover, then asm install github:owner/repo.

Last updated: 2026-07-07

Repository Description Stars Skills
anthropic-skills Official Agent Skills from Anthropic 95,957 18
superpowers Agentic skills framework 89,816 14
everything-claude-code Performance optimization for Claude Code, Codex 81,392 183
agency-agents Specialized expert agents 50,749
ui-ux-pro-max-skill Design intelligence for UI/UX 43,112 7
antigravity-awesome-skills 1,000+ skills for Claude Code, Cursor 25,047 1,322
marketingskills Marketing — CRO, SEO, growth 14,099 33
agentskills Agent Skills specification 13,342
claude-skills 192 skills across engineering, marketing 7,434 451
taste-skill Stops generic AI output 3,389 7
affiliate-skills Affiliate marketing funnel 99 48
skills Reusable agent skills 1 35
asm install github:anthropics/skills
asm install github:anthropics/skills --all
Supported agent tools

19 built-in providers, all enabled by default. Disable via asm config edit.

Tool Global Path Project Path
Claude Code ~/.claude/skills/ .claude/skills/
Codex ~/.codex/skills/ .codex/skills/
OpenClaw ~/.openclaw/skills/ .openclaw/skills/
Agents (generic) ~/.agents/skills/ .agents/skills/
Cursor ~/.cursor/rules/ .cursor/rules/
Windsurf ~/.windsurf/rules/ .windsurf/rules/
Cline ~/Documents/Cline/Rules/ .clinerules/
Roo Code ~/.roo/rules/ .roo/rules/
Continue ~/.continue/rules/ .continue/rules/
GitHub Copilot ~/.github/instructions/ .github/instructions/
Aider ~/.aider/skills/ .aider/skills/
OpenCode ~/.config/opencode/skills/ .opencode/skills/
Zed ~/.config/zed/prompt_overrides/ .zed/rules/
Augment ~/.augment/rules/ .augment/rules/
Amp ~/.amp/skills/ .amp/skills/
Gemini CLI ~/.gemini/skills/ .gemini/skills/
Google Antigravity ~/.antigravity/skills/ .antigravity/skills/
Pi ~/.pi/skills/ .pi/skills/
Hermes ~/.hermes/skills/ .hermes/skills/

Add custom providers in config.

Troubleshooting: shadowed installs

Multiple asm binaries on PATH can shadow a fresh upgrade.

Diagnose: asm --version warns about multiple binaries. Run asm doctor for a full report.

Fix: Remove the stale install with your package manager, then confirm with asm --version.

CLI Commands

Commands

| Command | Description | | ------------------------------- | ------------------------------------ | ----------------------------------------- | | asm list | List all discovered skills | | asm search <query> | Search by name/description/provider | | asm inspect <skill-name> | Show detailed info for a skill | | asm install <source> | Install from GitHub or registry | | asm publish [path] | Publish to ASM Registry | | asm uninstall <skill-name> | Remove a skill | | asm init <name> | Scaffold a new skill | | asm link <path> [<path2> ...] | Symlink skills for live dev | | asm audit | Detect duplicate skills | | asm audit security <name> | Security audit | | asm eval <skill> | Score skill quality | | asm eval-providers list | List eval providers | | asm stats | Aggregate installed skill metrics | | asm stats repo <repo> | Per-repo indexed skill stats | | asm stats author <owner> | Per-author indexed skill stats | | asm stats index | Indexed catalog stats summary | | asm activate <skill> | Link a library skill into a provider | | asm deactivate <skill> | Remove a library activation symlink | | asm library list | update | Manage centrally installed library skills | | asm export | Export inventory as JSON | | asm index ingest <repo> | Index a skill repo | | asm index search <query> | Search indexed skills | | asm index list | List indexed repos | | asm index remove <owner/repo> | Remove repo from index | | asm bundle list | List bundles (--predefined) | | asm bundle install <name> | Install every skill in a bundle | | asm bundle create <name> | Create bundle from installed skills | | asm bundle show <name> | Show bundle details | | asm bundle modify <name> | Add/remove skills | | asm bundle export <name> | Export bundle to JSON | | asm bundle remove <name> | Remove saved bundle | | asm config show | Print config | | asm config path | Print config path | | asm config reset | Reset to defaults | | asm config edit | Open config in $EDITOR |

Global options

-h, --help             Show help
-v, --version          Print version
--json                 JSON output
-s, --scope <scope>    global, project, or both
--sort <field>         name, version, or location
-y, --yes              Skip confirmations
--no-color             Disable ANSI colors

Examples

asm list --scope global --sort location
asm list --summary
asm list --compact --group-by tool --limit 20
asm search "code review" --json
asm audit --yes
asm audit security github:user/repo
asm audit security --all
asm eval ./my-skill
asm init my-skill -p claude
asm link ./my-skill -p claude
asm uninstall old-skill --yes
asm index ingest github:anthropics/skills
asm index search "frontend design" --json

Bundles — pre-defined sets for common workflows. Browse at luongnv.com/asm/#/bundles:

asm bundle list --predefined
asm bundle install frontend-dev
asm bundle install ./my-bundle.json
asm bundle create my-workflow
asm bundle export my-workflow ./my-workflow.json

iOS/Swift catalog: ASM indexes public Swift/Apple skill repos. Use asm bundle install ios-release or search for swift, swiftui, swift testing, uikit, swiftdata, app store connect.

Installing skills from GitHub

Single-skill repo:

asm install github:user/my-skill
asm install github:user/my-skill#v1.0.0 -p claude

Multi-skill repo:

asm install github:user/skills --path skills/code-review
asm install github:user/skills --all -p claude -y

Subfolder URL:

asm install https://github.com/user/skills/tree/main/skills/agent-config
asm install github:user/skills#main:skills/agent-config

Private repos:

asm install github:user/private-skill --transport ssh
asm install github:user/private-skill -t auto

Vercel skills CLI:

asm install github:user/skills --method vercel --skill my-skill
Flag Description
-p, --tool <name> Target agent
--name <name> Override directory name
--path <subdir> Install from subdirectory
--all Install all skills in repo
-m, --method <method> default or vercel
-t, --transport <mode> https, ssh, or auto
--library Install into the local library
-f, --force Overwrite existing
-y, --yes Skip confirmation
--json JSON output

Multi-skill repos: scans up to 5 levels deep. Root SKILL.md installs by default; use --all for every skill. Requires git on PATH.

Optional TUI (run asm with no args)

Local browser for skills. The CLI above is the primary interface for agents and automation.

Keyboard shortcuts

Key Action
↑/↓ or j/k Navigate list
Enter View details
d Uninstall
/ Search / filter
Esc Back / clear
Tab Cycle scope
s Cycle sort
r Refresh
c Configuration
a Audit duplicates
q Quit
? Help
Configuration

On first run, config is created at ~/.config/agent-skill-manager/config.json:

{
  "version": 1,
  "providers": [
    {
      "name": "claude",
      "label": "Claude Code",
      "global": "~/.claude/skills",
      "project": ".claude/skills",
      "enabled": true
    },
    {
      "name": "codex",
      "label": "Codex",
      "global": "~/.codex/skills",
      "project": ".codex/skills",
      "enabled": true
    },
    {
      "name": "openclaw",
      "label": "OpenClaw",
      "global": "~/.openclaw/skills",
      "project": ".openclaw/skills",
      "enabled": true
    },
    {
      "name": "agents",
      "label": "Agents",
      "global": "~/.agents/skills",
      "project": ".agents/skills",
      "enabled": true
    },
    {
      "name": "cursor",
      "label": "Cursor",
      "global": "~/.cursor/rules",
      "project": ".cursor/rules",
      "enabled": false
    },
    {
      "name": "windsurf",
      "label": "Windsurf",
      "global": "~/.windsurf/rules",
      "project": ".windsurf/rules",
      "enabled": false
    },
    {
      "name": "cline",
      "label": "Cline",
      "global": "~/Documents/Cline/Rules",
      "project": ".clinerules",
      "enabled": false
    },
    {
      "name": "roocode",
      "label": "Roo Code",
      "global": "~/.roo/rules",
      "project": ".roo/rules",
      "enabled": false
    },
    {
      "name": "continue",
      "label": "Continue",
      "global": "~/.continue/rules",
      "project": ".continue/rules",
      "enabled": false
    },
    {
      "name": "copilot",
      "label": "GitHub Copilot",
      "global": "~/.github/instructions",
      "project": ".github/instructions",
      "enabled": false
    },
    {
      "name": "aider",
      "label": "Aider",
      "global": "~/.aider/skills",
      "project": ".aider/skills",
      "enabled": false
    },
    {
      "name": "opencode",
      "label": "OpenCode",
      "global": "~/.config/opencode/skills",
      "project": ".opencode/skills",
      "enabled": false
    },
    {
      "name": "zed",
      "label": "Zed",
      "global": "~/.config/zed/prompt_overrides",
      "project": ".zed/rules",
      "enabled": false
    },
    {
      "name": "augment",
      "label": "Augment",
      "global": "~/.augment/rules",
      "project": ".augment/rules",
      "enabled": false
    },
    {
      "name": "amp",
      "label": "Amp",
      "global": "~/.amp/skills",
      "project": ".amp/skills",
      "enabled": false
    },
    {
      "name": "gemini",
      "label": "Gemini CLI",
      "global": "~/.gemini/skills",
      "project": ".gemini/skills",
      "enabled": false
    },
    {
      "name": "antigravity",
      "label": "Google Antigravity",
      "global": "~/.antigravity/skills",
      "project": ".antigravity/skills",
      "enabled": false
    }
  ],
  "customPaths": [],
  "preferences": {
    "defaultScope": "both",
    "defaultSort": "name"
  }
}
  • Set "enabled": true to start scanning a provider
  • Add arbitrary directories via customPaths
  • Set "enabled": false to skip a provider
  • Manage via asm config show|path|reset|edit or press c in the TUI
SKILL.md format

Every skill is a directory with a SKILL.md file — YAML frontmatter plus markdown instructions.

---
name: my-skill
description: "What this skill does"
license: "MIT"
compatibility: "Claude Code, Codex"
allowed-tools: Bash Read Grep Glob WebFetch
effort: medium
metadata:
  version: 1.0.0
  creator: "Your Name <you@example.com>"
---
Field Required Description
name yes Unique identifier
description yes One-line summary
license no SPDX identifier
compatibility no Compatible agents
allowed-tools no Tools the skill uses
effort no low, medium, high, max
metadata.version no Semver (default 0.0.0)
metadata.creator no Author
asm init my-skill
asm init my-skill -p claude
From source
git clone https://github.com/luongnv89/agent-skill-manager.git
cd agent-skill-manager
npm install
npm run build
npm start

Inspect install script before running:

curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh -o install.sh
less install.sh
bash install.sh
Project structure
agent-skill-manager/
├── bin/                       # CLI entry point
├── dist/                      # Built bundle (npm ships this)
├── scripts/                   # Build, preindex, catalog
├── src/
│   ├── index.tsx              # TUI (ink)
│   ├── cli.ts                 # CLI dispatcher
│   ├── scanner.ts             # Skill discovery
│   ├── installer.ts           # GitHub install pipeline
│   └── views/                 # TUI views
├── docs/                      # Extended documentation
├── assets/                    # Logos and screenshots
├── install.sh                 # curl installer
└── package.json
Tech stack
  • Runtime: Node.js 18+
  • Language: TypeScript + TSX
  • Build: esbuild
  • TUI: Ink + @inkjs/ui
  • Testing: Vitest
  • CI: GitHub Actions + pre-commit hooks
Documentation
Document Description
Architecture System design and data flow
Eval Providers Pluggable eval framework
Development Local setup and debugging
Deployment Publishing and CI
Changelog Version history
Brand Kit Logo, colors, typography
Contributing How to contribute
Security Vulnerability reporting
Code of Conduct Community guidelines

Landing page: luongnv.com/asm — catalog, bundles, author/repo stats, filtered search.


Acknowledgements

Contributors

Contributor PRs
@luongnv89 38 merged PRs
@Mordris #111

Dependencies

Library Description
ink React renderer for the TUI
@inkjs/ui Prebuilt ink components
react UI for TUI and web catalog
react-dom DOM renderer for catalog
react-window List virtualization for catalog
yaml SKILL.md frontmatter parser

Roadmap

Project kanban · prd.md · tasks.md

Contributing

See CONTRIBUTING.md.

License

MIT

About

The universal skill manager for AI coding agents.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

724 stars

Watchers

6 watching

Forks

Packages

 
 
 

Contributors