痛点
作为开发者,我经常遇到这种场景:
- 知道要"找出当前目录下所有大于 100MB 的文件",但
find的参数记不住 - 知道要"压缩 src 目录",但
tar的-czf-xvf每次都要查 - 知道要"杀掉占用 8080 端口的进程",但不同系统命令还不一样
- Windows 上用 PowerShell、Linux 上用 bash,语法切来切去头大
所以我用 Rust 写了 piz ------ 一个终端命令翻译器,用自然语言描述你想做什么,它帮你生成精确的 shell 命令。
演示
css
$ piz 列出所有大于 100MB 的文件
➜ find . -size +100M -type f
[Y] Execute [n] Cancel [e] Edit
css
$ piz 把 src 目录压缩成 tar.gz
➜ tar -czf src.tar.gz src/
[Y] Execute [n] Cancel [e] Edit
ini
$ piz kill the process on port 8080
➜ lsof -ti:8080 | xargs kill -9
[Y] Execute [n] Cancel [e] Edit
加上 -d 参数还能看到逐参数解释:
matlab
$ piz -d 查找所有大于 100MB 的文件
➜ find . -size +100M -type f
📖 命令解释:
find . --- 从当前目录开始递归搜索
-size +100M --- 匹配大于 100MB 的文件
-type f --- 只匹配普通文件(不含目录)
[Y] Execute [n] Cancel [e] Edit
中英文都支持,它会根据你当前的操作系统、shell 类型、工作目录自动生成对应的命令。
主要特性
多 LLM 后端:原生支持 OpenAI / Claude / Gemini / Ollama(本地模型),外加 12+ 个 OpenAI 兼容服务商(DeepSeek、硅基流动、Moonshot、智谱、通义千问等),基本上你手头有的 API 都能用。
三层安全防护:这是我花了不少精力的地方。
- Prompt 层面 ------ LLM 会拒绝非命令类输入
- 本地注入检测 ------ 12+ 种恶意模式识别(反弹 shell、环境变量泄露、编码 payload 等),无需联网
- 危险等级分类 ------ Safe / Warning / Dangerous 三级提示
不会出现"帮我删库"就直接 rm -rf / 的情况。
智能缓存:SQLite 缓存 + SHA256 哈希键,相同问题秒回,支持 LRU 淘汰和 TTL 过期。缓存命令取出时还会重新做注入检测。
交互式聊天 :piz chat 进入多轮对话模式,适合连续调试场景。
内联命令解释(v0.3.0 新增) :piz -d 'list large files' 在确认菜单前展示逐参数分解说明,直接看懂命令不用再查 man。也可以在配置里设 show_explanation = true 始终开启。聊天模式下 /detail 随时切换。另外 piz -e 'tar -czf archive.tar.gz src/' 可以解释已有命令。
失败自动修复 :piz fix 可以诊断上一条失败命令并自动修复,最多重试 3 次。快捷别名 pf 一键修复。
多候选选择 :piz -n 3 find large files 生成多个候选命令,你挑一个最顺眼的。
Shell 集成与内置别名 :eval "$(piz init bash)" 后,生成的 cd、export、source 能直接作用于当前 shell,不是开子进程。同时自动注册 p(piz)、pf(piz fix)、pc(piz chat)三个快捷别名,少打几个字。
自更新 :piz update 直接在终端检查新版并就地升级,失败自动回滚。每 24 小时后台检查一次,有新版本时提示。支持代理和 GitHub 镜像加速。
管道模式 :piz --pipe list all rust files 输出纯命令文本,方便脚本串联。开启 -d 时解释走 stderr,不影响管道。
跨平台:Windows (PowerShell/cmd) / macOS / Linux 全支持,Windows 下 GBK 编码也能正确处理。
安装
一行搞定:
bash
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/AriesOxO/piz/main/install.sh | bash
# macOS (Homebrew)
brew install AriesOxO/tap/piz
# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/AriesOxO/piz/main/install.ps1 | iex
# 或者 cargo
cargo install piz
首次运行会自动进入配置向导,选择 LLM 后端、填 API Key 就可以用了。内置 12 个服务商预设,国内用户可以直接选 DeepSeek、硅基流动等。
安装后建议加上 Shell 集成,体验最佳:
bash
# bash/zsh,加到 .bashrc 或 .zshrc
eval "$(piz init bash)"
# fish
piz init fish | source
# PowerShell,加到 $PROFILE
piz init powershell | Out-String | Invoke-Expression
一些数字
- Rust 编写,单二进制,无运行时依赖
- 438 个测试用例(单元 + 集成),覆盖安全检测、缓存、解析、多后端等模块
- CI 在 Ubuntu / Windows / macOS 三平台跑,含
cargo-audit依赖安全审计 - MIT 协议
- 当前版本 v0.3.1
为什么不用 xxx?
可能有人会问"GitHub Copilot CLI / aichat / shell-gpt 不也能做吗?"
piz 的侧重点不太一样:
- 安全层 是内建的,不是可选插件。本地注入检测不依赖网络,15+ 种攻击模式识别(含
LD_PRELOAD、HISTFILE抑制等) - 多后端切换开箱即用,特别是国内服务商支持好,不用折腾代理
- Shell 集成做得比较深,cd/export/source 能直接生效,内置快捷别名
- 内联命令解释边翻译边教学,不用切出去查 man
- 自更新一条命令升级,不用手动下载替换
- 缓存减少重复 API 调用,省钱省时间
- 中文是一等公民,不是后加的
链接
- GitHub:github.com/AriesOxO/pi...
第一次在分享自己的项目,欢迎试用和反馈!有任何问题可以直接在帖子里问,或者去 GitHub 提 issue。如果觉得有用,给个 Star 就是最大的鼓励了。