ck-pi-rail
No-emoji adaptive full-width statusline for the Pi coding agent.
Package details
Install ck-pi-rail from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:ck-pi-rail- Package
ck-pi-rail- Version
0.1.0- Published
- Sep 5, 2026
- Downloads
- 88/mo · 88/wk
- Author
- cknb
- License
- MIT
- Types
- extension
- Size
- 143 KB
- Dependencies
- 1 dependency · 2 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
ck-pi-rail
无表情、自适应满宽的 Pi 状态栏。
pi install npm:ck-pi-rail
合集仓库:ck-pi-extension。
特性:
┃起始刻度 + 实色块 +›箭头分隔,科技感导轨条- 终端拉宽铺满、缩窄自动压缩丢段,每行列宽精确等于终端宽度
- 跟随 Pi 主题明暗换底色,无真彩终端自动降 256 色
- 上游插件的 Emoji / 终端转义一律过滤,底栏永不翻车
长什么样
窄屏(50 列)保核心、丢右簇:
┃ omen-alpha › main ↑2 ↓1 › ctx 12.5%/200k
中等(100 列):
┃ omen-alpha › high › ~/Downloads › main ↑2 ↓1 › read › ctx 12.5%/200k › R40k CH80% › $0.42
全屏(160 列)全展开:
┃ π › omen-alpha › high › ~/Downloads › main ↑2 ↓1 › read › ctx 12.5%/200k › ↑12k ↓8k › R40k CH80% › $0.42 › 23:10 › #7 │ TPS 42 · MCP 9
(去色示意,实际每段有独立底色,› 站在导轨底色上。)
每段含义
默认 full 档共 13 段,按顺序渲染:
| 段 | 示例 | 说明 |
|---|---|---|
brand |
π |
Pi 品牌标识 |
provider |
opencode |
模型供应商 ID |
model |
omen-alpha |
模型名,过长从前截断 |
thinking |
high |
思考等级,颜色随等级变化 |
cwd |
~/Downloads |
当前目录,~ 表家目录,过深压成 …/尾两级 |
branch |
main ↑2 ↓1 +2 ~1 ?3 |
分支 + ↑超前 ↓落后 +暂存 ~修改 ?未跟踪 !冲突 + PR(非仓库显示 no-git) |
tools |
read |
有工具运行/等待输入时才出现 |
context |
ctx 12.5%/500k |
上下文用量/窗口总量,70% 变黄、90% 变红 |
tokens |
↑12k ↓8k |
会话累计输入/输出,为 0 时显示 tok 0 |
cache |
R40k W5k CH80% |
缓存读/写/命中率,无缓存时整段隐藏 |
cost |
$0.42 |
会话花费美元,订阅模型带 (sub) |
time |
23:10 |
本地时间 |
turn |
#7 |
会话轮次 |
右侧是其他扩展的状态(TPS、MCP 等),用 · 连接,最多 4 段。
自适应缩放
窗口大小变化时,Pi 每一帧按当前列宽重排,分三档逐级降级:
- 压缩弹性段:目录、模型名、分支按档缩短(
…/src、opus-4-5-20…),不断段 - 丢次要段:按保留优先级丢弃(顺序:context > model > branch > tools > cwd > thinking > cost > provider > cache > tokens > time > turn > brand)
- 右簇让位:右簇只有在不造成左簇丢段时才保留,否则逐段丢弃直至全让
保证:任意宽度下每行可见列宽精确等于终端宽度,左侧永不消失为空。
主题跟随与终端兼容
- 从 Pi 主题
text前景亮度推断明暗(含自定义主题),浅色主题自动换浅灰导轨 getCapabilities().trueColor为假时走 256 色映射,老终端不断层
| 终端 | 真彩 | 字形 |
|---|---|---|
| Ghostty / Kitty / WezTerm / Alacritty / iTerm2 | ✅ | ✅ |
| Terminal.app(macOS 26 Tahoe+) | ✅ | ✅ |
| Terminal.app(旧版) | 256 色降级 | ✅ |
| Windows Terminal / VS Code 集成终端 | ✅ | ✅ |
| tmux / screen(透传开启) | ✅,否则降级 | ✅ |
| Linux 控制台 | 16 色近似 | ✅ |
只用各家等宽字体标配字形:┃ │ › · • … ↑ ↓ π,不需 Nerd Font,不需 Emoji 字体。
CJK 宽字符按终端列宽截断,中英文混排不错位。
配置
配置文件:~/.pi/agent/ck-pi-rail.json(没有则用内置默认)。命令:
/statusline 打开设置菜单(外观 / 信息 / 高级 / 状态 / 帮助)
/statusline settings 直接编辑 JSON
/statusline status 查看来源与告警
/statusline help 查看帮助
信息档位(/statusline → Information 一键切换):
minimal:model、cwd、branch、contextbalanced:model、thinking、cwd、branch、tools、context、timedetailed:provider、model、thinking、cwd、branch、tools、context、tokens、cache、cost、timefull(默认):13 段全上,窄屏自动降级
其他可调:palettePreset(tokyo-night / ocean / sunset / forest / candy / neon / mono / custom)、
palette(每段 fg/bg)、density(compact / cozy)、separator(同色块内分隔符)、
segments(顺序即渲染顺序,插入 line_break 可拆多行)、
segmentText(前后缀与模型名截断方式)、extensionStatusIcons(扩展状态图标,禁 Emoji)。
FAQ
提示 Using legacy pi-statusline.json?
装过旧版 @narumitw/pi-statusline 的机器会有此一次性迁移提醒。
旧插件已卸的话,直接改名即可,配色和段设置会原样继承:
mv ~/.pi/agent/pi-statusline.json ~/.pi/agent/ck-pi-rail.json
窄屏只剩两三段是 bug 吗?
不是,是有意为之:优先保 model 和 ctx,拉宽会自动回来。
看到方框缺字?
把终端字体换任意一款现代等宽字体(Menlo、SF Mono、Cascadia、JetBrains Mono 均可),
本包不用 Nerd Font,但太老的点阵字体可能缺 ›。
能上报表头 Emoji 吗?
不能。所有入口文本统一过长度限制 + sanitizeTerminalText + stripEmoji,
上游扩展带什么符号都进不了底栏,这是设计原则。
作者
传康Kk(万能程序员)——GitHub:1837620622,
邮箱:1837620622@qq.com。License: MIT.