核心用法
clippy 是一款通过浏览器自动化(Playwright)操作 Microsoft 365 Web UI 的命令行工具,无需 Azure AD 应用注册即可实现完整的 Outlook 日历和邮件管理。用户通过 clippy login --interactive 完成浏览器交互式登录后,即可使用纯 CLI 方式查看日程、创建会议、发送邮件、搜索组织人员等操作。核心工作流包括:日历查询(clippy calendar)、事件创建(clippy create-event)、邮件收发(clippy mail / clippy send)、会议时间协调(clippy findtime)以及通过 keepalive 守护进程维持长期会话。
显著优点
1. 零配置门槛:绕过复杂的 Azure AD 应用注册流程,个人用户无需管理员权限即可使用
2. 功能完整度高:覆盖日历 CRUD、邮件收发、附件处理、会议室查找等全场景需求
3. 自然语言友好:支持 --day tomorrow、、--repeat weekly` 等直观参数
4. 输出格式灵活:原生支持 JSON 输出,便于与其他工具链集成
5. 会话持久化:keepalive 机制解决浏览器自动化常见的 token 过期问题
潜在缺点与局限性
1. 架构脆弱性:依赖 Web UI 自动化而非官方 Graph API,Microsoft 前端变更可能导致功能失效
2. 性能开销:每次操作需启动/复用浏览器实例,响应延迟高于原生 API 调用
3. 平台绑定:当前仅支持 bun 运行时,Node.js 用户需额外适配
4. 可维护性风险:个人开发者项目,长期更新承诺不明确
5. 企业合规障碍:多数企业安全策略禁止浏览器自动化工具访问生产环境 M365 账户
适合的目标群体
- 个人开发者/技术爱好者:需要快速自动化 Outlook 操作但无管理员权限
- 小型团队:临时性脚本需求,不愿投入 Azure AD 配置成本
- 自动化测试场景:需要模拟真实用户 Web 交互的集成测试
- 不适合:受严格合规监管的企业环境、对稳定性要求极高的生产系统
使用风险
1. 账户安全风险:工具持有完整 M365 会话权限,泄露即意味着邮件/日历完全暴露
2. 供应链风险:通过 bun install 引入的依赖链未经审计,存在潜在恶意包注入可能
3. 服务可用性风险:Microsoft 可随时通过前端反自动化机制(如 CAPTCHA、UI 改版)阻断工具
4. 数据残留风险:浏览器配置文件存储于本地磁盘,多用户环境可能造成会话混淆