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

harness-lab

v1.1.1

Published

Curated collection of AI agent harnesses for Claude Code. Install, manage, and share skills, commands, agents, and hooks.

Downloads

579

Readme

harness-lab

Node.js JavaScript Zero Dependencies License: MIT Claude Code

Curated public registry of AI agent harnesses for Claude Code

Install · Report Bug · Request Feature

About

harness-lab is a curated public registry of AI agent harnesses (skills, commands, agents, hooks) for Claude Code. It includes a zero-dependency Node.js CLI for browsing, installing, and managing harnesses from GitHub directly into .claude/ directories.

  • Browse harnesses by category (Product, Software Engineering, Design, Harness Engineering)
  • Install skills, commands, agents, and hooks with a single command
  • Three installation scopes: global, project, or local
  • Always fetches the latest versions from GitHub — no local cache

Why not plugins?

Claude Code has a native plugin system — so why does harness-lab distribute artifacts as standalone .claude/ files instead?

Practical install/uninstall workflow. The CLI lets you browse, install, and remove artifacts from any terminal in seconds (harness-lab install ... / harness-lab uninstall ...). The init command bootstraps slash commands so you can also manage everything from inside Claude Code (/harness-lab:install). No marketplace setup, no manifest files — just files copied in and out of .claude/.

Granularity and cohesion. Harnesses tend to have higher granularity and cohesion than plugins. Each harness groups artifacts around a single, well-defined purpose (e.g. PRD generation), while plugins tend to bundle loosely related capabilities together. This matters because tighter cohesion means less irrelevant context loaded per task — and with harness-lab, each artifact is an independent file you can install or remove individually.

Persistent ghost errors. Plugins can leave behind errors that are difficult to trace and persist even after the plugin is uninstalled or disabled. The screenshot below shows a /doctor output reporting "Plugin ralph-wiggum not found in marketplace" — an error that lingers with no clear way to resolve it. File-based artifacts don't have this problem: uninstalling simply deletes the files, leaving no residual state.

Plugin error example

Plugins are great for MCP integrations, LSP servers, and hook-heavy workflows. But for a curated registry of prompt-based artifacts, the file-based approach is simpler and more efficient.

Available Harnesses

| Harness | Description | Author | |---------|-------------|--------| | prd-generator | Context engineering PRD generator for AI-driven software development | hgflima | | agent-md-writer | Generate and maintain high-quality CLAUDE.md and AGENT.md files | hgflima | | rules-generator | Analyze a project's stack and generate tailored .claude/rules/ files | hgflima | | github-readme-writer | Generate comprehensive, professional README.md files for any project | alfredang | | product-vision-frame | Define a product's singular purpose and ruthlessly align all decisions to that vision | hgflima | | customer-journey-to-be | Generate to-be customer journey maps with phases, happy paths, exception flows, and Mermaid diagrams | hgflima | | lessons-learned | Post-incident analysis and correction for Claude Code sessions — diagnoses root causes, applies fixes, and persists structured changelogs | hgflima | | product-brief | Interactive wizard for creating structured product briefs across project levels (spike, POC, MVP, feature, product, platform) | hgflima | | ui-design | Service-agnostic UI/UX specification system — design tokens, screen specs, component definitions, and multi-tool export | hgflima |

Tech Stack

| Category | Technology | |----------|------------| | Language | JavaScript (ESM) | | Runtime | Node.js >= 18 | | Dependencies | Zero — Node.js built-ins only | | Data Source | GitHub Raw + GitHub REST API | | Distribution | npm / npx |

Architecture

┌─────────────────────────────────────────────────┐
│                   User Layer                    │
│                                                 │
│   npx harness-lab          /harness-lab:install │
│   (Terminal CLI)           (Slash Commands)     │
└────────────┬──────────────────────┬─────────────┘
             │                      │
             ▼                      ▼
┌───────────────────────────────────────────────────┐
│                 CLI Layer (src/cli/)              │
│                                                   │
│   categories · list · install · uninstall · update│
└────────────────────────┬──────────────────────────┘
                         │
                         ▼
┌──────────────────────────────────────────────────┐
│               Core Layer (src/core/)             │
│                                                  │
│   catalog.js     installer.js     scope.js       │
│   (fetch index)  (download/remove) (resolve path)│
└────────────────────────┬─────────────────────────┘
                         │
                         ▼
┌───────────────────────────────────────────────────┐
│              GitHub (Remote Data)                 │
│                                                   │
│   raw.githubusercontent.com   api.github.com      │
│   (catalog.json, artifacts)   (directory listings)│
└───────────────────────────────────────────────────┘

Project Structure

harness-lab/
├── bin/cli.js                  — CLI entry point (shebang, command router)
├── src/
│   ├── core/                   — Business logic (shared by CLI + slash commands)
│   │   ├── catalog.js          — Fetch catalog.json and harness.json from GitHub
│   │   ├── installer.js        — Download artifacts to .claude/, remove on uninstall
│   │   └── scope.js            — Resolve target path (global/project/local)
│   ├── cli/                    — Command handlers (parse args, call core, format output)
│   │   ├── categories.js, list.js, install.js, uninstall.js, update.js
│   └── setup/
│       └── init.js             — npx bootstrap (npm install -g + copy slash commands)
├── templates/slash-commands/
│   └── harness-lab/            — 5 .md files → .claude/commands/harness-lab/
├── harnesses/                  — The curated harness collection
│   └── <name>/
│       ├── harness.json        — Metadata: name, version, categories, artifact list
│       ├── skills/             — Skill files (SKILL.md, prompt.md, references/, scripts/)
│       ├── commands/           — Slash command files (<name>.md)
│       ├── agents/             — Subagent files (<name>.md)
│       ├── rules/              — Rule files (<name>.md)
│       └── hooks/              — Hook scripts and config
├── catalog.json                — Registry index (categories + harness entries)
└── package.json

Getting Started

Prerequisites

Install

npm install -g harness-lab@latest

Then install the slash commands for Claude Code:

harness-lab init

The init wizard asks where to place the slash commands (global, project, or local) and copies them into your .claude/commands/ directory.

CLI Commands

harness-lab                          # Run init (install slash commands)
harness-lab categories               # List available categories
harness-lab list [category]          # List harnesses, optionally by category
harness-lab install <name>           # Install a harness (default scope: project)
harness-lab uninstall <name>         # Uninstall a harness
harness-lab update [name]            # Update one or all harnesses
harness-lab --version                # Show version
harness-lab --help                   # Show help

Use --scope to control where artifacts are installed:

harness-lab install prd-generator --scope global    # ~/.claude/
harness-lab install prd-generator --scope project   # .claude/ (default)
harness-lab install prd-generator --scope local     # .claude/local/

Slash Commands

After running harness-lab init, these commands are available inside Claude Code:

/harness-lab:categories     List available categories
/harness-lab:list           List harnesses
/harness-lab:install        Install a harness
/harness-lab:uninstall      Uninstall a harness
/harness-lab:update         Update harnesses

Alternative: Run with npx

If you prefer not to install globally, use npx to run any command directly:

# Install globally + slash commands
npx harness-lab@latest

# Browse and install
npx harness-lab@latest categories
npx harness-lab@latest list software-engineering
npx harness-lab@latest install prd-generator --scope project
npx harness-lab@latest uninstall prd-generator
npx harness-lab@latest update

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/my-feature)
  3. Commit your changes (git commit -m 'Add my feature')
  4. Push to the branch (git push origin feat/my-feature)
  5. Open a Pull Request

For questions and discussions, visit GitHub Issues.

Developed By

hgflima

Acknowledgements

  • Anthropic for Claude Code
  • alfredang for the github-readme-writer harness
  • sethmblack for the product-vision-frame harness
  • All contributors who submit harnesses to the registry

If you find this useful, please give it a star!