pi-cn2en

pi 扩展:中文输入自动翻译成英文查询词,浮层确认后发送,支持语义增强与 macOS 朗读

Packages

Package details

extension

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 用例)。

License

MIT