pi-aura1.0.0
A polished TUI for the Pi coding agent: welcome header, responsive footer, framed editor, telemetry, copy buttons, and the bundled tidy transcript.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-aura
English | 简体中文
本项目由 AI 开发。 这里的代码、测试和文档全部由 AI 编码代理(Pi 驱动 DeepSeek 模型)在人工提出需求、审阅与验收下生成。人负责需求、验收和发布,代理负责编写与验证。
给 Pi 编码代理用的终端界面——欢迎页、高密度底栏、带边框的编辑器、遥测、复制按钮和整理过的会话记录。

亮点
| 欢迎页 | 2× 放大的 Pi 品牌图标、按时段变化的问候语、当前模型和信息网格——九行,没有冗余 |
| 底栏 | Git、运行时、上下文、Token、费用、实时 TPS、扩展状态,还有真实的 DeepSeek 余额 |
| 带边框的编辑器 | 块状、竖线、下划线光标;其它扩展的编辑器保持兼容 |
| 单轮遥测 | TPS、首 Token 延迟、耗时、停顿、Token、每百万单价 |
| 复制按钮 | 全屏模式下代码块和你的消息带可点击 [Copy] |
| 整理后的会话记录 | 内置 pi-tidy 0.7.3:分组折叠工具调用、圆角框、左右对照 diff |
/aura 设置 |
五个页面,英文和简体中文,改动实时生效 |
安装
pi install npm:pi-aura
单次试用:pi -e npm:pi-aura · 本地安装:pi install /path/to/pi-aura
需要 Pi 1.2.0+ 和 Node.js 22.19.0+。Nerd Font 能解锁完整图标;unicode 和 ascii 模式不需要补丁字体。
欢迎页
╭─ Pi v1.4.0 ────────────────────────────────────────────────╮
│
│ ██████ Good morning, Sixteen · ⌨ Deepseek-flash
│ ██ ██
│ ████ ██ model Deepseek-flash tools 16
│ ██ ██ cwd Z:\ skills pdf
│ branch main session local-ui
│
╰────────────────────────────────────────────────────────────╯
问候语按时段变化;名字依次取 PI_HEADER_NAME → git config user.name → 系统用户名。信息网格把可用宽度分成两列,窄终端退化为单列。在 aura.json 里设 header: false 可把位置交还给 Pi。
底栏
- Git——分支、ahead/behind、已暂存、已修改、未跟踪、stash、detached HEAD
- 运行时——识别 50 多种运行时并显示图标
- 上下文与 Token——用量、总数、最近一次回复的缓存命中率
- 费用——美元或人民币,两位小数,仅显示换算
- 实时 TPS——流式输出时的估算速度,工具调用期间变暗
行宽不足时依次丢弃:先运行时和上下文,再 Git、会话名、主机名、计时器;cwd 保留最久。
DeepSeek 余额
provider 为 deepseek 时,底栏在费用旁边显示账户余额:GET https://api.deepseek.com/user/balance 返回的人民币 total_balance。Key 从 auth.json 读取,只发往该接口。启动时请求、缓存十分钟、后台刷新、超时十秒——加载中显示 …,失败显示 --。它属于 footerSegments.cost 分组。
单轮遥测
> TPS 42.5 tok/s | ~ TTFT 1.2s | + 29.7s | ↑ 567 | ↓ 1.2k | ! stall 1x / 4.3s | ¥ 3.60/M
M = 每百万 Token;最后一项是每 1M Token 的单价,不是会话累计费用。TPS 等于服务商报告的输出 Token 除以总生成时间。每个字段都能在遥测页单独开关。
复制按钮
全屏模式下,每个围栏代码块都会套上带语言标记和 [Copy] 的框,你的消息同样带一个:
╭─ sh ─────────────── [Copy] ╮
│ pi install npm:pi-aura │
╰────────────────────────────╯
复制时去掉围栏、保留缩进和制表符。流式回复结束后才出现标签。在 常规 → 复制按钮(copyButtons)开启。
工具折叠(pi-tidy)
内置 pi-tidy 0.7.3(MIT,见 THIRD_PARTY_NOTICES.md)接管会话记录:分组折叠工具调用并统计失败、按工具上色的圆角框、左右对照 diff、实时后台任务、右对齐的 User 消息框,以及带模型名和时间的最终回复框。所有框让出最后一列给 Pi 的滚动条。配置在 settings.json 的 tidy 键下,或在 /aura → 工具折叠 修改。
设置
运行 /aura。Tab/←/→ 切页,↑/↓ 移动,Enter/Space 切换,Esc/q 关闭。
| 页面 | 内容 |
|---|---|
| 常规 | 启用、顶部信息栏、语言、货币、底栏嵌入、复制按钮、左键选中即复制 |
| 外观 | 图标模式 |
| 底栏 | 各底栏分段 |
| 遥测 | 遥测及各字段 |
| 工具折叠 | pi-tidy 选项 |
保存在 Pi agent 目录下的 aura.json(默认 ~/.pi/agent,PI_CODING_AGENT_DIR 可覆盖)。Tidy 和「左键选中即复制」写入 settings.json。
配置
{
"header": true,
"settingsLanguage": "zh",
"currency": "cny",
"currencyRate": 7.2,
"cursorStyle": "underline",
"icons": { "mode": "nerd" }
}
| 选项 | 可选值 | 默认 |
|---|---|---|
enabled |
true、false |
true |
header |
true、false |
true |
inlineFooter |
true、false |
false |
copyButtons |
true、false |
false |
settingsLanguage |
en、zh |
zh |
currency |
usd、cny |
cny |
currencyRate |
数字 | 7.2 |
cursorStyle |
block、bar、underline |
underline |
icons.mode |
auto、nerd、unicode、ascii |
nerd |
footerSegments.* |
布尔 | 各有默认 |
telemetry.* |
布尔 | true |
tidy(settings.json) |
pi-tidy 选项 | — |
fullscreenCopyOnSelect(settings.json) |
布尔 | — |
currencyRate 是美元兑人民币汇率,仅用于显示。bar 和 underline 光标需要终端支持。完整的 footerSegments 和 telemetry 块见 /aura 写出的 aura.json。
兼容性
Aura 只为保留 Pi 原生布局、光标、鼠标和 padding API 的编辑器套框,包括 CustomEditor 扩展。它装饰同一个实例,幽灵文本、按键处理、补全和提交回调都不受影响;通过 ctx.ui.setEditorComponent() 注册的编辑器,无论在 pi-aura 之前还是之后,都会被套框。没有原生边框、或探测抛错的编辑器保持原样。
开发
npm install
npm run typecheck
npm test
pi -e .
133 项测试,跑在 node --test 上。CI 覆盖 Pi 1.2.0 和最新版、Node 22.19.0 和 24,以及 Linux、Windows、macOS。字体、鼠标和光标支持需要真实终端,用 pi -e . 检查。
致谢
- pi-haiku——底栏结构、工作计时器
- pi-claude-code-tui——图标画法、圆角编辑器边框
- pi-zentui——底栏分段、运行时识别、设置界面
- pi-tps——轮次计时、停顿检测、TPS
- pi-tidy——内置会话记录渲染器(MIT)
图标图案来自 Pi 官方安装脚本。感谢 LINUX DO 社区。
开发方式
pi-aura 是一次 AI 驱动开发的尝试:需求在对话里提出,由代理实现,提交前用 tsc、测试和人工终端检查验证。仓库提交记录保留了真实过程——包括排查 bug、清理死代码和回滚,没有做整理或重写。