theme-dark-terminal — 把 pi 涂成一台真正的终端
导语
想把 pi 看成一台认真的黑客终端,而不是通用灰蓝面板:装上 Dark Terminal,/settings 切一下即可,行为逻辑零改变。
简介
默认主题追求「通用好读」,但不一定符合所有人审美:暗光下看 diff 需要更高对比,有人习惯经典终端(黑底、荧光绿、警告纯红)。@piex-dev/theme-dark-terminal 不做任何 TypeScript 逻辑,只提供一份 pi 官方主题 schema 下的 JSON:把整套 UI token 映射成高对比「暗终端」调色板。来源是 opencode-themes/dark-terminal 的色彩角色。
技术原理
pi 的主题是数据不是插件代码:主题包挂 "pi": { "themes": ["./theme.json"] },pi 启动扫描 themes/*.json 校验 name + colors。零运行时、零 hook:换主题不改 agent 行为。Token 分层 vars(调色板原子色)→ colors(语义 token 指向 var),改一个 green,accent/success/diff added 一起变。
| 角色 | 颜色 | 用在 |
|---|---|---|
| 主强调 | #00ff00 绿 | accent、success、diff 加行 |
| 结构 | #00aaff 蓝 | border、链接、keyword |
| 错误 | #ff0000 红 | error、string、高 thinking |
| 警告 | #ffff00 黄 | warning、function |
| 背景 | #050505 | 页面与 panel |
没有渐变、没有莫兰迪:要的就是 CRT 式可读冲击力。
使用说明
安装
pi install npm:@piex-dev/theme-dark-terminal
# 然后 /settings → theme: dark-terminal仓库源码:themes/dark-terminal
配置
全局安装请用绝对路径,否则 /reload 后相对路径按 settings 文件位置解析,主题可能「丢了」。项目级 pi install -l ./themes/dark-terminal 更稳。npm 包安装走包管理路径,比手写相对路径省心。
切换
/settings → theme 选 dark-terminal,/reload 即生效。
实现方案
纯 JSON:package.json + theme.json。填齐 pi theme schema 必需 color token(数十个):通用(accent/border/success/error/warning/muted/text)、消息、工具(pending/success/error/diff 加减行)、Markdown(标题/列表/链接/引用)、Syntax(keyword/string/function/type)、Thinking gradient(off→max,最高档亮粉 #ff0088,pi 侧增量)。主题包刻意不做:不注册 tool/command、不读文件不碰网络、不依赖 Node API——风险面最小,也是「扩展分发机制」示例。
设计参考
| 项目 | 机制 | piex 取舍 |
|---|---|---|
| opencode-themes dark-terminal | 51 token 高对比暗终端配色;bg:#050505、green/blue/red 强调 | 采纳:色彩角色与语义映射。适配pi 额外 token(thinking gradient #ff0088 为 pi 侧增量) |
| pi theme schema | vars→colors 两层映射;pi.themes JSON 分发;零代码热加载 | 完全遵循:只提供静态 JSON,不写 TS、不走 hook |
核心取舍:不做代码、不改行为、不绑宿主终端;只把 opencode-themes 色板翻译到 pi token 名。
迭代记录
路线图
| 方向 | 打算 |
|---|---|
| 只有强对比暗色一款 | 同系列变体 dark-terminal-soft(降饱和)、色弱安全分支 |
| 改色靠肉眼 | token 说明表 + 本地/可选 CI 视觉回归 |
| 与终端模拟器主题叠层 | 文档给推荐外层配置,不试图控制宿主终端 |
| 跟 pi schema 演进 | 版本说明跟 schema;缺键降级策略写清楚 |
| 主题资产偏手工 | 建角色映射表一键生成多个 piex 主题包;settings 深链 |
版本记录
| 版本 | 日期 | 变更 |
|---|---|---|
| 0.1.1 | 2026-07-19 | 初始版本:高对比暗终端调色板(黑底 #050505 + 荧光绿/蓝/青/红/黄);vars→colors 两层 token 映射;填齐 pi theme schema 必需 color token(通用/消息/工具/diff/markdown/syntax/thinking gradient);零代码零 hook 纯 JSON;thinking 最高档亮粉 #ff0088(pi 侧增量) |
源稿 Markdown:docs/packages/theme-dark-terminal.md