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

ai-stack-kit

v1.2.0

Published

AI Stack Kit — spec-driven skills, subagents, and hooks for Cursor, Copilot, and Claude (CLI + VS Code extension)

Readme

AI Stack Kit

npm VS Code extension license Skill browser

Install AI skills, subagents, and hooks like npm packages - across Cursor, Claude, and Copilot.

Stop copy-pasting AI workflows between repos. Install them like packages.

Not a fan of the CLI? Use the VS Code / Cursor extension from your IDE — same spec.yaml workflow, no global install required.

A CLI to discover, install, apply and sync reusable AI capabilities from GitHub, npm, and registries - using a simple declarative spec.

Think: npm (distribution) + Terraform (setup) for AI dev environments

Install options

| Method | Command | |--------|---------| | npm registry (public) | npm install -g ai-stack-kit | | GitHub Packages | npm install -g @deb-adarsh/ai-stack-kit (requires .npmrc auth) | | No global install | npx github:deb-adarsh/ai-stack-kit <command> (same as the Skill browser) | | VS Code / Cursor extension | Install from Marketplace |

VS Code extension

Install from the Marketplace (VS Code or Cursor) — same spec.yaml workflow as the CLI, no global install required.

  • Activity BarModules, Catalog, Outputs
  • Commands: Initialize, Sync, Doctor, Search/Add, Switch Client
  • Settings: aiStackKit.clientType, aiStackKit.githubToken, aiStackKit.dryRun, aiStackKit.autoSyncOnSave

See Extension guide for workflows.


🔄 Keeps your AI stack in sync

AI Stack Kit doesn’t just install modules — it stays aligned with the open-source ecosystem.

  • Skill browser auto-rebuilt from upstream sources
  • aistack catalog refresh pulls newly discovered modules into your spec
  • No manual tracking of repos

Your AI stack evolves as open-source evolves.


⚡️ 10-second demo

npm install -g ai-stack-kit

aistack init
aistack search react
aistack add react-ui-expert
aistack sync

Your AI capabilities are now installed and configured in your IDE.


What happens after aistack sync

  • Skills are installed into your project or user scope
  • Subagents are generated and configured per client
  • Prompts are derived automatically from the same source
  • Hooks run as part of lifecycle (if configured)

Everything is generated from the same spec — no duplication.


🧠 Works out of the box

  • Auto-detects your AI client (Cursor, Claude, Copilot)
  • Installs and configures everything in the right place
  • No manual wiring per tool

Why this exists

AI capabilities are scattered across GitHub repos, npm packages, and community lists.

There’s no standard way to:

  • discover them
  • install them
  • keep them in sync across tools

AI Stack Kit introduces a spec-driven approach:

  • sources.config.yaml → where to fetch from
  • spec.yaml → what your project uses
  • CLI + adapters → resolve and apply across tools

🔁 The workflow

search → add → sync

  1. aistack init — create spec.yaml + sources.config.yaml (auto-detects Cursor / Copilot / Claude)
  2. aistack search <query> — discover modules from configured catalogs (Skill browser too)
  3. aistack skill add <name> — append to spec.yaml
  4. aistack sync — resolve, install, and write IDE outputs from one spec

Run aistack doctor to validate your setup. See USER_GUIDE.md for full workflows.


Overview

AI Stack Kit lets you:

  • 📦 Assemble AI capabilities (skills, subagents, and hooks) in spec.yaml—portable, versioned modules you can sync and apply as reusable intelligence.
  • 🔄 Pull modules from GitHub, npm, registries, or local paths using sources.config.yaml.
  • 🎯 Apply the same portable manifests through client adapters (Cursor, Copilot / VS Code settings, Claude, …)—output paths follow client.type, not copy-paste sprawl.
  • 🔒 Version and lock dependencies like you would with package managers.
  • 🚀 Share a single spec.yaml across machines and teammates.
  • 🌐 Browse the Skill browser (listings sync from upstream via templates/sources.config.yaml — see Why this exists) and use catalog refresh to append new upstream names into modules: without rewriting your whole file.

Quick Start

npm install -g ai-stack-kit
aistack init
aistack sync

User guidesCLI · Extension


Who is this for?

  • Developers using AI tools like Cursor, Claude, or Copilot
  • Teams that want consistent AI setups across projects
  • Builders creating reusable AI skills, agents, or workflows

Not for

  • One-off prompt usage
  • Simple ChatGPT workflows
  • Non-technical users

AI Stack Kit is designed for teams and developers managing reusable AI capabilities.


Architecture

High-Level Design

┌─────────────────────────────────────────┐
│              CLI Layer                  │
│  (init, install, apply, sync)           │
└──────────────┬──────────────────────────┘
               │
┌──────────────▼──────────────────────────┐
│           Core Engine                   │
│  (orchestration, resolution)            │
└──┬───────┬─────────┬──────────┬────────┘
   │       │         │          │
   ▼       ▼         ▼          ▼
┌─────┐ ┌─────┐ ┌─────┐ ┌─────────┐
│Src  │ │Reg  │ │Adp  │ │ Storage │
│     │ │     │ │     │ │         │
└─────┘ └─────┘ └─────┘ └─────────┘

Key Interfaces

  1. SkillSource: Fetch skills from GitHub, npm, registries, or local files
  2. RegistryProvider: Query and publish to skill registries
  3. IDEAdapter: Apply skills to different IDEs (Cursor, VSCode, etc.)

Design Principles

  • Pluggable: Easy to add new sources, registries, and IDEs
  • Loose Coupling: Modules communicate via interfaces
  • Single Responsibility: Each module has one clear purpose
  • Testable: Clear boundaries enable mocking and isolation

Project structure

Repository layout and module boundaries: ARCHITECTURE.md.


Key Features

1. Pluggable Sources

Fetch skills from multiple sources:

  • GitHub: Public/private repos
  • npm: npm packages
  • Registry: Custom registries (like npm registry)
  • Local: File system paths

2. Version Management

  • Semantic versioning (^1.0.0, ~2.1.0, latest)
  • Lock files for reproducibility
  • Dependency resolution
  • Conflict detection

3. IDE Adapters

spec.yamlclient.type (cursor, copilot, claude) plus optional client.installScope: project (default) writes under the repo; user writes under your home directory for global tooling.

Skills — each resolved skill becomes a folder with SKILL.md (and any bundled paths preserved). There is no separate filename convention beyond normal skill packaging.

| Scope | Cursor | Copilot | Claude | |--------|--------|---------|--------| | Personal / global (installScope: user) | ~/.cursor/skills/ | ~/.copilot/skills/ | ~/.claude/skills/ | | Repo / project (default) | .cursor/skills/ | .github/skills/ | .claude/skills/ |

Subagents — generated agent files:

| Scope | Cursor | Copilot | Claude | |--------|--------|---------|--------| | Personal / global | ~/.cursor/agents/*.md | ~/.copilot/agents/*.agent.md | ~/.claude/agents/*.md | | Repo / project | .cursor/agents/*.md | .github/agents/*.agent.md | .claude/agents/*.md |

The *.agent.md pattern (basename: ., -, _, a-z, A-Z, 0-9 only before the suffix) is GitHub Copilot only. Cursor and Claude emit ordinary *.md agents.

Prompt sets — same payload as skills (no extra fetch) — Prompt files are not downloaded on their own. After each skill is resolved and fetched once, the normalizer derives prompts from that same in-memory payload (e.g. SKILL.md → instruction prompt; skill.json / manifest description → optional short system summary when present). aistack sync / apply then emits those files next to the skill trees and agents; agents carry promptIds wired by each adapter.

| Scope | Cursor | Copilot | Claude | |--------|--------|---------|--------| | Repo / project (default) | .cursor/prompts/*.md | aistack.copilot.promptSnippets in project .vscode/settings.json (id → body) | .claude/prompts/*.md, .claude/system-bundle.aistack.md, .claude/README.aistack.md | | Global (installScope: user) | ~/.cursor/prompts/*.md | same promptSnippets merge at project root (tree outputs still target ~/.copilot/) | ~/.claude/prompts/*.md (+ Claude bundle/readme under ~/.claude/) |

Copilot + VS Code: .vscode/settings.json is still merged under the aistack key at the project root (e.g. promptSnippets), even when skill/agent trees target ~/.copilot/ via installScope: user.

4. Lifecycle Hooks

Run commands at different stages:

  • preInstall / postInstall
  • preApply / postApply
  • preSync / postSync

5. Caching

  • Content-addressable cache (like Git)
  • Checksum verification
  • Offline mode support

6. Skill browser & catalog refresh

  • Hosted UI: filters and copy-paste CLI commands (live demo).
  • aistack catalog refresh: compare configured catalogs with spec.yaml and append missing modules under modules: using a YAML-safe merge (new rows default to enabled: false; backs up spec.yaml first).

Common commands

aistack init
aistack validate
export GITHUB_TOKEN=ghp_…   # recommended when searching GitHub-backed catalogs
aistack search <query>
aistack skill add [name]   # or: aistack add [name]
aistack catalog refresh --write
aistack sync

For the full command listskill / subagent / hook, catalog refresh flags, install / apply, registry, and maintenance — see CLI guide.


Documentation

📚 Architecture

  • ARCHITECTURE.md: Single architecture reference — diagrams, dependency rules, actual repository layout, interface shapes, pipeline flows, configuration examples, extension points, CLI reference, and ops concerns (performance, security, errors).

  • CONTRIBUTING.md: How to contribute—including extending the default catalog (templates/sources.config.yaml) for the CLI and Skill browser.

  • USER_GUIDE.md: Hub — CLI and extension guides

  • CLI guide: Install, commands, env vars, troubleshooting

  • Extension guide: VS Code / Cursor sidebar workflows

  • VS Code extension (Marketplace): Install the sidebar UI

📝 Configuration


Development

Build from source, run tests, extend sources/adapters, or publish the extension: CONTRIBUTING.md.


Comparison to Similar Tools

| Feature | AI Stack Kit | npm | Terraform | kubectl | |---------|-------------|-----|-----------|---------| | Declarative Config | ✅ | ❌ | ✅ | ✅ | | Version Locking | ✅ | ✅ | ✅ | ❌ | | Multiple Sources | ✅ | ⚠️ | ⚠️ | ❌ | | IDE Agnostic | ✅ | ❌ | N/A | N/A | | Dependency Resolution | ✅ | ✅ | ✅ | ❌ | | Lifecycle Hooks | ✅ | ✅ | ✅ | ❌ |


Roadmap

Snapshot of what’s in the repo today and what might come next—adjust as the project evolves.

| Area | Status | |------|--------| | CLI | Shipped: init, search, typed skill / subagent / hook, add, sync, catalog refresh, validation, etc. Some commands are still placeholders (e.g. update, clean, registry login / publish). | | spec.yaml | Load + Zod validation, apply pipeline, modules merge (skills + modules). | | Sources | GitHub fetch/install + npm packages; dynamic catalogs from sources.config.yaml (GitHub tree + npm tree providers). | | Discovery | Composite registry, hybrid search, catalog refresh for additive spec merges. | | IDE outputs | Cursor, Copilot (VS Code settings path), Claude client adapters; VS Code extension for in-editor sync and catalog browse. | | Skill browser | Static web app + catalog.json build + GitHub Pages deploy (weekly cron + pushes). | | Hosted registry product | No dedicated public registry server or npm-like publish flow yet—discovery is aggregate-from-upstreams plus local spec. |

Possible next steps (community-driven, not commitments): richer VS Code story, real registry/auth, watch mode, polish placeholders, tests/CI depth—track via Issues and CONTRIBUTING.md.


Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.


License

Licensed under the Apache License 2.0. See LICENSE.


Support


Acknowledgments

Inspired by:

  • npm: Registry abstraction and versioning
  • Terraform: Declarative infrastructure
  • kubectl: CLI user experience
  • Cursor: IDE extensibility

Built with ❤️ for developers who want portable, reproducible IDE configurations.