npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ericrisco/rsc

v0.1.32

Published

Eric Risco's agent-skills catalog as a granular, self-recommending CLI installer.

Readme

  ████████    ███████    ███████ 
  ██    ██   ██         ██    ██ 
  ██    ██   ██         ██       
  ██    ██   ██         ██       
  ████████    ██████    ██       
  ██  ██           ██   ██       
  ██   ██          ██   ██       
  ██    ██         ██   ██    ██ 
  ██    ██   ███████     ███████ 

rsc — 231 agent skills, one CLI, zero bloat

A self-recommending skill catalog for 17 coding assistants — Claude Code, Codex, GitHub Copilot, Cursor, Gemini, Windsurf, Cline, Antigravity, Zed and more. Describe what you want in plain language. It reads your repo, installs only the skills that fit — one at a time — into every assistant you pick, and keeps them equipped as you work.

From "document my company" to "ship a FastAPI service" to "grow my YouTube channel"231 skills across 21 domains, every one researched against live 2025-2026 sources and adversarially scored ≥ 8.5/10 before it shipped.

npx @ericrisco/rsc            # plain-language wizard — no jargon, installs what your project needs

🤖 For agents: "install this harness"

If you're an AI coding agent (Claude Code, Cursor, Copilot, Codex, Gemini…) and your user asked you to install rsc / this harness / these skills, run this in the root of the project they're equipping — not inside a clone of this repo (see the note under Install):

npx @ericrisco/rsc@latest

That launches a plain-language wizard: it asks which assistants to target and what the user wants, reads the repo, then installs the floor (orient + rsc-suggest + harness + init) plus only the skills that fit — one at a time. No global install and no API key needed.

  • Choose assistants non-interactively: npx @ericrisco/rsc@latest --target claude (comma-separate for several).
  • Already installed, just refreshing skills + hooks: rsc sync (or re-run the command above).
  • Add one skill by id: rsc add <id> · browse the catalog: rsc consult "<what you want>" or rsc list.

From then on it's self-driving: rsc-suggest proposes the next skill as tasks appear, and in Claude Code a hook re-asserts the spec-first new-feature gate on every turn — so a feature request routes through specify before any skill writes code.


Why this exists

Most skill packs dump hundreds of files into your context and call it a day. This one is the opposite bet:

  • Granular by default. The unit of installation is one skill. Install fastapi without ever pulling go. Nothing you don't use touches your context.
  • Self-recommending. Both the terminal (rsc consult) and the chat (rsc-suggest, an always-on detector) watch what you're doing and propose the next skill the moment a task needs it — a one-word confirm installs it.
  • Not code-only. First-class support for running a company: bookkeeping, invoicing, hiring, GDPR, pitch decks, SEO, a YouTube/TikTok/LinkedIn presence — each wired to a 02-DOCS/ knowledge loop that learns from your own results.
  • Honestly good. Every skill was built by a research → spec → implement → adversarial review pipeline and had to clear an objective rubric (scripts/skill-rubric.md, written before any skill existed). The bar was real: skills that scored 8.0 were sent back and fixed, not waved through.

skills/<name>/ is the single source of truth. There are no bundles to argue over: you start with a tiny floor and grow one piece at a time.


Install

npx @ericrisco/rsc            # no install step — runs the latest published catalog

Prefer the short rsc command? Install once, globally:

npm install -g @ericrisco/rsc   # then just: rsc

Run it inside any project and describe what you want. Working on the catalog itself? Clone and link:

git clone https://github.com/ericrisco/rsc-harness.git ~/rsc-skills
cd ~/rsc-skills && npm install && npm link

Run it inside the project you're equipping — not inside this repo. The catalog's own package.json is named @ericrisco/rsc, so npx @ericrisco/rsc from within a rsc-harness clone resolves to the local (unlinked) bin and dies with sh: rsc: command not found. Working on the catalog itself? Use node scripts/rsc.js …, the npm link above, or pin the published build with npx @ericrisco/rsc@latest ….

The first run asks which assistants you want — Claude Code, Codex, Copilot, Cursor, Gemini, Windsurf, Cline and 11 more (pick any combination) — and installs the floor: orient + rsc-suggest (always-on) + harness + init. In Claude Code it also wires a SessionStart hook (so your assistant proposes new skills on its own) and a UserPromptSubmit hook that re-asserts the SDD new-feature gate on every turn — so a feature request, in any language, routes through specify first, before any skill writes code. Opt out per project with .rsc/.no-feature-gate.

Everything stays in the project, and the real skill files are written once to .rsc/skills/<id>/. Each assistant you pick gets a lightweight symlink back to that shared base — no copy is duplicated across IDEs. (If the filesystem can't symlink, it falls back to a real copy automatically.)


30-second tour

$ rsc
 ██████╗ ███████╗ ██████╗     ← animated gradient wordmark
 ██╔══██╗██╔════╝██╔════╝
 ██████╔╝███████╗██║
  231 skills · one CLI · zero bloat

What do you want to do?          ↑↓ move · enter select
❯ Base install — the essentials (orient + suggest + harness + init)
  Base + Spec-Driven Development — specify → plan → implement → ship
  Pick skills by hand, by area

Pick by area and you get a checkbox list — ↑↓ to move, space to toggle, enter to confirm:

Languages:                       ↑↓ move · space toggle · a all · enter confirm
❯ ◉ typescript
  ◯ python
  ◉ go
  ◯ rust

Then it asks which assistants to install for — tick as many as you like:

Which assistants do you want to install for?   space toggle · a all · enter confirm
❯ ◉ Claude Code      (.claude/skills/)   ⟵ detected here
  ◉ Codex CLI        (AGENTS.md)
  ◯ GitHub Copilot   (.github/copilot-instructions.md)
  ◯ Cursor           (.cursor/rules/)
  ◉ Windsurf         (.windsurf/rules/)
  ◯ Cline            (.clinerules/)
  …17 in total — Gemini, Antigravity, Zed, Continue, Roo, Amp, opencode, Jules, Junie, Kiro, Aider

It detects your stack, asks which assistants to install for (the one it found in your folder is pre-marked), installs only what you chose, then prints the exact next steps for Claude Code / Codex / Cursor / Gemini / Antigravity — and from there keeps proposing the skills a task needs.


The CLI

rsc                                  # plain-language wizard (recommended) — pick skills AND assistants
rsc add fastapi postgresdb           # install specific skills, by name
rsc add youtube-api remotion-video   # …grow a channel, edit with Remotion
rsc add fastapi --target claude,codex   # install into several assistants at once
rsc install --profile minimal        # the floor: orient + suggest + harness + init
rsc install --profile core           # floor + the full SDD workflow
rsc install --profile full           # everything (all 231)
rsc install --profile full --without go
rsc consult "I want to launch a SaaS"  # recommend only, no install
rsc registry refresh                 # write .rsc/skill-registry.{json,md}
rsc list                             # what rsc has installed
rsc doctor                           # health check (state, hook, counts)
rsc sync --target claude,codex       # refresh managed skills/hooks from the current package version
rsc backups                          # list project-local snapshots
rsc restore latest --dry-run         # preview restoring the newest snapshot
rsc restore <snapshot-id>            # restore a project-local snapshot
rsc upgrade --dry-run                # show npm upgrade + sync commands
rsc uninstall postgresdb --dry-run   # preview a removal

Update

rsc is an npm package, so updating is two steps — bump the package, then re-sync what's already wired into your project:

npm install -g @ericrisco/rsc@latest   # global install: pull the newest catalog
rsc sync                               # refresh managed skills + hooks (auto-detects your assistant)

Not sure what a bump touches? Preview the exact commands without writing anything:

rsc upgrade --dry-run                  # prints the npm install + rsc sync lines for your target

Running through npx (no global install)? There's nothing to upgrade — npx @ericrisco/rsc@latest always fetches the latest published catalog; just run rsc sync afterwards if the project already has skills installed.

Every sync snapshots the project first, so a bad update is always reversible:

rsc backups                            # list project-local snapshots
rsc restore latest --dry-run           # preview restoring the newest
rsc restore <snapshot-id>              # restore it

How recommendation works

Two faces, one catalog (manifest.json):

  • In the terminalrsc / rsc consult rank the catalog against your words (an FTS index over each skill's description + tags), merge that with what they detect in your repo, and expand via each skill's recommends.
  • In the chatrsc-suggest is a tiny always-on skill. When a task would benefit from a skill you don't have, it names it and (one-word confirm) runs rsc add <id> for you. It's the floor — installed with every profile.

Repo detection maps real signals to skills: package.json + nextnextjs; go.modgo; pyproject.tomlfastapi; *.sql/prisma/postgresdb; Dockerfile/.github/docker/github-actions; and so on. An empty repo just asks in plain language.


The catalog

231 skills, grouped by what you're trying to do. Click any skill to read its SKILL.md. It fires on its own when a task matches.

🧭 Core & control plane

The front door and the workspace brain.

init · harness · orient · suggest · author-skill · sdd-init

harness is the Karpathy chaos→knowledge engine — a 01-TOOLS/ layer (one folder per provider, each with a working test_connection) and a 02-DOCS/ self-improving wiki. It governs software or a whole company. orient is the always-on compass that keeps a non-technical human oriented after every step.

📐 Spec-Driven Development

Take a fuzzy intent to a shipped, verified change — phase by phase. npx @ericrisco/rsc install --profile core.

sdd · constitution · specify · clarify · plan · tasks · analyze · implement · verify · review · ship · debug · worktrees · parallel

💼 Run a business

finance-ops · invoicing · bookkeeping · pricing · sales-pipeline · lead-gen · cold-outreach · proposals · contracts · customer-support · client-onboarding · retention · hiring · people-ops · inventory · logistics-ops · procurement · meeting-notes · sop-builder · project-ops

💸 Raise & model money

pitch-deck · investor-materials · financial-model · fundraising · unit-economics · grants

⚖️ Legal, privacy & compliance

gdpr-privacy · terms-conditions · compliance · data-policy · ip-trademark

📣 Market & brand

marketing · seo-geo · content-engine · social-publisher · brand-voice · brand-identity · newsletter · landing-copy · ads · article-writing · case-studies · video-shorts · podcast · market-research · competitor-watch · press-kit · community · webinar · review-management

🎬 Grow a channel

Each with a 02-DOCS feedback loop that learns from your own results. remotion-video edits programmatically — transitions, Whisper captions, silence removal.

youtube-api · youtube-strategy · youtube-ideation · youtube-thumbnails · youtube-packaging · remotion-video · tiktok-api · instagram-api · shortform-strategy · shortform-ideation · shortform-packaging · shortform-editing · linkedin-api · linkedin-strategy · linkedin-content · linkedin-carousels · linkedin-outreach · medium-writing · medium-publishing · medium-strategy

🔌 Connect & automate

stripe · email-connector · google-workspace · notion-connector · whatsapp-telegram · automation-flows · api-connector-builder · webhooks · data-scraper · spreadsheet-ops · calendar-scheduling · document-processing · e-signature

📊 Data & analytics

analytics · dashboard · kpi-framework · reporting · ab-testing · forecasting · data-cleaning · business-intelligence

🤖 AI — build it in

building-agents · rag · embeddings-search · prompt-engineering · llm-pipeline · agent-eval · chatbot · ai-media · replicate-images · structured-extraction · agent-safety · cost-tracking

🛰️ AI — run it on

replicate · runpod · modal · huggingface · ollama · together-fireworks · fal

🗣️ Languages

typescript · python · java · csharp-dotnet · php · ruby · cpp · elixir · bash-scripting · sql · go

🏗️ Frameworks & app stacks

fastapi · nextjs · react · react-native · vue-nuxt · angular · svelte · astro · solid-js · htmx · nodejs · nestjs · django · laravel · rails · spring-boot · phoenix · flutter · swift-ios · kotlin-android · compose-multiplatform · expo · tauri · electron · rust · wordpress · shopify · no-code-app · chrome-extension · api-design

🗄️ Databases & data layer

postgresdb · mysql · mongodb · redis · supabase · neon · planetscale · sqlite-turso · prisma-orm · drizzle-orm · firebase · dynamodb · vector-db · clickhouse-analytics · duckdb · db-migrations · backups

☁️ Ship & operate — platforms

vercel · netlify · cloudflare · railway · render · fly-io · coolify · hetzner · digitalocean · aws-essentials · gcp-essentials

🛠️ Ship & operate — devops

docker · github-actions · git-workflow · domains-dns · monitoring · email-deliverability · scaling · deployment

🔒 Ship & operate — quality & security

code-review · security-scan · secure-coding · testing-py · testing-web · testing-go · e2e-testing · accessibility · performance · error-handling · observability

🎨 Design & content craft

design · presentations · course-storytelling · course-builder · technical-writing · translation-l10n

🧠 Knowledge & meta

knowledge-ops · codebase-onboarding · research-ops · decision-records · continuous-learning · skill-scout · context-budget


Multi-target

skills/<name>/ is the catalog source. On install the real files land once in the project at .rsc/skills/<id>/; each assistant you pick gets a symlink (or a converted file) back to that shared base — pick several and nothing is duplicated. The wizard asks which ones; --target a,b does it non-interactively.

| Target | Skill destination (→ .rsc/skills/<id>/) | Always-on detector | | --- | --- | --- | | claude | .claude/skills/<id>/ → symlink (copy on Windows) | SessionStart hook in .claude/settings.json | | codex | .codex/rsc/<id>/ → symlink | block in AGENTS.md | | copilot | .github/rsc/<id>/ → symlink | block in .github/copilot-instructions.md | | cursor | .cursor/rules/<id>.mdc (converted) | always-apply rule | | gemini | .gemini/rsc/<id>/ → symlink | block in GEMINI.md | | windsurf | .windsurf/rsc/<id>/ → symlink | rule in .windsurf/rules/rsc-suggest.md | | cline | .clinerules/rsc/<id>/ → symlink | rule in .clinerules/rsc-suggest.md | | antigravity | .antigravity/rsc/<id>/ → symlink | block in .antigravity/AGENTS.md | | zed | .zed/rsc/<id>/ → symlink | block in AGENTS.md | | continue | .continue/rsc/<id>/ → symlink | rule in .continue/rules/rsc-suggest.md | | roo | .roo/rsc/<id>/ → symlink | rule in .roo/rules/rsc-suggest.md | | amp | .amp/rsc/<id>/ → symlink | block in AGENTS.md | | opencode | .opencode/rsc/<id>/ → symlink | block in AGENTS.md | | jules | .jules/rsc/<id>/ → symlink | block in AGENTS.md | | junie | .junie/rsc/<id>/ → symlink | block in .junie/guidelines.md | | kiro | .kiro/rsc/<id>/ → symlink | doc in .kiro/steering/rsc-suggest.md | | aider | .aider/rsc/<id>/ → symlink | block in CONVENTIONS.md |

codex, zed, amp, opencode and jules all share the one root AGENTS.md; the block is idempotent, so picking several writes it once.


Skill format

Each skill is a directory under skills/<name>/ whose SKILL.md frontmatter drives both triggering and the installer's recommendations:

---
name: my-skill
description: Use when [specific triggers]… Triggers: 'phrase', 'frase'. NOT x (that is sibling).
tags: [keyword, keyword]        # what the consult advisor searches over
recommends: [sibling-skill]     # what the system offers to install next
profiles: [core, full]          # optional: named-profile membership
origin: risco
---

The full agent-skill spec lives at agentskills.io/specification.


Repo layout & contributing

skills/<name>/ is the single source of truth — every skill is authored there, once. After editing any skill:

npm run manifest      # regenerate manifest.json from skills/*/SKILL.md
npm run validate      # ajv-validate frontmatter + check recommends integrity
npm test              # unit + integration tests
bash scripts/eval-lint.sh   # validate every skills/*/evals/cases.yaml

manifest.json is generated, never hand-edited; CI runs npm run manifest:check and fails if it's stale or the skill count drifts. Adding a skill is: create skills/<id>/SKILL.md with tags + recommends, run npm run manifest, done — the rubric to hold it to is scripts/skill-rubric.md.

This is a personal catalog. Bug reports welcome via GitHub issues; PRs fixing detector patterns, provider endpoints, or typos are appreciated.

License

MIT. See LICENSE.