@smoose/pi-themes
Theme pack for pi with file-based theme switching.
Package details
Install @smoose/pi-themes from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@smoose/pi-themes- Package
@smoose/pi-themes- Version
0.1.0- Published
- May 29, 2026
- Downloads
- not available
- Author
- smoose
- License
- MIT
- Types
- extension, theme
- Size
- 31 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./extensions"
],
"themes": [
"./themes"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-themes
A theme pack for pi, with file-based switching for paired light/dark theme families.
Installation
pi install npm:@smoose/pi-themes
This package currently includes Everforest, Tundra, Rosé Pine, OneDark, Gruvbox, and Bearded Arc. Paired theme families can follow the <family>-light / <family>-dark naming convention; standalone themes can be selected by concrete theme name in the control file.
Included themes
Everforest
everforest-darkeverforest-light
Tundra
Extracted from sam4llis/nvim-tundra's arctic palette and stylesheet:
tundra-dark
Rosé Pine
Extracted from the official Rosé Pine palette:
rosepine-darkrosepine-light
OneDark
Extracted from navarasu/onedark.nvim's palette styles:
onedark-darkonedark-light
Gruvbox
Extracted from morhetz/gruvbox's medium-contrast palette:
gruvbox-darkgruvbox-light
Bearded Arc
Extracted from BeardedBear/bearded-theme's Arc variation:
bearded-arc-dark
How switching works
The running pi extension watches a small control file. When the file changes, the extension reads it and calls ctx.ui.setTheme(...) inside pi.
The extension also sets a footer/status key named pi-themes, which can be consumed or styled together with other footer plugins.
Default control file:
~/.pi/agent/pi-theme.json
Override it with:
PI_THEME_CONTROL_FILE=/path/to/pi-theme.json
Control file format
Select a paired theme family and appearance:
{
"family": "everforest",
"appearance": "dark"
}
This switches to:
everforest-dark
Set a concrete theme directly:
{
"theme": "tundra-dark"
}
External tools can write this file however they like, for example:
mkdir -p ~/.pi/agent
printf '{"family":"everforest","appearance":"dark"}\n' > ~/.pi/agent/pi-theme.json
printf '{"theme":"tundra-dark"}\n' > ~/.pi/agent/pi-theme.json
Pi command
Inside pi, theme-family control is also available through:
/theme everforest # defaults to everforest-dark
/theme everforest light
/theme rosepine light
/theme tundra # defaults to tundra-dark
The command format is:
/theme <family> [dark|light]
If dark or light is omitted, dark is used. The command only requires the target concrete theme to exist, so dark-only families like tundra-dark are supported.
Environment
PI_THEME=everforest
PI_THEME_CONTROL_FILE=~/.pi/agent/pi-theme.json
PI_THEME sets the default family used when the /theme command omits a family-specific context. File-based switching itself is driven by the control file.