谷歌发布官方 CLI,可操作所有谷歌文档
今天上午,一个名为Google Workspace CLI的项目悄然出现在GitHub上,并且直接归属于Google Workspace的官方组织。这个动作本身,就足以引起开发者社区的关注。
项目的热度攀升得飞快。开始撰写本文时,它的Star数还停留在2700;准备发布前刷新了一下,已经涨到了3500;而就在刚刚,这个数字又跳到了3700。这种增长速度,在技术工具类项目中并不多见。
项目的发布也颇具分量,由Google Cloud AI的负责人Addy Osmani亲自在推特上宣布。虽然项目的README里明确写着“这不是谷歌官方支持的产品”,但考虑到它挂在官方组织下,且核心开发者来自Google Workspace的开发者关系团队,再加上高管的公开背书,其定位已经相当清晰:这是一个得到谷歌官方认可、但暂不提供标准服务承诺的“亲儿子”项目。
它在解决一个具体问题
这个工具的出现,直指一个正在浮现的核心矛盾:过去三十年里,我们为人类眼睛和鼠标设计的图形界面,对AI智能体(Agent)来说,却是一道难以逾越的屏障。
邮件、文档、日历、云盘……所有这些生产力工具的操作逻辑都建立在点击、拖拽和视觉反馈之上。但Agent没有眼睛,也不会用鼠标。它们需要的是另一种交互范式:发送一个明确的指令,然后接收结构化的数据,接着继续执行下一个任务。整个过程必须是无GUI、可编程、且机器可读的。
Google Workspace CLI正是为此而生。它将Google Workspace繁杂的API,封装成一行行简洁的命令行指令,并且所有输出——无论是成功的结果还是报错信息——都采用标准的JSON格式。这意味着Agent可以直接解析和处理,无需再费力“理解”网页上的复杂布局。
来看几个具体的例子:
让Agent列出最近的10个文件,只需:
gws drive files list --params '{"pageSize": 10}'
新建一个名为“Q1预算”的表格,命令是:
gws sheets spreadsheets create --json '{"properties": {"title": "Q1预算"}}'
甚至可以在Google Chat中发送一条消息(`--dry-run`参数用于预览,不会真实发送):
gws chat spaces messages create
--params '{"parent": "spaces/xyz"}'
--json '{"text": "部署完成"}'
--dry-run
这种设计,本质上是在为AI时代的生产力工具铺设“机器可读”的轨道。
覆盖 Google Workspace 的全部主要产品
目前,这个CLI工具已经覆盖了Google Workspace的核心产品矩阵:Drive、Gmail、Calendar、Sheets、Docs、Chat、Admin以及其他相关API。
其中一个设计颇为巧妙:它没有预设一个固定的命令列表。相反,它在每次运行时,都会动态查询谷歌官方的API目录(Discovery Service),实时生成可用的命令。这意味着,只要谷歌为其Workspace产品新增了API,这个CLI工具就能自动支持,无需等待版本更新。
在认证方面,它考虑得相当周全,覆盖了从本地开发、持续集成(CI)环境到服务账号(Service Account)的各种场景,并且支持直接传入已有的访问令牌。所有凭证在本地都会进行加密存储,兼顾了便利性与安全性。
Agent 接入有三种方式
无论你使用哪种Agent框架或工具,都能找到合适的方式接入。
第一种,作为命令行工具直接调用。
第二种,作为MCP服务器运行。
gws mcp -s drive,gmail,calendar
启动后,任何支持MCP协议的客户端,如Claude Desktop、Gemini CLI或VS Code,都能直接调用这些工具,实现更深度的集成。
第三种,通过Skills方式接入。
# 一行命令安装全部
npx skills add https://github.com/googleworkspace/cli
OpenClaw 的作者,想一决高下
有趣的是,市场并非没有先行者。OpenClaw的开发者Peter Steinberger,几个月前就因为找不到好用的工具,自己动手造了一个名为`gog`的Google Workspace CLI。
当谷歌官方工具发布时,Peter在推特上回应说,他会进行详细的评估测试,看看哪个工具更适合Agent使用。但他也坦言:“看到它要求的JSON命令格式,我不太确定了。”
两者的设计哲学确实不同。`gog`的命令更接近自然语言,例如:
gog gmail search 'newer_than:7d'
而Google Workspace CLI则更贴近底层API的结构:
gws drive files list --params '{"pageSize": 5}'
对于Agent而言,封装层级越高、命令越像自然语言,其理解和执行的难度就越低,出错的可能性也越小。在这场“谁更懂Agent”的较量中,最终结果还有待评估。Addy Osmani也公开表示,欢迎Peter提交功能请求。
还有一个细节
如果你仔细查看项目仓库,会发现根目录下有一个与`README.md`并列的`AGENTS.md`文件。
这份文件是专门写给AI编程助手(比如Claude Code)的贡献指南,详细说明了如何为该项目编写代码、提交Pull Request以及进行安全检查。文件里有一句话特别值得玩味:“这个CLI经常被AI Agent调用,写代码时永远假设输入可能是恶意的。”
这传递出一个明确的信号:
开发者已经默认,未来维护代码库的将有人类也有AI,同时默认调用这些接口的也将是Agent。
此外,该工具还支持接入Google Cloud的Model Armor服务。这能在API返回的内容到达Agent之前,自动扫描是否存在提示词注入(prompt injection)等攻击,并可根据设置进行警告或直接拦截。这再次强调了同一个理念:在AI驱动的世界里,调用方(Agent)本身也成为了需要防护的攻击面。
目前,该工具版本号为v0.3.4,仍处于活跃开发阶段。在v1.0正式版发布前,API可能存在破坏性变更。但毫无疑问,它已经为自动化工作流打开了一扇新的大门。