pi-incarnate-ui
A compact character-aware footer for pi-incarnate
Package details
Install pi-incarnate-ui from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-incarnate-ui- Package
pi-incarnate-ui- Version
0.2.0- Published
- Sep 11, 2026
- Downloads
- 316/mo · 189/wk
- Author
- revmsonwe
- License
- MIT
- Types
- extension
- Size
- 41.6 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./extensions/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-incarnate-ui
pi-incarnate-ui 是 pi-incarnate 的可选固定终端界面。
它使用 Pi 的公开 setFooter() API,把角色呈现和必要的 Pi 运行信息组合成固定底部区域:
- 固定区域严格不超过 6 行,避免压缩对话和输入框。
- 宽终端优先在 4 行预算内等比显示
avatar.png,旁边显示角色、mood、来源和表单状态;没有 PNG 或图片协议不可用时使用 ANSI/TXT 四行采样回退。 - 终端窄于 72 列或低于 20 行时,自动降级为 1 行角色状态加 2 行运行信息。
off、未启用角色或核心扩展没有响应时完全归还 Pi 默认 Footer,不占用空闲布局。- 保留工作目录、Git 分支、session 名称、输入/输出与缓存 token、缓存命中率、cost、上下文占用、模型、provider、thinking 和其他扩展状态。
- Pi 默认启动 Header、对话、工具输出和输入框保持原样。
/incarnate-ui可按需打开完整头像浮层,Enter、Esc 或q关闭;浮层关闭后返回原输入界面。
当前版本为 0.2.0,新增 PNG 等比头像、兼容回退和主题错配时的主信息对比度保护。可使用 pi install npm:pi-incarnate-ui 安装;当前仍不处理与其他自定义 Footer 扩展的共存。
Development
npm install
npm run release:check
npm run test:companion
pi --no-extensions \
-e /path/to/pi-incarnate/extensions/index.ts \
-e /path/to/pi-incarnate-ui/extensions/index.ts
test:companion 要求核心仓库位于同级目录 /path/to/pi-incarnate。它加载两个真实扩展入口,验证两种加载顺序、状态生命周期、未知协议版本和缺失另一端的降级。
启动后通过 /incarnate 选择角色。核心扩展只管理人格、角色资源和安全清理;所有终端绘制均由本 UI 扩展负责。未加载 UI 时人格仍然生效,但不显示角色图。PNG 通过 Pi 的 Image 组件使用 Kitty 或 iTerm2 协议渲染,按原始像素尺寸与终端 cell 尺寸等比缩放;Pi 禁用图片或终端不支持时不会输出占位图。
需要查看未经四行采样的完整头像时运行:
/incarnate-ui
查看器只在 TUI 中打开临时居中浮层,使用核心已经验证的 PNG 或清理并限制为最多 48×16 的文本头像数据,不读取角色目录,也不改变 Footer 模式。PNG 在浮层可用空间内等比缩放;文本头像在终端高度不足时可用 ↑ / ↓ 滚动查看全部行。
当前边界
- 只在 TUI 模式设置 Footer;RPC、JSON 和 print 模式不接管表现层。
- 角色状态由版本化的
pi.events协议传递,UI 不直接读取角色目录。 compact使用 3 行布局;auto和full在宽度足够时使用最多 6 行布局;off或未激活状态不接管 Footer。- PNG 常驻预览保持宽高比并限制为四行;ANSI/TXT 回退仍从完整文本资源抽样,因此不等同于完整原图。完整内容由按需查看器提供。
- PNG-only 角色在图片协议不可用时降级为紧凑角色状态;建议同时提供
avatar.ansi或avatar.txt。 - 完整头像查看器是临时 overlay,不占用常驻布局;无活动头像或非 TUI 模式时只给出提示。
- 当前角色状态仍由 pi-incarnate 按 session 管理;新会话默认关闭,需要重新选择角色,此时显示 Pi 自身的默认 Footer。
- Pi 0.85.0 的公开扩展上下文不暴露通用订阅检测和 auto-compaction 开关;UI 只保留默认 Footer 可公开重建的信息,并沿用 Pi 对
kimi-coding的已知订阅标记。其他 provider 的内部订阅状态与 auto-compaction 标记不显示。