K-文化的一切——从回归到 K-美妆,发送到您的邮箱订阅邮件

METAL MEDIA

vedaant00/opendot

26PythonMIT

一个终端AI代理,在改动文件或执行命令前先拍快照,让你随时能完整撤销它做过的事

opendot是一个能在终端里修改文件、执行shell命令的AI代理,但它在每次动作前都会先给工作目录拍一次快照,所以它做的任何事都能用一条命令精确撤销。像联网请求、sudo、git push这类会影响工作目录之外、无法撤销的操作,会在执行前先弹出确认。它通过LiteLLM可以接入任意大模型,还能通过MCP服务器或Composio连接上千个外部应用工具。

它做什么

  1. 先拍快照再动手:每次写文件或执行shell命令前,opendot会先把工作目录存进一个按内容寻址的存储里,这样undo、redo、diff(预览撤销效果)都能精确还原或查看之前的状态。
  2. 区分风险动作:一个分类器会判断某条shell命令是否局限在工作目录内(自动执行、可撤销),还是会影响到联网、sudo、删除工作目录外文件等外部效果(先确认、标记为不可撤销)。
  3. 模型不限定:通过LiteLLM,只要有API密钥就能接入OpenAI、Anthropic、Google、DeepSeek、Groq、Hugging Face等模型,也可以用Ollama在本地免费跑模型。默认模型是gpt-5.1,若对应密钥缺失会自动切换到其他可用的provider。
  4. 设置预算上限:用--usd或--tokens参数设定花费或token使用上限,一旦累计消耗超过这个上限,任务会立刻停止运行。
  5. 连接外部工具:通过MCP服务器或自带API密钥的Composio,可以调用Gmail、Slack、GitHub等应用的工具,但这类外部调用一律视为不可撤销,执行前都要先确认。

为什么重要

对于不敢放手让AI代理随意改文件、跑命令的人来说,opendot给出了一个真正的安全网:出错了可以精确撤销,而不是听天由命。它的预算上限和权限策略(--yes、--allow、--deny)也让它能用在CI这类无人值守的自动化场景里,在没人盯着的情况下依然有边界可控。

本仓库术语

  • MCP · 一种让AI模型与外部工具、服务器以标准方式通信的协议
  • LiteLLM · 一个把多家大模型厂商的API统一成同一套接口调用的库
  • 内容寻址存储 · 按文件内容而非路径来存储,相同内容的文件只保存一份的存储方式
  • 仅追加式账本 · 只能往后追加、不能修改或删除的操作记录日志
  • Composio · 把Gmail、Slack等大量外部应用的工具打包成统一API提供的服务

仓库简介(英文)

A terminal AI agent you can fully undo - every file and shell action is snapshotted and reversible. Model-agnostic (any LLM), and connects to 1000+ app tools and MCP servers.

在 GitHub 打开

热门仓库

全部仓库 →

METAL MEDIA 最新报道