很多个人 CLI 项目都有一个相似的起点:先为某个具体问题写一段脚本,随后不断增加命令、交互和安装逻辑,最后工具越来越好用,却也越来越难复用。每次创建新的工具集,都要重新处理终端界面、命令路由、扩展发现、安装和卸载。
cli-toolkit-fw 就是为了解决这个重复劳动而提取出的通用框架。它保留一套完整的交互式 CLI 外壳,但不在运行时连接 LLM。用户只需要在开发阶段与代码型 AI 对话,让 AI 按约定生成扩展,就能得到属于自己的专用指令工具集。
项目地址:https://github.com/bzetu/cli-toolkit-fw,采用 MIT 许可证。
为什么做成框架
我希望最终使用工具时,它是确定、快速、可审查的纯代码执行,而不是每输入一次命令都调用 AI。AI 的作用放在开发阶段:理解需求、生成扩展、补充命令和更新文档;运行阶段则只加载本地代码。
这让两部分边界非常清楚:
- 框架负责:终端 UI、命令输入、导航路径、滚动、工具选择、扩展发现、安装和卸载。
- 扩展负责:具体业务能力、专属命令、参数校验和输出内容。
安装时定义自己的工具名称
Windows、Linux 和 macOS 都提供了安装脚本。安装时可以输入自定义命令名称;如果直接回车,则默认使用 toolkit。这个名称不仅是终端中的启动命令,也会同步显示在 UI 中。

Windows:
.install-windows.ps1 toolkit
Linux / macOS:
chmod +x install-unix.sh ./install-unix.sh toolkit
安装脚本会检查运行所需的 Node.js 和 npm,安装项目依赖,并配置启动命令。卸载脚本只移除框架创建的命令入口、环境配置、临时目录与 node_modules,不会卸载用户系统中的 Node.js 或其他全局依赖。
接近现代终端工具的交互方式
框架采用命令面板式交互:输入 / 可以查看当前上下文可用命令,通过方向键选择,Enter 执行;输出会保留在界面中,长内容支持滚动,并自动跟随到最新结果。

主界面负责工具级导航。输入 /tools 后,框架会扫描扩展目录并显示可用工具;进入某个工具后,导航路径会同步变化,此时输入 / 只显示该工具自己的命令。输入一次 /exit 返回主界面,再输入一次才退出程序。

扩展统一放在 extensions 目录
所有自定义能力都放在 extensions/ 中。框架启动时自动发现符合约定的扩展,不需要修改核心命令路由。删除扩展文件夹后,对应工具会自动消失,程序回到默认框架状态。
扩展内容默认被 Git 忽略,而目录本身通过占位文件保留。这意味着可以公开发布框架代码,同时避免把个人业务逻辑、账号配置或本地数据误提交到远程仓库。
一个典型的定制过程可以很简单:
- 告诉代码型 AI:希望增加什么工具、有哪些命令、输入和输出是什么。
- 让 AI 阅读仓库中的扩展规范和开发文档。
- 由 AI 在
extensions/中创建实现,并运行检查与测试。 - 重新启动 CLI,新工具就会出现在
/tools列表中。
适合哪些场景
- 多个服务或账号的统一管理命令。
- 日常开发、构建、发布和诊断工具。
- 服务器运维与固定流程自动化。
- 文件处理、数据查询和内部工作流。
- 希望由 AI 帮助开发,但运行时不依赖 AI 的个人工具集。
当前状态
当前版本为 v0.2.1,包含跨平台安装与卸载、自定义命令名称、交互式命令面板、导航路径、扩展自动发现和面向 AI 的开发文档。项目仍在持续完善,后续重点会放在扩展约定、示例与长期兼容性上。
如果你也经常让 AI 帮自己写各种小工具,又不希望这些工具长期散落成互不相干的脚本,可以直接从这个框架开始:bzetu/cli-toolkit-fw。
文章评论