开源了一个用自然语言操控终端的 Rust CLI 工具,再也不用记命令了

查看 12|回复 0
作者:ariesxox   
痛点
作为开发者,我经常遇到这种场景:
  • 知道要"找出当前目录下所有大于 100MB 的文件",但 find 的参数记不住
  • 知道要"压缩 src 目录",但 tar 的 -czf -xvf 每次都要查
  • 知道要"杀掉占用 8080 端口的进程",但不同系统命令还不一样
  • Windows 上用 PowerShell 、Linux 上用 bash ,语法切来切去头大

    所以我用 Rust 写了 piz —— 一个终端命令翻译器,用自然语言描述你想做什么,它帮你生成精确的 shell 命令。
    演示
    $ piz 列出所有大于 100MB 的文件
      ➜ find . -size +100M -type f
      [Y] Execute  [n] Cancel  [e] Edit
    $ piz 把 src 目录压缩成 tar.gz
      ➜ tar -czf src.tar.gz src/
      [Y] Execute  [n] Cancel  [e] Edit
    $ piz kill the process on port 8080
      ➜ lsof -ti:8080 | xargs kill -9
      [Y] Execute  [n] Cancel  [e] Edit
    中英文都支持,它会根据你当前的操作系统、shell 类型、工作目录自动生成对应的命令。
    主要特性
    多 LLM 后端:原生支持 OpenAI / Claude / Gemini / Ollama (本地模型),外加 12+ 个 OpenAI 兼容服务商( DeepSeek 、硅基流动、Moonshot 、智谱、通义千问等),基本上你手头有的 API 都能用。
    三层安全防护:这是我花了不少精力的地方。
    [ol]
  • Prompt 层面 —— LLM 会拒绝非命令类输入
  • 本地注入检测 —— 12+ 种恶意模式识别(反弹 shell 、环境变量泄露、编码 payload 等),无需联网
  • 危险等级分类 —— Safe / Warning / Dangerous 三级提示
    [/ol]
    不会出现"帮我删库"就直接 rm -rf / 的情况。
    智能缓存:SQLite 缓存 + SHA256 哈希键,相同问题秒回,支持 LRU 淘汰和 TTL 过期。缓存命令取出时还会重新做注入检测。
    交互式聊天:piz chat 进入多轮对话模式,适合连续调试场景。
    命令解释:piz -e 'tar -czf archive.tar.gz src/' 逐段拆解命令含义,学习利器。
    失败自动修复:piz fix 可以诊断上一条失败命令并自动修复,最多重试 3 次。
    多候选选择:piz -n 3 find large files 生成多个候选命令,你挑一个最顺眼的。
    Shell 集成:eval "$(piz init bash)" 后,生成的 cd、export、source 能直接作用于当前 shell ,不是开子进程。
    管道模式:piz --pipe list all rust files 输出纯命令文本,方便脚本串联。
    跨平台:Windows (PowerShell/cmd) / macOS / Linux 全支持,Windows 下 GBK 编码也能正确处理。
    安装
    一行搞定:
    # macOS / Linux
    curl -fsSL https://raw.githubusercontent.com/AriesOxO/piz/main/install.sh | bash
    # Windows (PowerShell)
    iwr -useb https://raw.githubusercontent.com/AriesOxO/piz/main/install.ps1 | iex
    # 或者 cargo
    cargo install piz
    首次运行会自动进入配置向导,选择 LLM 后端、填 API Key 就可以用了。内置 12 个服务商预设,国内用户可以直接选 DeepSeek 、硅基流动等。
    一些数字
  • Rust 编写,单二进制,无运行时依赖
  • 176 个测试用例(单元 + 集成)
  • CI 在 Ubuntu / Windows / macOS 三平台跑
  • MIT 协议
  • 当前版本 v0.2.6

    为什么不用 xxx ?
    可能有人会问"GitHub Copilot CLI / aichat / shell-gpt 不也能做吗?"
    piz 的侧重点不太一样:
  • 安全层是内建的,不是可选插件。本地注入检测不依赖网络,12+ 种攻击模式识别
  • 多后端切换开箱即用,特别是国内服务商支持好,不用折腾代理
  • Shell 集成做得比较深,cd/export/source 能直接生效
  • 缓存减少重复 API 调用,省钱省时间
  • 中文是一等公民,不是后加的

    当然也有不足,比如目前还是命令行工具,没有 TUI 界面,后续可能会加。
    链接
  • GitHub: https://github.com/AriesOxO/piz

    第一次在 V2EX 分享自己的项目,欢迎试用和反馈!有任何问题可以直接在帖子里问,或者去 GitHub 提 issue 。如果觉得有用,给个 Star 就是最大的鼓励了。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部