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

claude-rio

v2.0.1

Published

Make Claude Code suggest the right skills and agents at the right time - automatically activate your custom workflows when they're most relevant

Downloads

14

Readme

claude-rio

Deterministic matcher system for Claude Code that significantly improves skill, agent, and command activation.

npm version License: MIT

What is claude-rio?

claude-rio adds keyword-based matching to Claude Code skills, agents, and commands, significantly increasing the probability that Claude will activate them when relevant.

The Problem

Claude Code auto-discovers skills, agents, and commands but doesn't consistently activate them:

  • Claude autonomously decides when to use skills (inconsistent)
  • Agents require perfect description phrasing (unreliable)
  • Commands may be overlooked in favor of direct implementation
  • "Claude doesn't use my skill" is a common issue

The Solution

claude-rio provides explicit activation suggestions based on keyword matching:

  • Keywords match → Claude sees "SUGGESTED: typescript-compiler (Skill tool)"
  • Claude still makes the final decision, but with better awareness
  • Significantly increases activation probability without guaranteeing it

Important: claude-rio improves activation by making Claude aware of relevant skills/agents/commands. However, Claude makes the final decision on whether to use them. Activation depends on prompt clarity, relevance, and Claude's reasoning.

Key Features

  • Deterministic matching for skills, agents, and commands
  • Smooth integration with existing Claude Code setups
  • Zero dependencies - uses only bash/sh and Node.js built-ins
  • Fast execution - shell preprocessing with early exit (~10-20ms when no matches)
  • Cross-platform - works on Windows (PowerShell), macOS, and Linux (bash)
  • Auto-generates matchers - AI-powered matcher creation for existing skills/agents/commands

Requirements

  • Node.js >= 18.0.0
  • Claude Code CLI

Quick Start

# Install hook framework (user-level, applies to all projects)
npx claude-rio setup --user

# Generate matchers for all skills, agents, and commands using Claude Haiku
npx claude-rio generate-matchers --user

# Or install locally in one project (useful for first try)
npx claude-rio setup
npx claude-rio generate-matchers

That's it! claude-rio integrates with your .claude/settings.json automatically.

How It Works

When you submit a prompt, claude-rio:

  1. Checks for matcher files in your skills, agents, and commands
  2. Runs matchers to determine relevance
  3. Suggests relevant skills/agents/commands to Claude with special json according to docs

Claude then sees something like:

SUGGESTED (consider invoking):
- typescript-compiler: Skill tool, skill="typescript-compiler"
- code-reviewer: Task tool, subagent_type="code-reviewer"
- deploy: SlashCommand tool, command="/deploy"

And that affects probability of claude to actually invoke your skills, agents, and commands instead of ignoring them.

Creating Matchers

Matchers are simple JavaScript functions that return whether a skill/agent/command is relevant:

Example Matcher

// .claude/skills/docker-helper/rio/UserPromptSubmit.matcher.js
module.exports = function (context) {
  const prompt = context.prompt.toLowerCase();
  const keywords = ['docker', 'container', 'dockerfile'];

  // Count how many keywords match
  const matchCount = keywords.filter(kw => prompt.includes(kw)).length;

  // IMPORTANT: All fields are MANDATORY
  return {
    version: "2.0",         // Required: always "2.0"
    matchCount: matchCount, // Required: number of matches (0+)
    type: "skill",          // Required: "skill", "agent", or "command"
  };
};

How it works:

  • matchCount = 0: Not relevant, won't be shown
  • matchCount > 0: Ranked by score (higher count = higher rank)
  • Scores are capped at 10 to prevent keyword inflation

Advanced Matchers Examples

Since matchers are represented as arbitrary js functions, you can match on whatever you want - keywords in prompt, text patterns in history, config files, etc.

claude-rio includes 5 example matcher patterns in examples/ for inspiration:

  1. keyword - Simple keyword matching (fastest, most common)
  2. typo-tolerant - Handles misspellings and variations
  3. file-based - Detects project type by checking for indicator files
  4. history-aware - Uses conversation history for context-aware activation
  5. config-based - Reads keywords from configuration file

License

MIT License - see LICENSE file for details.


Made for the Claude Code community