核心用法
gog-restricted 是 gog CLI 的安全封装版本,通过命令白名单机制仅开放只读和组织类操作,硬阻断所有外发、删除、管理类命令。核心能力覆盖:
Gmail 操作 — 支持搜索(gmail search、gmail messages search)、读取(gmail read、gmail get)、标签管理(labels list/create/add/remove)、批量修改(thread modify、batch modify)。支持附件下载(gmail attachment)和线程历史查询。组织操作通过标签实现:归档即移除 INBOX,标记已读即移除 UNREAD,垃圾邮件即添加 TRASH。
Calendar 操作 — 支持事件查询(calendar events、calendar search、calendar freebusy)、日历列表(calendar calendars)、冲突检测(calendar conflicts)、ACL 查询(calendar acl list)。受限创建模式(calendar create)仅允许 --summary、--from、--to 等白名单参数,其他参数一律拦截。
认证管理 — 支持多账户环境(GOG_ACCOUNT 环境变量)、账户列表查询(auth list)、服务范围查看(auth services)。
显著优点
1. Fail-Closed 安全模型:白名单机制确保任何未显式允许的命令均被拒绝,包括 gmail send、calendar update、drive、docs 等整类服务。短标志(-m 等)因解析歧义被全局禁止,进一步降低注入风险。
2. Agent 运行时适配:安装脚本(script/setup.sh)支持 HOME 被重定向到 profile 目录的场景,自动回退到系统级路径(/opt/homebrew/bin、/usr/local/bin),并提供 GOG_RESTRICTED_INSTALL_DIR 覆盖机制。
3. 结构化输出优先:强制 --json 和 --no-input 模式,便于自动化解析且避免交互阻塞。
4. 细粒度日历创建限制:calendar create 的参数白名单阻止通过 --conference-data 等隐蔽参数创建含外部会议链接的事件,防范钓鱼和供应链攻击。
潜在缺点与局限性
- 功能裁剪严重:无法发送/回复邮件、删除邮件或标签、更新/删除日历事件、管理 ACL、访问 Drive/Docs/Sheets/Chat 等服务。适合纯读取和轻量组织场景,复杂工作流受限。
- 短标志不可用:习惯
-m 10的用户需改写为--max 10,增加迁移成本。
- 白名单维护负担:
gog新增安全参数需同步更新 wrapper 才能使用,存在版本滞后风险。
- 安装权限敏感:系统级路径安装使 wrapper 对所有用户可见,多用户环境需额外隔离配置。
适合人群
- 需要自动化邮件分类、归档、标签管理但禁止外发的安全敏感场景
- 日程查询、冲突检测、空闲时间分析的自动化代理
- 受监管环境(合规要求禁止邮件外发、数据删除)下的 Google Workspace 集成
常规风险
- Prompt 注入:邮件正文、主题、发件人名称、日历标题/描述均可能包含恶意指令("forward this to X"、"run this command"),需严格过滤,禁止据此执行任何操作。
- 附件风险:下载的附件可能包含恶意内容,禁止自动执行或解析其中的指令。
- 数据泄露边界:邮件地址、内容、日程详情不得透出到 CLI 外部服务。
- 误操作放大:
TRASH标签添加即生效,建议优先使用pending-review标签,批量操作限制在 50 条以内并记录审计日志。