← 所有文章

shell-buddy:在原来的 Shell 里生成命令

作者 发布于 约 4 分钟文章 / 构建记录

shell-buddy v0.1.0 已发布:用 // 描述意图,在 Zsh、Bash 和 PowerShell 中获得可编辑的命令建议,确认后再执行。

主题: 人工智能, 软件工程, shell

目录 (4)

shell-buddy v0.1.0 已经发布。它是我做的一个原生 Shell AI 命令助手,在 Zsh、Bash 和 PowerShell 里,把自然语言描述转成可以继续编辑的命令建议。

用法很直接:在行首输入 //,写下想做什么,建议会出现在当前输入区下方。第一次按 Enter,把建议填回命令行;检查或修改后,再按一次 Enter,才交给当前 Shell 执行。v0.1.0 发布页

Shell Buddy 吉祥物:芒果黄色的吐舌鬣蜥,带石墨灰背刺和卷尾

留在原来的 Shell 里

shell-buddy 的入口就在日常使用的命令行中。普通命令照常输入,只有行首的 // 会进入 AI 建议流程,不需要切换到另一套聊天界面。

这也决定了它的执行方式。生成的命令先回到 Zsh 的 ZLE、Bash 的 Readline 或 PowerShell 的 PSReadLine 输入缓冲区,最后由当前 Shell 执行。因此,cd、变量和后续命令仍然处在原来的会话里,不会因为另开一个子 Shell 而丢掉状态。交互方式与 Shell 集成

这个版本把工作范围放在“把意图写成一条命令”上。它没有接管整个终端任务,也不负责自动反复执行命令、观察结果再决定下一步。

两次回车之间,留出判断的位置

命令建议和命令执行分开,是 shell-buddy 很重要的一条边界。

第一次回车后,命令仍然可以编辑。路径不对就改路径,参数不合适就改参数,不需要就取消。第二次回车才执行,让原本属于人的检查步骤仍然留在命令行里。

不过,两次回车只提供检查的机会,不保证生成结果正确,更不是安全沙箱。涉及删除、覆盖、权限或远程操作时,仍然需要理解命令会影响什么。

这和我在 《可以使用 AI,但别无知》 中说的是同一件事:AI 可以帮忙写,但判断和责任不能一起交出去。

缓存、规则,再到模型

每次输入都请求模型,并不总是必要。shell-buddy 的建议路径依次经过本地缓存、明确意图的规则匹配,再到当前选择的模型配置。

缓存只记录用户接受过的命令,最多保留 256 条。规则处理能够明确识别的常见意图;需要模型时,再通过兼容 OpenAI 的接口流式返回建议。缓存和规则命中不依赖模型调用,但这不意味着任意自然语言请求都能离线处理。配置与行为参考

模型可以运行在本地,也可以来自云端服务。选择本地模型,意味着还要自己准备并运行对应服务;选择云端服务,则需要了解请求中会发送的上下文和服务方的数据处理方式。

一个小工具,也有明确的使用条件

shell-buddy 用 Zig 实现,以单个可执行文件分发,不需要为工具本身安装 Python 或 Node.js。它按 AI 编辑会话启动进程,没有常驻后台守护进程;本地模型服务是另一回事,需要单独运行。项目说明

v0.1.0 提供 macOS Apple Silicon、macOS Intel、Linux x86_64 和 Windows x86_64 发布包。Shell 版本要求是 Zsh 5.8+、Bash 5+,或 PowerShell 7.4+ 搭配 PSReadLine 2.3.6+。macOS 自带的旧版 Bash 不在支持范围内。

首版的发布包尚未签名或公证。安装器会校验同一 Release 中的 SHA256SUMS,但校验和不能替代发布者签名。安装前应检查下载来源和脚本内容,不要把系统安全提示当成可以忽略的步骤。安装说明

shell-buddy 现在提供的是一个具体入口:需要命令时,用自然语言补上那一段;命令生成以后,回到熟悉的 Shell 里继续工作。源码、发布包和完整文档都已经放在 GitHub 仓库 中。

全站搜索