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

@collabb/knack

v0.2.0

Published

Skill materialization workspace. Turn expertise into agents that work, in a weekend.

Readme

Knack

Turn expertise into Claude skills that work. In a weekend.

npm

Knack is the authoring workspace for Claude skills. You give it a few exemplars (good/bad outputs with a one-line reason) and a few fixtures (test inputs). It writes the skill, evaluates it with a rubric judge panel, and sharpens it as you add more exemplars.

The wedge is the sharpening loop: every output you accept or reject becomes signal that improves the next version. The CLI + local UI make that loop frictionless.

Quickstart

export ANTHROPIC_API_KEY=sk-ant-...
npx @collabb/knack init my-skill
npx @collabb/knack ui

knack ui opens a localhost dashboard at http://127.0.0.1:4242 — run the skill against real inputs, click Save as exemplar on outputs you like or dislike, hit Materialize to refine the skill, Eval to score it.

Install

npm install -g @collabb/knack

Or per-project:

npm install --save-dev @collabb/knack

CLI

# create a skill
knack init my-skill

# add exemplars (good/bad/forbidden examples + one-line reason)
knack add my-skill exemplar

# add fixtures (test inputs + expected behavior)
knack add my-skill fixture

# refine the skill from its exemplars (Sonnet 4.6)
# also auto-regenerates the Hammurabi rubric from exemplar tags
knack materialize my-skill

# auto-generate the rubric on demand (--refine for Sonnet 4.6 polish)
knack rubric my-skill [--refine]

# evaluate against fixtures
knack eval my-skill                # Haiku 4.5 judge, single-criterion
knack eval my-skill --hammurabi    # multi-criterion + judge panel + audit trail

# pairwise diff vs previous version
knack diff my-skill

# inspect
knack list
knack show my-skill

# local UI
knack ui [--port 4242]

How it works

  • Each skill lives in skills/<name>/ as a directory of markdown files.
  • Exemplars (exemplars/*.md) are annotated good/bad/forbidden examples with a reason.
  • Fixtures (fixtures/*.md) are test inputs with expected behavior.
  • materialize runs an LLM pipeline that reads the skill + exemplars and writes a refined skill.md. Previous version archived to versions/.
  • eval runs the current skill against every fixture, judged by an LLM with strict pass/fail + reasoning.
  • eval --hammurabi runs through Hammurabi's runner instead — configurable judge panel, multi-criterion weighted scoring, baseline + regression detection, full audit trail per judge.
  • rubric auto-generates the Hammurabi rubric from the skill's exemplar tags. Recurring tags (and any tag carrying a forbidden: true flag) become criteria with frequency-proportional weights (0.05 floor). --refine invokes Sonnet 4.6 to polish criterion descriptions and add anchored judgePrompts.
  • diff runs both versions against every fixture, then a blind pairwise judge picks the better output for each.

The local UI

knack ui boots a Hono server on 127.0.0.1 (localhost-only with layered defenses: Host allowlist + Sec-Fetch-Site allowlist + per-server CSRF). Single-user. No auth. No build step.

Routes you'll use:

  • Skill list — every skill in skills/
  • Skill detail — signal card, rubric summary, latest eval verdict, exemplars + fixtures, action buttons
  • Run — streaming output, then a "Save as exemplar" form with tags pre-populated from this skill's tag vocabulary
  • Materialize / Rubric / Eval — one-click triggers that mirror the CLI commands

Conventions

  • Skills use markdown with frontmatter.
  • Anthropic-only for MVP (Sonnet 4.6 for generation, Haiku 4.5 for judging). Multi-provider dispatch coming.
  • Prompt caching is applied to the skill body across every call in a session.
  • File-based: no database, no server (besides the local UI). Everything is git-versionable.

Optional: Cloudflare AI Gateway

Route Claude calls through Cloudflare AI Gateway for caching/observability:

export AI_GATEWAY_URL=https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/anthropic

Development

git clone https://github.com/collabb-innovations/knack
cd knack
npm install
npm run knack -- --help    # dev mode via tsx
npm test                   # 59 tests, tsx --test
npm run build              # compile to dist/

License

MIT