theme-dark-terminal — Paint Pi Like a Real Terminal
TL;DR
Want Pi to look like a serious hacker terminal instead of a generic gray-blue panel: install Dark Terminal, toggle /settings, zero behavior change.
Overview
The default theme aims for "generic readable", but doesn't fit everyone: diffs in low light need higher contrast, some prefer the classic terminal (black bg, neon green, pure-red warnings). @piex-dev/theme-dark-terminal does no TypeScript logic — it only provides a JSON under Pi's official theme schema, mapping the whole UI token set to a high-contrast "dark terminal" palette. Sourced from opencode-themes/dark-terminal color roles.
How it works
Pi themes are data, not plugin code: a theme package mounts "pi": { "themes": ["./theme.json"] }; Pi scans themes/*.json on startup, validating name + colors. Zero runtime, zero hooks: switching a theme never changes agent behavior. Tokens layer vars (palette atoms) → colors (semantic tokens pointing to vars) — change one green and accent/success/diff-added all shift together.
| Role | Color | Used for |
|---|---|---|
| Accent | #00ff00 green | accent, success, diff added |
| Structure | #00aaff blue | border, links, keyword |
| Error | #ff0000 red | error, string, high thinking |
| Warning | #ffff00 yellow | warning, function |
| Background | #050505 | page & panel |
No gradients, no muted tones: CRT-style readable impact.
Usage
Install
pi install npm:@piex-dev/theme-dark-terminal
# then /settings → theme: dark-terminalSource: themes/dark-terminal
Configuration
Use an absolute path for global install, otherwise /reload resolves the relative path against the settings file location and the theme may "disappear". Project-level pi install -l ./themes/dark-terminal is safer. npm install goes through the package path, easier than hand-writing relative paths.
Switch
/settings → theme pick dark-terminal, /reload to apply.
Implementation
Pure JSON: package.json + theme.json. Fills all required Pi theme schema color tokens (dozens): general (accent/border/success/error/warning/muted/text), messages, tools (pending/success/error/diff add-remove), Markdown (headings/lists/links/quote), Syntax (keyword/string/function/type), Thinking gradient (off→max, top tier neon pink #ff0088, a Pi-side addition). The theme package deliberately does not: register tools/commands, read files or touch the network, depend on Node APIs — smallest risk surface, also an example of "extension distribution mechanism".
Design notes
| Project | Mechanism | piex choice |
|---|---|---|
| opencode-themes dark-terminal | 51-token high-contrast dark terminal palette; bg:#050505, green/blue/red accent | Adopted: color roles & semantic mapping. Adapted to Pi's extra tokens (thinking gradient #ff0088 Pi-side addition) |
| pi theme schema | vars→colors two-layer; pi.themes JSON distribution; zero-code hot reload | Fully followed: static JSON only, no TS, no hooks |
Core trade-off: no code, no behavior change, no host-terminal binding; just translate the opencode-themes palette to Pi token names.
Changelog
Roadmap
| Direction | Plan |
|---|---|
| Only one high-contrast dark variant | variants: dark-terminal-soft (desaturated), colorblind-safe branch |
| Color-tweaking by eye | token reference table + local/optional CI visual regression |
| Layering with terminal emulator themes | document recommended outer config, don't try to control the host terminal |
| Tracking pi schema evolution | version notes track schema; missing-key fallback strategy documented |
| Theme assets still manual | build a role-mapping table to generate multiple piex theme packages; settings deeplinks |
Version history
| Version | Date | Changes |
|---|---|---|
| 0.1.1 | 2026-07-19 | Initial release: high-contrast dark terminal palette (black bg #050505 + neon green/blue/cyan/red/yellow); vars→colors two-layer token mapping; fills all required Pi theme schema color tokens (general/message/tool/diff/markdown/syntax/thinking gradient); zero-code zero-hook pure JSON; thinking top tier neon pink #ff0088 (Pi-side addition) |
Source Markdown: docs/packages/theme-dark-terminal.md