pi-cn2en
pi 扩展:中文输入自动翻译成英文查询词,浮层确认后发送,支持语义增强与 macOS 朗读
Package details
Install pi-cn2en from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-cn2en- Package
pi-cn2en- Version
0.1.1- Published
- Aug 22, 2026
- Downloads
- 292/mo · 6/wk
- Author
- tackloop
- License
- MIT
- Types
- extension
- Size
- 38.3 KB
- Dependencies
- 0 dependencies · 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
pi-cn2en
pi 扩展:中文输入自动翻译成英文查询词,浮层确认后发送。 Chinese → English query translation for pi, with an in-terminal confirm overlay and text-to-speech.
在 pi 输入框输入中文时,扩展自动拦截 → 调用当前主 LLM 翻译成英文 → 弹出浮层让你确认/修改 → 确认后发送给 agent。专为「用英文查询词驱动工具」的场景设计。
特性
- 自动拦截:仅拦截手打(interactive)且含中文的输入;纯英文、命令不受影响
- 零配置翻译:spawn
pi -p子进程,复用你当前配置的主 LLM,无需任何额外配置 - 浮层确认:TUI 下弹出浮层显示原文/译文,可修改、可取消,确认后才发送
- 语义增强:原中文有错别字/口语化时,一键纠错重写,给出 3 个英文选项(口语/书面/简洁)并附增强中文对照
- 朗读译文:按
s用系统语音朗读当前选中译文,帮你判断英文是否地道(仅 macOS,见下文) - 快速开关:
/cn2en命令或ctrl+shift+t快捷键随时关闭拦截 - 安全降级:LLM 不可达/超时时预填原文并提示;任何异常不丢输入,原样放行
安装
pi install npm:pi-cn2en
或临时试用:
pi -e npm:pi-cn2en
使用
直接输入中文即可:
- 输入
如何查函数的调用者→ 翻译为find callers of a function→ 浮层确认 → 发送 - 输入
怎么修复这个 bug→ 翻译为英文后确认发送
浮层按键
| 按键 | 功能 |
|---|---|
Enter |
发送当前选中译文 |
s |
朗读当前选中译文(仅 macOS) |
↑ / ↓ |
在备选译文中切换 |
e / ctrl+e |
语义增强(纠错 + 3 个英文选项) |
t / ctrl+t |
进编辑器细改 |
ctrl+u |
撤销增强 |
Esc |
放弃翻译,发送中文原文 |
非 TUI 模式(RPC 等)自动回落为编辑器确认流程。
拦截规则
- 仅拦截
interactive来源且含中文的输入 - 超过 300 字符或 4 行视为粘贴内容,跳过翻译原样发送(安全降级)
为什么朗读功能仅支持 macOS
朗读功能(s 键)调用的是 macOS 系统内置的 say 命令(/usr/bin/say):
say是 macOS 独占的系统二进制,随系统自带,零配置即可用- Linux / Windows 没有
say,需要各自安装/接入不同的 TTS 工具(如 espeak、PowerShell System.Speech),当前版本未实现 - 因此:
s键朗读仅在 macOS 上生效;其他所有功能(翻译、浮层、增强、编辑、开关)均为跨平台实现 - 在非 macOS 上按
s会静默降级——无音频、不报错、不影响其他操作
macOS 上使用的语音为系统默认语音,可在「系统设置 → 辅助功能 → 朗读内容 → 系统语音」中更换(如选择英文语音朗读英文译文效果更好)。
行为细节
- 翻译机制:嵌套
pi -p子进程使用--no-session/--no-tools/--no-extensions等隔离参数,不污染当前会话、不触发递归 - 超时兜底:45s 超时 + 子进程孤儿自清理,任何退出路径都不会残留进程
- 并发保护:翻译/确认进行中,后续中文输入直通不拦截,避免浮层叠层
隐私
输入的中文文本会发送给你当前配置的 LLM provider 用于翻译(数据流:pi → 你的 LLM provider)。请勿输入敏感信息,或自行评估 provider 的数据策略。
开发
npm install
npm run check # biome check + typecheck + vitest
本地试用:
pi -e ./
测试:npm test(含纯函数单元测试与子进程超时行为测试,71 用例)。