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

@codewithkenzo/pi-theme-switcher

v0.1.3

Published

Switch and preview Pi themes during live sessions

Readme

Theme Switcher

@codewithkenzo/pi-theme-switcher — Runtime theme selection and preview for the Pi coding agent.

Part of the Pi Rig suite.

Theme Switcher lets the agent switch, preview, and cycle themes during a live session. It persists the active theme across restarts and injects current-theme context into each session.

Surfaces

| Type | Name | Purpose | |------|------|---------| | Tool | theme_set | Set the active theme by name | | Tool | theme_list | List available themes | | Tool | theme_preview | Preview a theme without committing | | Command | /theme status | Show the current active theme | | Command | /theme set <name> | Set the active theme | | Command | /theme list | List available themes | | Command | /theme preview <name> | Preview a theme | | Command | /theme cycle | Cycle to the next theme |

Palette preview (compact)

accent · header · success · warning · error swatches (flat-square, no rounded corners).

| NF | Palette | Variant | Preview | |---|---|---|---| | | catppuccin-mocha | dark | #89b4fa #cba6f7 #a6e3a1 #f9e2af #f38ba8 | | | catppuccin-latte | light | #1e66f5 #8839ef #40a02b #df8e1d #d20f39 | | | nord | dark | #88c0d0 #5e81ac #a3be8c #ebcb8b #bf616a | | | dracula | dark | #bd93f9 #bd93f9 #50fa7b #f1fa8c #ff5555 | | | tokyo-night | dark | #7aa2f7 #bb9af7 #9ece6a #e0af68 #f7768e | | | electric-midnight | dark | #8B5CF6 #E4E4E7 #3B82F6 #8B5CF6 #DC2626 | | | cadet | dark | #7D39EB #F5F4EE #C6FF33 #C6FF33 #FF6B6B | | | soho | dark | #C4A7E7 #EA9A97 #9CCFD8 #F6C177 #EB6F92 | | | orchid | dark | #81A1C1 #81A1C1 #A3BE8C #DFCA9A #E8A4CC | | | storm | dark | #7AA2F7 #BB9AF7 #9ECE6A #E0AF68 #F7768E |

More palettes are available in runtime (/theme list) and the picker.

Architecture

index.ts              Extension entry — registers tools, commands, session hooks
src/
  types.ts            TypeBox schemas + tagged errors
  state.ts            Active theme state (in-memory)
  runtime.ts          Theme application and validation
  tools.ts            theme_set, theme_list, theme_preview
  commands.ts         /theme command handler
  picker.ts           Interactive theme picker
  lifecycle.ts        Session restore and agent-end persistence
  session.ts          Theme context injection into session entries
  renderers.ts        Theme preview rendering
  ui.ts               TUI helpers
skills/
  theme-switcher/
    SKILL.md          Bundled skill for agent context

Key patterns

  • Session persistence — active theme is saved on agent_end and restored on session_start.
  • Context injection — current theme is injected into the session so the agent is always aware of the active state.
  • Effect at boundaries — async operations use Effect-TS. All exits to the pi API surface use Effect.runPromise.

Install

One command (published package)

pi install npm:@codewithkenzo/pi-theme-switcher

All Pi Rig extensions at once

Bun

bunx @codewithkenzo/pi-rig@latest

npm

npx @codewithkenzo/pi-rig@latest

From source

bun run setup              # full workspace
# or individually:
pi install ./extensions/theme-switcher

Prerequisites

Development

cd extensions/theme-switcher
bun install
bun run build       # runtime bundle for the Pi coding agent
bun run typecheck   # typecheck
bun test            # tests

Links