pi-zh-cn
pi 编码代理的简体中文界面汉化插件
Package details
Install pi-zh-cn from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-zh-cn- Package
pi-zh-cn- Version
0.2.6- Published
- Sep 10, 2026
- Downloads
- 1,536/mo · 715/wk
- Author
- mrgoethe
- License
- MIT
- Types
- extension
- Size
- 49.8 KB
- Dependencies
- 0 dependencies · 3 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-zh-cn
把 pi 编码代理的界面变成简体中文。装上重启即可,不想要了随时卸载。
特性
- 零侵入:只是普通扩展,调用官方扩展 API 替换文案,不打补丁、不改安装目录里的任何文件,pi 正常升级后一般也能直接用
- 不改模型输入:发给模型的内容保持不变,工具 description 保留英文原文,避免影响模型行为
- 按需开启:
grep、find、ls或powershell没开就不会被偷偷打开 - 键位跟随:快捷键提示跟随你自己的键位配置
汉化范围
- 启动画面:标题、快捷键提示、引导语
- 底部状态栏:当前目录 / 分支 / 会话名、token 与缓存用量、费用、上下文占比、模型和思考等级
- 加载提示:「正在处理…」;thinking 折叠块的标签
- 八个内置工具的执行结果:读取、执行(bash)、编辑、写入、搜索内容、查找文件、列出目录、PowerShell——状态行都是中文,比如「完成」「退出码 N」「输出过长已截断」
- 编辑与写入的改动展示沿用 pi 内置渲染器(只有标题和展开提示是中文):
edit显示行号 + 红绿 diff,write预览文件内容(折叠 10 行,ctrl+o展开全量) - 项目信任弹窗:信任/不信任选择,含「信任父文件夹」变体
- 内置斜杠命令描述:core 全部 23 个命令
安装
pi install npm:pi-zh-cn
重启 pi 即生效。查看已安装的包:
pi list
卸载
pi remove npm:pi-zh-cn
临时切回英文
觉得中文状态栏不如原生好读,可以在会话里执行:
/footer
兼容性
peerDependencies 只设下限(>=0.84.0)不设上限,pi 出新版也不会被拦住。兼容性靠测试保证,不靠钉版本:
- push/PR:对着 lockfile 钉住的基线跑契约测试
- 每两天:上游金丝雀忽略 lockfile、拉最新版 pi 跑同一套测试
- 基线本身由 Dependabot 自动开 PR 跟进,它的 PR 就是一次新版兼容性验证,绿了合并即完成升级
Node 版本要求跟随 pi,由 pi 自己声明和检查。
已知局限
- 内置菜单和其他硬编码在 pi 源码里的英文保持原样——扩展 API 够不到,除非 fork 上游重编译,不值得
- 实验性的全屏模式(
tuiMode: "fullscreen")文案写死在 pi-tui 里,同样够不到,例如 pi 0.85.0 新增的↓ Jump to latest message · <键位>,以及搜索框的Find in transcript/No matches
开发
npm install
./node_modules/.bin/tsc -p . # 类型检查
# 本地试跑
pi --no-session -e ./extensions/index.ts -p "hi"
所有文案都集中在 extensions/zh.ts,想改词只动这一个文件就够了。
上游兼容性测试(契约测试)
汉化依赖 pi 内部结构(footer 统计行、工具 details 字段、trust.json 语义、
斜杠命令清单等),上游一变就可能静默失效。test/ 下的契约测试把这些
依赖点逐条断言:实际执行内置工具、实例化 ProjectTrustStore、探查内置
footer 的 dist 源码,任一结构变化都会失败并指明该核对哪个文案。
npm test # tsc 类型检查 + 全部测试
CI 在每次 push/PR 时运行,并每两天定时跑一次「上游金丝雀」:本地开发
基线由 package-lock.json 钉住,而金丝雀那趟会忽略 lockfile、拉到最新
版 pi,所以上游发布后两天内即可自动暴露兼容性问题,不用等用户反馈。
发布
改完 package.json 的 version 并提交后,打 tag 推上去即可:
git tag -a v0.2.6 -m "0.2.6: 一句话说明"
git push origin v0.2.6
.github/workflows/publish.yml 会核对 tag 与版本号、跑一遍测试、发布到 npm
并生成 provenance。认证走 npm Trusted Publishing(OIDC),仓库里不放
NPM_TOKEN——那种长期 token 一过期就卡住发版。前提是 npmjs.com 上已把本
仓库配成该包的 Trusted Publisher(一次性);没配的话 publish 步骤会失败,
退回本地 npm login && npm publish 即可。
GitHub Release 的正文单独写,用 gh release create v0.2.6 --notes-file … 建。
补打历史 tag 时要注意:Release 列表按 tag 时间排序,不是按创建时间,
所以得带上原始时间(GIT_COMMITTER_DATE=<原始时间> git tag -a …)。
反馈
pi 大版本升级后如果出现错位或残留英文,欢迎提 issue。
改动记录见 GitHub Releases。