@codewithkenzo/pi-theme-switcher
Switch and preview Pi themes during live sessions
Package details
Install @codewithkenzo/pi-theme-switcher from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@codewithkenzo/pi-theme-switcher- Package
@codewithkenzo/pi-theme-switcher- Version
0.1.8- Published
- Jul 2, 2026
- Downloads
- 764/mo · 29/wk
- Author
- codewithkenzo
- License
- unknown
- Types
- extension
- Size
- 646.2 KB
- Dependencies
- 3 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./dist/index.js"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
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.
Quick demo
Shows live preview, theme changes, and session-aware runtime theming in action.
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 | |
|
catppuccin-latte |
light | |
|
nord |
dark | |
|
dracula |
dark | |
|
tokyo-night |
dark | |
|
electric-midnight |
dark | |
|
cadet |
dark | |
|
soho |
dark | |
|
orchid |
dark | |
|
storm |
dark |
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_endand restored onsession_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
pi install npm:@codewithkenzo/pi-theme-switcher
Or install all Pi Rig extensions at once:
bunx @codewithkenzo/pi-rig@latest
bun run setup
# or individually:
pi install ./extensions/theme-switcher
Prerequisites
- Bun >= 1.3
- Pi coding agent installed and on your PATH
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
- Pi Rig suite — monorepo with all extensions, installer, and docs
- Pi coding agent — upstream runtime
- npm: @codewithkenzo/pi-theme-switcher
- Related: @codewithkenzo/pi-dispatch, @codewithkenzo/pi-gateway-messaging, @codewithkenzo/pi-notify-cron
