skills-atlas
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 9 GitHub stars
Code Basarisiz
- process.env — Environment variable access in scripts/crawl.ts
- exec() — Shell command execution in scripts/sync-agents.ts
- network request — Outbound network request in scripts/sync-agents.ts
- process.env — Environment variable access in src/agents.ts
- exec() — Shell command execution in src/catalog/classify.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Browse every public Agent Skill grouped by theme, multi-select and install them through npx skills add.
Browse public Agent Skills (SKILL.md format) by theme in a collapsible terminal tree or a local web interface. Tick several and install them together through npx skills add. Installed skills start ticked: untick one to uninstall it.
★ Recommended highlights a personal selection, with Ponytail, mattpocock/skills, obra/superpowers and addyosmani/agent-skills. Both interfaces support nine languages, including Italian, Japanese, Korean and Simplified Chinese.

Terminal: candy-pink selections, gold Recommended stars and keyboard controls.
Installation
npx skills-atlas # or: npm i -g skills-atlas
Node ≥ 20. A catalog snapshot ships inside the package, so it works offline; online, the CLI fetches the latest snapshot, rebuilt every other day (see The catalog).
Usage
skills-atlas # interactive: tree → scope → options → confirm
skills-atlas browse -t security -q audit # tree pre-filtered by theme and text
skills-atlas browse -a claude-code cursor -g # options given as flags are not asked; -g/-p also limits the tree to that scope
skills-atlas themes # themes and their skill counts
skills-atlas list -t databases -n 10 # non-interactive listing (--json available)
skills-atlas agents # ids accepted by --agent (★ = detected here)
skills-atlas install anthropics/skills@pdf supabase/agent-skills@supabase -a claude-code -p -y
skills-atlas ui # the same in your browser, with the mouse
Web interface

Web: the same catalog and selection workflow, with light, dark and system appearance.
skills-atlas ui opens a local page with themes and ★ Recommended, catalog search and skills to tick. Installed skills start ticked; untick one to uninstall it. The changes panel shows scope, agents, method and the exact npx skills commands, with live progress when you apply. It shares the terminal's catalog, installation logic and remembered choices.
The server listens on 127.0.0.1 only. The address carries a random token (after the #, so it never leaves your browser) that every request must present, and requests from any other host name are refused, so no other web page can drive installs. Stop it with Ctrl+C.
| Option | Effect |
|---|---|
--port <n> |
port to listen on (default: 4747, or a free one if taken; a stable port lets the page remember its light/dark choice) |
--no-open |
print the address without opening the browser |
--catalog, --offline, --refresh, --skills-version |
as for browse |
Interface language
The interface speaks English, French, German, Spanish, Brazilian Portuguese, Italian, Japanese, Korean and Simplified Chinese (en, fr, de, es, pt, it, ja, ko, zh; zh-CN is also accepted). It follows your system language when it is one of these, and falls back to English:
skills-atlas -l fr # switch to French (or --lang fr): the choice is remembered
skills-atlas -l en # back to English
skills-atlas -l it # italiano
skills-atlas -l zh-CN # Simplified Chinese (saved as zh)
skills-atlas -l ja # 日本語 (es: español, pt: português, de: Deutsch, zh: 简体中文, ko: 한국어)
skills-atlas lang # current language
SKILLS_ATLAS_LANG=fr skills-atlas # force a language from the environment, without saving it
The choice made with -l is saved in ~/.config/skills-atlas/config.json, so later runs keep it without the flag. Precedence: -l/--lang, then SKILLS_ATLAS_LANG, then the saved choice, then the system language (LC_ALL, LC_MESSAGES, LANG, or the OS locale on Windows), then English. Chinese, Japanese and Korean characters take two terminal columns; the tree measures them as such, so columns stay aligned. --theme accepts a theme id or its label in any language (security, Sécurité…).
Translations live in src/i18n/. Adding a language takes one file implementing the Messages type (TypeScript reports any missing key), one entry in LANGUAGES and its number locale in LOCALES; the tests check that every theme is translated. The Spanish, Portuguese, German, Italian, Chinese, Japanese and Korean translations have not been reviewed by native speakers yet: corrections are welcome.
Recommended skills
★ Recommended appears just below Already installed in the terminal tree and web sidebar. It is a personal, curated selection, independent of install counts and official publisher status. It lists whole repositories: Ponytail, mattpocock/skills, obra/superpowers and addyosmani/agent-skills; the reason for each is shown with its details. Installing one runs npx skills add <repository> attached to the terminal, so the skills CLI asks which of its skills to install. The web interface cannot show that prompt and gives the command to run instead. A recommended skill can also appear in its usual theme, with the same checkbox and installation identity.
Press g on a skill to open its GitHub repository in your default browser. In the web interface, focus a skill row first. The key remains ordinary text while searching; local skills without a repository have no GitHub action.
The shared selection is maintained in data/recommended.json. To use your own selection without rebuilding or editing the package, create ~/.config/skills-atlas/recommended.json (or $XDG_CONFIG_HOME/skills-atlas/recommended.json). On Windows the default is %USERPROFILE%\.config\skills-atlas\recommended.json. A personal file replaces the bundled selection; [] hides it. Restart Skills Atlas after editing it.
[
{
"repository": "https://github.com/obra/superpowers",
"reason": "A complete development method that agents follow from idea to merged branch."
},
{
"name": "ponytail",
"repository": "https://github.com/DietrichGebert/ponytail",
"reason": "A useful reminder to keep solutions simple and focused on the task.",
"description": "Helps agents make smaller, maintainable changes with appropriate verification.",
"themes": ["code"],
"path": "skills/ponytail"
}
]
Only repository (a GitHub repository URL) and reason are required. Without name, the entry recommends the whole repository and its skills are picked at install time; with name (the skill's frontmatter name), it recommends that single skill. description, themes (ids from skills-atlas themes --all) and the skill directory path are optional. Existing catalog metadata is preserved. Add a pick after reviewing its SKILL.md, installation source and usefulness; keep reason specific enough to explain your choice. The list ships in the built CLI and is merged after every catalog refresh, including offline use. Changes to the shared JSON take effect after npm run build; personal JSON needs no build.
Installed skills
skills-atlas reads what is installed in both scopes, the current project and your user profile, and opens the tree. With -p or -g it reads only that scope.
- Detection reads what the skills CLI writes on disk: the canonical
.agents/skillsdirectory, every agent's skills directory, and the lock file for sources. It gives the same result asnpx skills list --jsonin under a second instead of ~30 s. - Pre-ticked: installed skills are ticked and marked with their scope,
● project,● globalor● project + global, under their theme and in an Already installed group at the top. That group also holds skills the catalog does not know, such as home-made ones. - Uninstall: unticking an installed skill marks it
✗ will be uninstalled. On confirmation it is removed from every agent of every scope it was found in, with onenpx skills remove -s … -y [-g]per scope, then checked on disk. - Install: ticking a skill that is not installed installs it. The scope is asked after the tree, pre-filled with your last choice, unless
-p/-gsets it. - Questions: the status line shows the balance
+N −M. Scope, agents and method are only asked when there is something to install.
Keys (tree)
| Key | Action |
|---|---|
| ↑ ↓ / PgUp PgDn | move |
| → / ← | expand / collapse a theme |
| space | tick a skill, or a whole theme (unticking an installed skill uninstalls it) |
/ |
search (enter to keep, esc to clear) |
a |
expand / collapse all |
s |
sort: installs (default) ↔ name |
o |
only official skills (marked ◆) |
g |
open the focused skill's GitHub repository |
| enter | continue |
q |
quit |
The mouse works too: the wheel moves through the list, a click ticks a skill, opens a theme (or ticks the whole theme on its checkbox), and picks an answer in the next steps. The interface then runs on the terminal's alternate screen; hold Shift to select text, or start with --no-mouse to keep the normal screen.
Install options
| Option | Effect |
|---|---|
-a, --agent <ids...> |
target agents (claude-code, cursor, codex, github-copilot…; '*' = all) |
-g, --global / -p, --project |
scope: your user profile or the current project |
--copy / --symlink |
one copy per agent, or a symlink to .agents/skills |
-y, --yes |
no questions; --agent becomes required |
--dry-run |
print the npx skills commands without running them |
--no-mouse |
keyboard only: normal screen, native text selection |
--skills-version <v> |
skills CLI version (default: 1.7.0, pinned) |
--catalog <path|url> |
alternative catalog |
--offline |
do not download the latest catalog (also SKILLS_ATLAS_OFFLINE=1) |
--refresh |
check GitHub for a newer catalog now instead of waiting up to 12 hours (an unchanged one is not downloaded again) |
--all, --min-installs <n> |
include skills with no installs or stars / minimum installs |
-s, --sort <order> |
installs (default) or name; also for list |
--official |
only official skills; also for list and themes |
-l, --lang <code> |
interface language, remembered |
Any option left out is asked after the selection, pre-filled with your last choices (~/.config/skills-atlas/config.json) and the agents detected on the machine.
The terminal uses a sky-blue, lavender and pink palette inspired by the Decker reference artwork, including the ASCII logo gradient. Selected skills, completed steps and success summaries use candy pink (#FF8AD8); recommended skills keep their gold star. Piped output stays plain, and the logo respects NO_COLOR.
What runs
Selected skills are grouped per repository, and each repository gets one call:
npx -y [email protected] add <owner/repo> -s <skill…> -a <agent…> [-g] [--copy] -y --json
- The source comes first, because
-sand-atake every argument that follows them. -ais always passed. With-yalone, the skills CLI would install to every detected agent.- Results are read from
--json. Outside that mode, the skills CLI exits 0 even when an install fails. - Calls run one after the other, because they share the same lock file.
- Uninstalls run first, as a single
npx skills remove -s … -y [-g]call.
In a terminal, progress is shown uv-style: one line per task (uninstall, then one per repository) with a spinner, a bar that follows the steps skills add reports (fetching the repository, installing, security audit) and the elapsed time, an overall bar, then a + installed / - uninstalled / × failed summary. When the output is piped, or with --verbose, plain lines are printed instead.
The catalog
data/catalog.json.gz is rebuilt every other day by GitHub Actions (npm run crawl). The CLI downloads that snapshot from GitHub, keeps it in ~/.cache/skills-atlas/ (or $XDG_CACHE_HOME/skills-atlas/) and checks for a new one at most every 12 hours, with an ETag, so an unchanged catalog is not downloaded again. It uses the snapshot bundled in the npm package when that one is newer, when GitHub cannot be reached (it then waits an hour before trying again), or with --offline. --refresh skips the 12-hour wait; failing that, deleting ~/.cache/skills-atlas/ has the same effect on older versions. Changes to the catalog format must stay readable by released versions, which download it too.
The snapshot is built from:
| Source | Access | Provides |
|---|---|---|
| claude-plugins.dev | GET /api/skills?limit=100&offset=N, full listing |
~47,000 skills, descriptions, stars, installs |
| skills.sh | sitemaps (the 20,000 most installed skills, in order); optionally GET /api/search?owner= |
popularity rank; install counts for the top N owners (--max-owners N) |
| Smithery | registry.smithery.ai/skills, at most 500 results per query |
categories (Coding, Design, Security…) |
| GitHub | Trees API + raw.githubusercontent.com |
missing descriptions, read from SKILL.md |
| officialskills.sh | sitemap | official publishers: every skill whose GitHub owner is listed there is flagged official |
Rate limits. The skills.sh search API allows 30 requests per minute. The crawl queries it at that pace, about 2 s per owner. The scheduled workflow covers the top 600 owners; a local crawl covers none by default. With VERCEL_OIDC_TOKEN, the crawl uses the official API instead, which returns the full leaderboard.
Processing:
- Deduplication on
owner/repo@name, case-insensitive. - Encoding repair: claude-plugins.dev serves Chinese and Japanese text double-encoded in UTF-8.
- Missing descriptions (the 5,000 most popular skills):
- with
GITHUB_TOKENor aghsession, one Trees call per repository locates eachSKILL.md; - otherwise the crawl tries the usual locations.
- with
- Ordering: skills ranked by skills.sh first, in rank order; then the others by installs and stars.
Themes: each skill gets one or two themes (see src/catalog/taxonomy.ts), from:
- keywords found in its name (weight 3) and description (weight 1), including Chinese and Japanese ones;
- the Smithery or SkillsMP categories it carries, mapped to these themes.
npm run crawl # full crawl, about 5 min
npm run crawl -- --max-owners 300 # + skills.sh installs of the top 300 owners (about 11 min more)
npm run reclassify -- --sample other # re-apply the taxonomy without crawling
npm run sync-agents -- --ref v1.7.0 # regenerate the agent list from vercel-labs/skills
Development
npm install
npm test # vitest
npm run typecheck
npm run dev # run the CLI from sources
npm run build # dist/cli.js
The CLI defaults to React's production runtime (also with npm run dev) with a maximum of 60 frames per second. It uses Ink's standard renderer because the incremental renderer in Ink 6.8 can duplicate lines. Set NODE_ENV=development explicitly when debugging React. The compiled dist/cli.js launcher and its sibling chunks must stay together.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi
