patriceckhart/zot
Yet another coding agent harness, lightweight and written in go.
zot – 基于 Go 的编程助手框架
功能
- 提供一个单一的静态二进制文件,让您可以与大型语言模型(LLM)进行与代码相关任务的对话。
- 开箱即用地支持 30+ 个 LLM 提供商(Anthropic、OpenAI/Codex、Google Gemini、Ollama 等),并且可以通过 Ollama 调用本地模型。
- 提供内置的“工具”(读/写文件、编辑、运行 bash 命令、glob 模式),模型可以调用这些工具,将 LLM 转变为自主编码代理。
- 以三种模式运行:
- 交互式 TUI – 终端 UI,您在其中输入提示并观察模型的操作。
- 打印模式 –
zot "提示"打印最终生成的文本并退出。 - JSON 模式 – 流式输出换行分隔的 JSON 事件,供程序化消费。
- 包括 Telegram 机器人桥接、插件系统(子进程 + JSON-RPC)、主题、自定义按键绑定,以及通过 Markdown 文件实现的持久化“代理”/技能。
如何获取
- macOS/Linux 的一行安装程序(
curl … | bash)或 Windows PowerShell。 go install github.com/patriceckhart/zot/cmd/zot@latest。- 预构建的二进制文件也可在 GitHub 发布页面获得。
关键概念
| 概念 | 说明 |
|---|---|
| 提供商 | zot 与之通信的远程 LLM 服务(Anthropic、OpenAI、Gemini 等)。 |
| 工具 | 模型可以请求的内置操作:读/写文件、编辑、运行 shell 命令、glob 模式。 |
| AGENTS.md | 为每个提示添加 常设指示 的全局或项目级 Markdown 文件(例如,“除非被要求,否则不要编辑文件”)。 |
| SKILL.md | 可以通过 /skill:<名称> 调用的可重用指示片段。 |
| 扩展 | 用任何语言编写的外部程序;zot 通过 JSON-RPC 与之通信。 |
| 连续模式 | 持久化本地存储($ZOT_HOME/sessions/…),可跨崩溃保留并服务于多个客户端(zot continuous serve)。 |
| 主题和键位映射 | $ZOT_HOME 下的 JSON 文件允许您在 TUI 中自定义颜色和键盘快捷键。 |
典型工作流程
- 安装二进制文件并运行
zot。首次启动会打开一个带有/login命令的 TUI。 - 通过 API 密钥或 OAuth 登录(该工具可以启动浏览器,或为 Anthropic、OpenAI、Kimi、xAI、GitHub Copilot 等提供商使用设备代码流程)。
- 输入提示,例如
fix the failing test。zot 将提示发送给所选模型,接收响应,并可能自动调用工具(编辑文件、运行测试套件)。 - TUI 显示模型的推理、工具输出和最终答案。您可以批准、拒绝或编辑操作。
- 可选地添加
AGENTS.md或SKILL.md来塑造未来的行为,或为特定领域任务编写自定义扩展。
配置和状态
- 所有文件都位于
$ZOT_HOME下(默认为$XDG_STATE_HOME/zot或平台等效路径)。 config.json存储上次使用的提供商/模型、UI 偏好、HTTP 代理和自定义按键绑定。auth.json保存 API 密钥或 OAuth 令牌(模式 0600)。令牌会自动刷新。models.json可以定义自定义端点或自托管模型。- 会话记录以 JSONL 格式保存在
sessions/下,可以使用zot --continue恢复。
为什么重要
- 单一二进制:无需 Python 运行时、Docker 或繁重依赖项——只需一个 Go 可执行文件。
- 广泛的提供商覆盖:支持主要商业 API 和本地 Ollama 模型,无需更改代码即可轻松切换提供商。
- 工具使用:模型可以读/写文件和运行 shell 命令,从而为代码生成、重构或调试实现真正的“代理”行为。
- 可扩展:插件架构允许您在不重新编译的情况下添加特定领域功能(例如数据库查询工具)。
限制 / 注意事项
- 使用与官方 CLI 相同的 OAuth 客户端 ID;提供商可能会撤销它们,因此 API 密钥流程是最安全的回退方案。
- 扩展是选择加入的;默认不附带任何扩展。
- 持久化状态位于本地机器上;跨机器共享会话需要运行
zot continuous serve。
结论
zot 是一个轻量级、Go 原生的框架,将 LLM 转变为交互式编程助手,具有内置工具使用、多提供商支持和可自定义的终端 UI。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目