zot 编码代理
一个用 Go 编写的轻量级编码代理:单一静态二进制,内置 30+ 模型提供商、TUI、子代理群集与 Telegram 桥接,让你在终端里完成完整的代理式编码工作流。
文档详述了沙盒(/jail)、工具白名单、权限模式与 auth. 0600 等机制,最小权限与敏感数据处理有据可查;但默认模式允许工具自由执行,确认仅在 --no-yolo 下提供且非交互模式被忽略,扣分;bash/telegram/GitHub 下载等外部效果仅由 README 声述、无代码佐证;文件写入无回滚机制说明;依赖固定但无漏洞扫描或安全策略;复用第三方 OAuth client ID 的风险被诚实披露。
失败路径描述较细(token 刷新失败、PowerShell 缺失错误、changelog 静默跳过);但 CI 使用 Go 1.23 而 go.mod 要求 1.25.0,存在自相矛盾,扣分;依赖均可从公共源获取。
受众与场景(交互/打印/JSON/RPC/嵌入)、能力边界(jail 非安全边界、zotfiles 限制)与触发精度(模式自动选择、参数覆盖关系)说明充分;多平台(Linux/macOS/Windows、arm64)环境适配有据。
安装说明覆盖四种渠道且含校验和验证,可得满分;LICENSE 完整;文档结构清晰、局限(OAuth 条款风险、bash 3.2、jail 局限)诚实列出;但版本号由 CI 自动递增、无 CHANGELOG 文件,维护为单人、无支持承诺,扣分。
输出形式(流式、NDJSON、stats)与多 provider 边际价值明确,单二进制轻量定位清晰;但性价比仅由文档断言,无基准或对比证据,扣分。
README 明确区分事实陈述、注意事项与风险提示,可推断/事实分离良好;但本次提供的证据不含工具/沙盒实现代码,多数核心声明无法溯源或交叉印证,且自称 vibe-slopped,扣分。
- 默认配置下工具(bash/write/edit)无需逐次确认即可执行;如需安全请显式使用 --no-yolo 或 jail,但 jail 仅是防误操作护栏而非安全边界。
- 非交互模式(print//rpc)忽略确认设置,脚本中使用时请自行约束工具集。
- auth. 是可执行配置,任何能修改它的人可借 api_key_command 以你的身份运行程序;请保护好文件权限。
- 订阅登录复用官方 CLI 的 OAuth client ID,可能违反服务条款并随时被吊销。
- CI 的 Go 版本(1.23)与 go.mod(1.25.0)不一致,构建/测试矩阵可能未真正覆盖目标版本。
- run GitHub 来源的 zotfile 会执行第三方代码,仓库无任何官方审核或允许列表,请仅运行可信来源。
这个 Agent 能做什么,适合哪些场景?
zot 是一个用 Go 编写的轻量级编码代理框架,以单一静态二进制交付,可编译出适用于 Linux、macOS 和 Windows 的 amd64/arm64 版本。它内置了超过 30 家提供商的适配,包括 Anthropic、OpenAI/Codex、Google Gemini/Vertex、Kimi、DeepSeek、GitHub Copilot、Bedrock、Azure OpenAI、Ollama 本地模型等,并提供 API key 与订阅 OAuth 两种登录路径。代理具备读、写、编辑、bash、glob 等内置工具,支持交互式 TUI、print、stream、JSON 和 RPC 五种运行模式,还可通过 `zot rpc` 以 NDJSON 协议被任何语言嵌入调用。会话以 JSONL 文件持久化,支持恢复、分叉、导出为 .zotsession 以及基于 AGENTS.md/SKILL.md 的持久与可复用指令。扩展机制基于子进程加 JSON-RPC,可用任何语言编写;另有 /swarm 后台子代理、/jail 工作目录沙箱和 Telegram 机器人桥接。
zot 在你的工作目录中运行代理循环:模型通过内置工具(read、write、edit、bash、glob)读写文件并执行 shell 命令,默认最多 50 步(--max-steps 可调)。通过 zot 启动交互式 TUI,zot -p "prompt" 输出最终文本,zot -- 输出 NDJSON 事件流,zot rpc 作为长驻子进程供第三方程序嵌入。凭据按 --api-key、提供商环境变量(如 ANTHROPIC_API_KEY、OPENAI_API_KEY)、$ZOT_HOME/auth. 的顺序查找,OAuth 令牌自动刷新。/login 支持浏览器登录 Claude Pro/Max、ChatGPT Plus/Pro、Kimi Code、SuperGrok 和 GitHub Copilot 订阅。zot run owner/repo 可从 GitHub 临时下载并运行打包的 zotfile 代理。/swarm 生成并行后台子代理,/compact 压缩上下文,/jail 将工具限制在当前目录,/telegram 把私信转发到运行中的会话。
- 终端重度开发者希望在本地仓库中运行一个不依赖单一厂商的编码代理,随时在 Claude、GPT、Gemini、DeepSeek 或本地 Ollama 模型之间切换。
- 使用 Claude Pro/Max 或 ChatGPT Plus/Pro 订阅的工程师,想通过浏览器 OAuth 登录直接复用订阅额度而不必购买 API key。
- 需要把代理集成进自己应用或脚本的团队,可用 Go SDK(packages/agent/sdk)进程内嵌入,或用任何语言通过
zot rpc的 NDJSON 协议驱动。 - 移动场景的用户通过 Telegram 机器人向长时间运行的会话发送提示,桥接会自动刷新 OAuth 令牌保证多天可用。
- 想并行处理子任务的开发者,用 /swarm 生成后台子代理同时写迁移脚本、调查堆栈跟踪或补测试,同时继续在主线程工作。
- 从 Claude Code 迁移的用户,把 CLAUDE.md 内容搬到 AGENTS.md 并复用 .claude/skills/ 下的技能文件。
这个 Agent 有哪些优点和局限?
- 单一静态 Go 二进制,跨 Linux/macOS/Windows(amd64/arm64)分发,无运行时依赖,部署成本极低。
- 内置 30+ 提供商适配并支持订阅 OAuth 登录(Claude Pro/Max、Codex、Kimi Code、SuperGrok、Copilot),还支持模型故障时的 rescue 切换,避免厂商锁定。
- 嵌入能力完善:Go SDK 进程内调用与跨语言 NDJSON RPC 共享同一事件模式,便于集成到现有工具链。
- 会话管理精细:JSONL 持久化、恢复、分叉、树形查看、.zotsession 可移植导出,以及自动压缩上下文。
- 订阅登录复用了 Claude Code、Codex CLI 等官方工具发布的 OAuth client ID,README 明确警告可能违反提供商服务条款且随时可能被吊销。
- /jail 只是防误操作护栏而非安全边界,子代理与你共享同一工作目录直接改文件,没有 per-agent worktree,并行编辑需自行用 git worktree 隔离。
- 扩展默认不安装,需要显式
zot ext install或--ext引入;部分提供商(DeepSeek、Google Gemini)仅支持 API key 登录,无订阅路径。 - README 截断处(Vertex AI 及之后章节)细节未能核验,zotfile 的权限模型与限制需查阅 docs/zotfiles.md 自行评估。
如何安装或部署这个 Agent?
macOS/Linux 一行安装:curl -fsSL https://www.zot.sh/install.sh | bash(脚本会校验 SHA-256 并安装到 /usr/local/bin、~/.local/bin 或 ~/bin)。Windows PowerShell:iwr -useb https://www.zot.sh/install.ps1 | iex。Go 安装:go install github.com/patriceckhart/zot/cmd/zot@latest(需要 Go 1.25+)。源码构建:git clone https://github.com/patriceckhart/zot && cd zot && make build。也可从 GitHub Releases 下载预编译二进制(Linux/macOS/Windows,amd64/arm64)。
如何使用这个 Agent?
- 运行
zot并在 TUI 中输入/login,通过浏览器完成 API key 或订阅(Claude Pro/Max、ChatGPT、Kimi Code、SuperGrok、GitHub Copilot)登录;或设置环境变量如ANTHROPIC_API_KEY、OPENAI_API_KEY、DEEPSEEK_API_KEY。2. 基本调用:zot(交互 TUI)、zot "fix the failing test"、zot -p "list all go files"(print 模式)、zot -- "refactor main.go"(NDJSON 事件)、zot --continue恢复上次会话。3. 选择提供商/模型:--provider anthropic --model <id>,zot --list-models查看目录。4. 可选:/jail限制工具到当前目录、--no-yolo每次工具调用前确认、/swarm new <task>生成后台子代理、/study让代理先通读项目。5. 运行打包代理:zot run ./my-agent.zot或zot run owner/repo。
这个 Agent 与同类方案有什么区别?
README 将其定位为 "Yet another coding agent harness",并多次与 Claude Code 对比:zot 不读取 CLAUDE.md(仅兼容 .claude/skills/ 下的技能),订阅登录也复用 Claude Code 与 Codex CLI 的 OAuth 流程,可视为这些闭源 CLI 的开源、多提供商替代品。
常见问题
必须付费购买 API key 吗?
工具会直接改动我的文件吗,如何控制风险?
如何把它集成到我自己的程序里?
zot rpc,通过 stdin/stdout 交换 NDJSON 命令与事件,示例在 examples/rpc/ 下。