CLI is ALL you need

从 Obsidian CLI 说起

不久前,老牌知识管理软件 Obsidian 官宣了命令行工具 Obsidian CLI,目前在 v1.12 的预览版本中已经可用。Obsidian CLI 提供了和 Obsidian GUI 版本完全对等的功能:从基本的笔记检索、编辑和任务管理,到进阶的开发者功能,如插件管理、截图、JS 代码执行、Chrome 开发者工具协议(CDP)、控制台消息处理、DOM 元素检索等,都在 Obsidian CLI 中得到了支持。

Obsidian CLI -- 终端界面

Obsidian CLI 的一些常见命令如下:

# 打开每日笔记
obsidian daily

# 添加任务到每日笔记
obsidian daily:append content="- [ ] Buy groceries"

# 搜索笔记
obsidian search query="meeting notes"

# 列出每日任务
obsidian tasks daily

# 从模板创建新笔记
obsidian create name="Trip to Paris" template=Travel

# 列出所有标签及其数量
obsidian tags counts

# 截图
obsidian dev:screenshot path=screenshot.png

# 执行 JavaScript 代码``
obsidian eval code="app.vault.getFiles().length"

为什么是现在?

Obsidian 拥有庞大的插件和主题生态,但长期以来并没有推出官方的 CLI 工具。三年前,社区诞生了notesmd-cli(原名 obsidian-cli,在官方发布 CLI 后改名),这是一款可以在不打开 Obsidian 程序的情况下,对 Obsidian 数据库进行操作的命令行工具。

notesmd-cli 项目 Star 趋势图

notesmd-cli 的 Star 趋势图我们可以非常明显地看到,项目诞生后的 Star 增长一直相对稳定,而在进入 2026 年之后,该项目的 Star 数量出现了爆发式的增长。

这一增长的驱动力是显而易见的:OpenClaw🦞的爆火。这只大龙虾引发了 2026 年以来 AI 圈的最大浪潮。而 notesmd-cli 作为 OpenClaw 默认配置的工具之一,自然乘上了 OpenClaw 的东风。

OpenClaw 进化史(Clawdbot -> Moltbot -> OpenClaw)

Obsidian 官方在此时发布 CLI,无疑是看到了 notesmd-cli 项目背后蕴藏的巨大潜力。Obsidian 的知识管理和任务追踪体系,完美适配了 OpenClaw 这一类的 AI 助理的需求。与朴素的 MEMORY.mdmemory/ 文件夹相比,用 Obsidian 作为 AI 助理的记忆库,绝对是一次生产工具的跃升。而 Obsidian 社区超过 2,000 个插件提供的扩展能力,则在此基础上提供了更多可能。

为什么是 CLI?

那么,为什么是 CLI 呢?

因为 CLI 就是 AI Agent 的自然语言。目前的主流 LLM 都具备完善的工具调用能力,而命令行调用是 LLM 工具中最为基础也最为重要的一个。当一个 AI Agent有了命令行调用能力,它就有能力做到任何事:

  • cat 读文件
  • grep 搜关键词
  • sed 修改文件
  • curl 访问网页或调用 API
  • git 管理代码
  • ssh 远程访问
  • ……

事实上,这就是人类早期使用计算机的方式。不需要复杂的图形界面,不需要花哨的交互方式,一个终端,一块键盘,就可以让一个程序员觉得世界就在他手中。

同样,当一个 OpenClaw bot 拥有了上百个 CLI 工具的使用权限,它也就真正从一个聊天机器人,变成了一个无所不能的 AI 助理。

诚然,当下的多模态 LLM 已经具备了强大的图片和视频理解能力,并可以利用这些能力去控制浏览器和其他桌面程序,但这样的 Computer Use 方式需要消耗更多的 Token,同时也具有更大的不确定性。操作的正确性无法保证;而操作结果的正确获取也同样困难(需要再一次截图并解析)。相比之下,命令行的调用完全不依赖 LLM 的多模态能力,文本输入,文本输出,一切都显得无比自然。

为什么不是 MCP?

模型上下文协议(Model Context Protocol, MCP)是 Anthropic 在 2024 年 11 月提出的一种协议,旨在为 LLM 提供一种标准化的方式来调用外部工具。通过 MCP,LLM 可以调用外部工具,而无需知道工具的具体实现细节。

MCP 架构示意图(图源:modelcontextprotocol.io)

MCP 很好,但 MCP 也存在不少问题,与 CLI 对比:

  • MCP 是一个 Agent 专用的功能,对于人类用户没有直接的使用价值。大量已有软件都需要专门的包装才能进入 MCP 体系。而 CLI 与计算机系统相伴而生,是人类与计算机交互的最基础方式。
  • MCP 描述直接占用 Context。如果同时启用了上百个 MCP,就意味着在系统提示词阶段消耗了上万个 Token,这会直接增加 API 调用成本,拖慢响应时间。并且,这些 MCP 对于当前的任务并不总是有用的,而 MCP 之间还可能存在冲突,这都会影响 Agent 的执行精度。一些资深用户会对每个项目使用的 MCP 进行精细控制,但这也带来了额外的工作量和心智负担。相比之下,CLI 通过 --help 选项提供了自解释性,需要固定占用的 Token 数量远少于 MCP。
  • 目前还没有方便的 MCP 描述重插入机制(写成 skill 是一种可能的解法),这导致 Context 增长之后,Agent 对 MCP 的调用可能失准。而 CLI 的相关信息用户可以随时插入当前对话末尾(比如简单说一句“请你用 xxx 命令”),从而确保 Agent 始终具备相关信息。

我们不妨再想一想,有什么是 MCP 做得到,而 CLI 做不到的?

答案是很明确的:所有能通过 MCP 做到的事情,也都可以通过 CLI 做到。因为 MCP 和 CLI 本质上说只是两种不同的用户界面而已。

而 CLI 天然还具备 MCP 所不具备的一个重要特性:CLI 调用本质上是运行 Shell 脚本,所以可以轻易组成链式或决策树式的流程以实现复杂的处理;而 MCP 目前还只能是单次调用得到单个结果,想要实现基于条件的流程控制,必须依赖 LLM 的自主设计,并且过程中需要多次 MCP 调用,增加了复杂度和不确定性。

Agent 时代的 CLI 设计

但为什么相比 CLI,MCP 在 AI 时代得到了更多追捧呢?一方面是人的逐新本能:MCP 是 AI 时代的新产物,而 CLI 是已经存在数十年的“老古董”;另一方面则是因为 CLI 长期以来缺少一套严格的规范体系。我们有的只是一些零散的约定:

  • -x 这样的单字符短命令
  • --execute 这样的长命令
  • -h|--help 帮助选项
  • 空格分隔的参数
  • ……

与 MCP 的严格规范相比,CLI 的自由松散成了阻碍其被 Agent 广泛使用的拦路虎。

问题的关键并不是 CLI 本身不如 MCP,而是传统的 CLI 设计在 Agent 时代必须作出改变。这里笔者提出 Agent 时代 CLI 设计的三个核心原则:

清晰合理的层级结构

一个好的 CLI 工具,其帮助信息就应该是一份结构清晰、层次分明的文档。我们知道,目前 Agent 应用的核心就在于上下文工程。合理的层级设计可以帮助 Agent 在几次 --help 调用之后按需加载当前任务所需要的工具上下文,从而达到更好的 Context 利用效率。。

符合直觉的命令风格

  • 同类资源使用同类动词;
  • 同类动词遵循同类参数顺序;
  • 全局选项(如 --verbose--dry-run--output 等)保持一致语义;
  • 选项命名尽可能遵循习惯用法,不要自创词汇。

做到以上这几条,Agent 就可以在不查看帮助文档(从而节约 Context)的情况下,以较高的准确度执行命令调用。

一个简单的设计思路:想想你会如何用自然语言(英文)来描述这个命令?一套与自然语言高度贴合的命令体系,自然能让 Agent 所想即所见,所见即所得。

稳定可读的结构化输出

Agent 时代的 CLI 工具面向的用户从人类变为 AI Agent,所以其输出也必须遵循面向 Agent 的设计原则,必须具有稳定的结构:

  • 可以是 --json--yaml 这样的格式,一些情况下也可以是格式稳定的文本结构(如编译器等);
  • 具有明确的退出码和可解析的错误字段。

结构化输出让 Agent 可以轻松地进行信息提取(配合 jq 等工具)以及流程编排,从而充分发挥 CLI 的强大能力。

除了这三个核心原则,还有一些值得注意的细节:

  • 写操作应该尽可能支持幂等或 --dry-run 选项,以便 Agent 可以进行预览和调试;
  • 面向多 agent 和 subagent 架构,需要考虑 CLI 的并发控制。一个最简单的文件锁,就可以避免很多写冲突的问题。
  • 复杂的功能最好具备可观测性,以便 Agent 在调用遇到问题时可以更好地排查原因。

结语

Obsidian 官方 CLI 工具的发布,是 OpenClaw 掀起的这波 AI 助理浪潮中的一个重要信号。当 MCP 的热潮渐渐归于平静,蓦然回首,陪伴我们几十年的 CLI 一直就在那里。

我们也许并不需要一个新瓶
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容