先给判断:如果你想让 AI Agent 替你读邮件、查日程、往表格里填数,gws 是目前最短的一条路——免写 OAuth 胶水,一条命令覆盖整个 Workspace。但它自己承认不是谷歌官方支持的产品,还在 0.7.0 里砍掉了多账号,并且可能在你毫无察觉时用错账号发信。
痛点很具体:把 Gmail、云盘、日历接进 Agent,传统做法是先去 Google Cloud 建项目、配 OAuth 同意屏幕、下载 client_secret.json,再手写一层 API 封装——这些活儿跟你的业务毫无关系,却要花掉一整个下午。gws 把这段全部砍掉了,代价是你要接受它现在的成熟度。
一、它到底是什么:一条命令盖住整个 Workspace
gws 是一个面向人类和 AI Agent 的统一 Google Workspace 命令行工具。它最特别的地方是没有静态命令表:运行时去读 Google 官方的 Discovery Service,把服务文档拉下来缓存 24 小时,再动态构建出整棵命令树。也就是说 Google 上线一个新端点,工具下次运行就能用,不需要等发版。解析分两阶段——先识别服务、构建命令面,再解析参数并发出 HTTP 请求。
覆盖面是 Drive、Gmail、Calendar、Sheets、Docs、Chat、Admin 以及其余 Workspace API。所有输出都是结构化 JSON,人类侧还有 --help、--dry-run 和自动分页;Agent 侧直接吃 JSON,不需要你再包一层工具。
仓库里随附 100+ 份 Agent Skills(每份一个 SKILL.md),覆盖受支持的每个 API,另有 Gmail、Drive、Docs、Calendar、Sheets 的 50 个精选配方与工作流助手。它还带 Gemini CLI 扩展,以及 OpenClaw 的接入路径;安全侧提供 Model Armor 集成,可用 --sanitize 扫描 API 响应里的 prompt injection。
二、怎么用:装、登录、跑第一条命令
安装有四条路,按你的环境挑一条即可:
# npm(需要 Node.js 18+,会自动从 GitHub Releases 下载二进制) npm install -g @googleworkspace/cli # 从源码构建(需要 Rust/cargo) cargo install --git https://github.com/googleworkspace/cli --locked # Nix nix run github:googleworkspace/cli # macOS / Linux Homebrew brew install googleworkspace-cli
装完先跑认证。gws auth setup 会自动创建一个 Google Cloud 项目、启用对应 API 并完成登录;之后再用 auth login 做范围选择和登录:
gws auth setup # walks you through Google Cloud project config
gws auth login # subsequent OAuth login
gws drive files list --params '{"pageSize": 5}'
如果你不想让 gws 代管云项目,就手动在 Google Cloud Console 里建。这里有三个必须做对的地方:同意屏幕类型选 External、把自己的邮箱加进 Test users(否则登录报 Access blocked)、OAuth 客户端必须建为 Desktop app(建错会报 redirect_uri_mismatch),然后把下载的 JSON 放到 ~/.config/gws/client_secret.json,再执行 gws auth login。
无头机器和 CI 场景走导出导入,不要把浏览器搬到服务器上:
# 在有浏览器的机器上导出(含未脱敏凭据) gws auth export --unmasked > credentials.json # 在无头机器上指过去,然后照常用 export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/credentials.json gws drive files list # 服务账号(server-to-server) export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/service-account.json gws drive files list # 或者直接给它一个已签发的访问令牌 export GOOGLE_WORKSPACE_CLI_TOKEN=$(gcloud auth print-access-token)
凭据优先级是:访问令牌 > 凭据文件 > 加密凭据 > 明文凭据。本地交互式凭据会用 AES-256-GCM 静态加密,密钥存在操作系统 keyring 里,这一点比把 token 明文摊在 shell 历史里强。
真正省事的是 helper 命令——把常见动作做成了加号子命令,不用自己拼 JSON 体:
# 发一封邮件 gws gmail +send --to alice@example.com --subject "Hello" --body "Hi there" # 回复 gws gmail +reply --message-id MESSAGE_ID --body "Thanks!" # 往表格追加一行 gws sheets +append --spreadsheet SPREADSHEET_ID --values "Alice,95" # 看今天的日程 gws calendar +agenda # 上传文件到云盘 gws drive +upload ./report.pdf --name "Q1 Report" # 晨会摘要 gws workflow +standup-report # 指定时区看日程 gws calendar +agenda --today --timezone America/New_York
记不住有哪些加号命令,就让工具自己报:gws gmail --help 会列出 +send、+reply、+reply-all、+forward、+triage、+watch,gws calendar --help 列出 +insert、+agenda,gws drive --help 列出 +upload。
最后把技能包装给 Agent。两种接法,装完 Agent 就能直接调:
# 装全部技能 npx skills add https://github.com/googleworkspace/cli # 或者只装你要的几个 npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-drive npx skills add https://github.com/googleworkspace/cli/tree/main/skills/gws-gmail # Gemini CLI 扩展 gws auth setup gemini extensions install https://github.com/googleworkspace/cli # OpenClaw:软链或复制进技能目录 ln -s $(pwd)/skills/gws-* ~/.openclaw/skills/ cp -r skills/gws-drive skills/gws-gmail ~/.openclaw/skills/
三、优点和缺点,摊开说
先说它值得用的地方:
- 许可证干净,LICENSE 是完整标准 Apache-2.0 全文,附录之后没有追加条款——可商用,没有偷偷加限制。
- 动态命令面:Google 加端点你自动就有,不用等第三方库跟进;输出全 JSON,Agent 直接就能读懂。
- 免写胶水:认证、分页、请求体校验都在工具里,helper 命令把高频动作收成加号子命令。
- 凭据静态加密 + 系统 keyring;无头场景支持导出导入,不强迫你开浏览器。
- 二进制覆盖 macOS(aarch64 / x86_64)、Linux(gnu / musl 各两种)、Windows,可以直接从 Releases 拿。
再说必须提前知道的缺点——这部分才是本文的重点:
| 风险点 | 具体情况 |
|---|---|
| 官方话术自相矛盾 | 仓库挂在 googleworkspace 组织下,README 却明确写着 This is not an officially supported Google product,同时又提示项目仍在活跃开发、朝 v1.0 前进的过程中会有破坏性变更。 |
| OAuth 范围限制 | 未验证应用(测试模式)的同意范围被限制在约 25 个 scope,而 recommended 预设包含 85+ 个,对上未验证应用会直接失败,@gmail.com 账号尤其容易踩。稳妥做法是按域单独授权,例如 gws auth login -s drive,gmail,sheets。 |
| 多账号被移除且未说明原因 | 0.7.0 起多账号能力被删除,旧版的 --account 参数和 GOOGLE_WORKSPACE_CLI_ACCOUNT 环境变量本来是好用的。issue #439 里多位用户追问原因、有人提交的 PR #788 被机器人自动关闭,至今没有维护者解释。 |
| 可能静默用错账号(最危险) | 同一条 issue 里有用户实测:~/.config/gws/ 下仍留着 accounts.json、credentials.<base64url 编码的邮箱>.enc、token_cache.<base64url 编码的邮箱>.json,accounts.json 里也照样声明着 default,但现行源码已经不读这些文件(在 crates/ 下检索 accounts.json 与 CLI_ACCOUNT 零命中)。后果是他声明的默认账号是 A,每次调用实际都以 B 认证;GOOGLE_WORKSPACE_CLI_ACCOUNT 被静默忽略、退出码 0、没有任何警告。受影响的是 drafts.create、messages.send、files.delete 这类写入动作。 |
| 发布节奏停滞 | 最新的正式 Release 停在 v0.22.5(2026-03-31),此后五个多月没有新版本,而仓库仍在推提交(2026-09-14)。issue #913 有人直接问这个项目是否还活着,截至本文抓取时仍无回复。 |
| 升级会断的细节 | 二进制资产在 0.20.0 到 0.21.1 之间从 gws-* 改名为 google-workspace-cli-*,任何按文件名匹配的安装脚本都会在升级时断掉。 |
| 周边小毛病: | issue #772 指出按 API 生成的技能包会让 Agent 上下文开销偏大,建议重构为带引用文件的规范技能。另有 #197 不支持 Advanced Protection Program 用户、#306 Windows 安装缺 gws.exe 导致 auth setup 报 ENOENT、#642 Gmail 头解析大小写敏感会丢 CC。切账号相关的还有 #780 令牌缓存未随切换失效、#572 切账号时令牌缓存忽略凭据文件。 |
四、最终能达到什么效果
落地之后,你会得到一个这样的工作流:早上让 Agent 跑一次 gws workflow +standup-report 汇总日程,它自己读 Gmail 找关键邮件、读日历列今天的会、把结果写进表格;你只需要在收件箱里确认,或者直接用 gws gmail +reply 让它起草回信。整个过程不需要你登录任何网页,所有动作都在终端和 Agent 里闭环,输出是可以被程序继续处理的 JSON。
不过要发挥这个效果,得先接受两个前提:你需要一个 Google Cloud 项目;你需要自己搞清楚要给哪些 scope。
| 场景 | 结论 |
|---|---|
| 单 Google 账号,要把 Gmail、日历、表格接进 Agent: | 推荐,这是它最舒服的场景 |
| 愿意折腾一次性 OAuth 配置、之后长期免维护: | 推荐,配置成本一次性摊薄 |
| 需要在个人号与工作号之间切换的 Agent: | 暂不推荐,多账号已被移除且存在静默错账号风险 |
| 账号启用了高级保护计划: | 暂不推荐,当前不支持 |
| 要把它当成生产级谷歌官方组件来依赖: | 暂不推荐,非官方支持 + 未 GA + 版本停滞 |
动手前先做三件事:
- 先只授权一个域试通(gws auth login -s drive),确认链路没问题再扩范围。
- 把授权后的身份核清楚:gws auth status 显示的账号,必须和你以为的账号一致,别信旧的 accounts.json。
- 给写入类动作留一道人工确认——尤其在多账号环境里,先让它做读操作,确认身份无误再接发送和删除。
下期预告:让 AI 操作真实账号其实有三条路——CLI + Skills、MCP Server、以及浏览器自动化。它们的能力边界、安全边界和翻车姿势完全不同,下期做一次横向拆解。
#GitHub趋势#AI Agent#Google Workspace#自动化
数据来源:GitHub 官方页面与 REST API · 抓取时间:2026-09-16 16:19。文中命令均取自仓库 README 原文;风险点来自仓库内公开的 issue 与 LICENSE。本轮未在本机安装运行该项目,所有结论均为文档与问题单层面的核实结果。项目地址:https://github.com/googleworkspace/cli
