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

pi-skill-toggle

v1.0.1

Published

Enable/disable skills from loading into pi context at startup

Readme

Pi Skill Toggle

I have a confession to make. I'm a skill hoarder. We moved from MCP servers polluting our context to now the irresistible urge to gather and hoard skills that then do the same once you gather enough of them. The problem is I'm afraid to remove them and forget that they exist or where to find them in my system, and it's a pain to re-enable them when needed for a specific use case. So I created this project inspired by Pi Skill Palette that lets me enable and disable all the 'SKILLs' I have without them disappearing from my visual memory, but still maintaining control over what gets pumped into my context.

Full credit to nicobailon for pi-skill-palette which was the foundation of this. I just pointed my clanker at that project and basically said "make that project but have it toggle skills instead."

Install

pi install npm:pi-skill-toggle

Or from git:

pi install git:github.com/Whamp/pi-skill-toggle

Restart pi to load the extension.

Usage

/skills-toggle

This opens an interactive overlay where you can:

  • Navigate with ↑/↓ arrows
  • Filter by typing
  • Enter/Space - Toggle between enabled ↔ hidden
  • d - Toggle full disable (enabled ↔ disabled)
  • Ctrl+S - Save changes
  • Esc - Cancel

How It Works

Skills are disabled by adding -path entries to the skills array in ~/.pi/agent/settings.json. For example:

{
  "skills": [
    "-skills/brainstorming",
    "-skills/cloud-compute"
  ]
}

This uses pi's built-in resource filtering mechanism. Disabled skills:

  • Won't appear in your system prompt
  • Won't load their frontmatter into context
  • Are still visible in the /skills-toggle UI (shown as disabled)

Changes require a restart (or /reload) to take effect.

Disable Modes

Hidden (Default Toggle)

Use hidden when you still want to call the skill manually via /skill:name but don't want day-to-day context pollution. The model won't auto-invoke it, keeping your system prompt lean, but you retain access when needed.

Examples: Specialized debugging skills, infrequently-used cloud tools, niche domain skills you call explicitly.

Hidden mode sets disable-model-invocation: true in the skill's SKILL.md frontmatter.

Fully Disabled

Use fully disabled when you want to clean up your slash command menu so less-used skills don't overwhelm your UI/UX. The skill won't appear anywhere—not in the system prompt, not in /skill: completions.

Examples: Deprecated skills, skills from packages you rarely use, duplicates you'll never need.

Disabled mode adds -path entries to settings.json (pi's built-in mechanism).

Visual Indicators

| Icon | Meaning | |------|---------| | ● (green) | Enabled - skill active in context | | ◐ (yellow) | Hidden - manual only via /skill:name | | ○ (red) | Disabled - completely off | | * (yellow) | Pending change (not yet saved) | | ² | Skill has multiple sources (duplicates) |

Theming

Create theme.json in the extension directory to customize colors. Copy theme.example.json as a starting point:

{
  "border": "2",
  "title": "2",
  "enabled": "32",
  "hidden": "33",
  "disabled": "31",
  "selected": "36",
  "selectedText": "36",
  "searchIcon": "2",
  "placeholder": "2;3",
  "description": "2",
  "hint": "2",
  "changed": "33",
  "duplicate": "35"
}

Values are ANSI SGR codes (e.g., "36" for cyan, "2;3" for dim+italic).

Skill Locations Scanned

The extension discovers skills from:

  1. ~/.codex/skills/ (recursive)
  2. ~/.claude/skills/ (one level deep)
  3. .claude/skills/ (project, one level deep)
  4. ~/.pi/agent/skills/ (recursive)
  5. ~/.pi/skills/ (recursive)
  6. .pi/skills/ (project, recursive)

License

MIT