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.farm/skillctl

v0.1.3

Published

Unified skill manager for Claude Code, Cursor, Windsurf, OpenCode, OpenClaw

Readme

skillctl

Unified skill manager for AI coding tools. Install skills from the registry, sync them to Claude Code, Cursor, Windsurf, OpenCode, and OpenClaw with a single command.

npm install -g @harness.farm/skillctl

What is a skill?

A skill is a SKILL.md file that extends what an AI coding tool can do. Skills follow the open AgentSkills standard and work across all supported clients.

my-skill/
├── SKILL.md        # instructions + frontmatter (required)
├── examples/       # optional supporting files
└── scripts/
# SKILL.md
---
name: my-skill
version: 1.0.0
description: What this skill does and when to use it
---

Your instructions here...

Commands

Local management

skillctl list                   # list installed skills
skillctl enable <name>          # enable a skill
skillctl disable <name>         # disable a skill
skillctl sync                   # sync skills to all enabled clients

Clients

skillctl clients                # show all clients and their status
skillctl clients enable <id>    # enable a client
skillctl clients disable <id>   # disable a client

Client IDs: claude-code, cursor, windsurf, opencode, openclaw

Registry

skillctl search                 # browse all skills
skillctl search <query>         # search by name or description
skillctl install <name>         # install latest version
skillctl install <name>@<ver>   # install specific version
skillctl publish [dir]          # publish current dir (or specified dir)

CLI Tools

skillctl cli                    # list registered CLI tools

How sync works

Skills are stored in ~/.skillctl/skills/. When you run skillctl sync, each enabled skill is symlinked into the skills directory of every enabled client:

| Client | Skills directory | |--------|-----------------| | Claude Code | ~/.claude/skills/ | | Cursor | ~/.cursor/skills/ | | Windsurf | ~/.codeium/windsurf/skills/ | | OpenCode | ~/.config/opencode/skills/ | | OpenClaw | ~/.openclaw/skills/ |

Sync uses a merge strategy: skillctl only writes its own skills and never removes skills you created manually in those directories.

Publishing

Set your publish token, then run publish from a skill directory:

export SKILLCTL_TOKEN=your_token
skillctl publish ./my-skill

The skill directory must contain a SKILL.md with name and version in the frontmatter. Once published, anyone can install it:

skillctl install my-skill

Browse published skills at skillctl.dev/marketplace.

Config

Skills and registry state are stored in ~/.skillctl/:

~/.skillctl/
├── skills/          # installed skills
├── cli/             # registered CLI tools
└── registry.yaml    # enabled/disabled state per skill and client

Example workflow

# Find and install a skill
skillctl search design
skillctl install next-variant

# Sync to all your AI tools
skillctl sync

# Check what's installed
skillctl list

# Disable for a specific client by editing ~/.skillctl/registry.yaml
# or disable the client entirely
skillctl clients disable windsurf