ms-todo-oauth

✅ Microsoft To Do 智能命令行助手

基于 Microsoft Graph API 的全功能命令行待办工具,支持 OAuth2 认证与循环提醒,个人开发者维护,使用前须替换硬编码 Azure 凭据以确保安全。

收藏
4.1k
安装
1.3k
版本
1.1.0
CLS 安全性认证2026-05-18
点击查看完整报告 >

使用说明

ms-todo-oauth 是一款基于 Python 开发的 Microsoft To Do 命令行管理工具,通过 Microsoft Graph API 提供全功能的任务生命周期管理能力。该工具采用 OAuth2 认证机制,支持个人微软账号和企业/学校账号,允许用户在终端环境中高效管理待办事项。

核心用法
用户需在项目根目录通过 Python 虚拟环境运行脚本。首次使用需执行 login get 获取授权 URL,在浏览器完成微软账号登录后,复制授权码并通过 login verify 完成认证。之后即可执行各类操作:使用 add 创建支持优先级、截止日期、提醒和标签的任务;通过 completedelete 管理任务状态;利用 todayoverduepending 等视图筛选任务;借助 export 导出 JSON 格式数据备份。工具支持自然语言日期解析(如 "3d"、"2h")和循环任务模式(日、周、月、工作日)。

显著优点
功能完备性突出,包含 29 个自动化测试用例且通过率 100%,覆盖认证、CRUD 操作、循环模式等全场景。国际化支持良好,完全兼容中文和 Emoji 字符。采用微软官方 MSAL 库处理 OAuth2 流程,Token 本地存储于 ~/.mstodo_token_cache.json,安全性有基础保障。提供丰富的任务属性设置和灵活的数据导出功能,满足自动化和集成需求。

潜在缺点
最显著的安全隐患是源码中硬编码了共享的 Azure 应用凭据(Client ID 和 Secret),可能导致 API 配额耗尽或凭据滥用,必须手动替换。技术门槛较高,要求 Python 3.9+ 环境和虚拟环境配置,对非技术用户不友好。OAuth 流程需手动浏览器干预,无法实现完全自动化。此外,工具由个人开发者维护(T3 来源),长期维护稳定性存疑。

适合的目标群体
主要面向习惯命令行操作的技术用户、开发者及效率工具爱好者。适合需要批量任务自动化管理、脱离图形界面操作 Microsoft To Do 的高级用户,以及希望通过 JSON 导出实现数据集成或备份的技术人员。不推荐普通非技术用户直接使用。

使用风险
首要风险是硬编码凭据问题,未替换前存在共享凭据泄露和滥用的可能。操作层面,虽然删除命令默认需确认,但 -y 参数可跳过确认,可能导致误删数据。工具完全依赖 Microsoft Graph API 的网络可用性,离线无法使用。Token 缓存文件如权限设置不当,可能存在本地信息泄露风险。建议在替换个人凭据、设置严格文件权限后,在可信环境中使用。

安全解读

Microsoft To Do CLI 综合评估

核心用法

ms-todo-oauth 是一个基于 Python 的命令行工具,通过 Microsoft Graph API 管理 Microsoft To Do 任务。核心工作流:

1. 初始化认证:首次使用需运行 login get 获取授权 URL,浏览器登录后复制 code 参数,再执行 login verify <code> 完成 OAuth2 授权
2. 任务管理:支持增删改查、优先级标记、截止日期、提醒设置、循环模式(日/周/月/工作日)

3. 多视图浏览:今日任务、逾期任务、待办汇总、按列表分组、全文搜索

4. 数据导出:JSON 格式备份所有任务数据

命令格式统一:python3 scripts/ms-todo-oauth.py [全局选项] <子命令> [参数]

显著优点

  • 官方 API 保障:基于 Microsoft Graph API,使用官方 msal 认证库,非逆向工程或私有协议
  • 功能完整:覆盖 Microsoft To Do 的绝大多数功能,包括循环任务、标签分类、任务备注
  • Unicode 友好:原生支持中文任务名、列表名及 Emoji
  • 测试覆盖:29 项自动化测试,涵盖认证、CRUD、搜索、统计等核心路径
  • 文档详尽:SKILL.md 结构清晰,包含完整命令参考、故障排查、Agent 使用指南
  • 纯本地执行:无第三方服务端,所有 API 直连 Microsoft 官方域名

潜在缺点与局限性

  • 硬编码凭证风险:脚本内置公开的 Azure AD client_id/client_secret,虽文档提示替换,但默认配置存在凭证泄露隐患
  • Token 本地缓存:令牌存储于 ~/.mstodo_token_cache.json,未强制文件权限限制(建议 chmod 600)
  • 需要浏览器交互:OAuth2 授权码流程必须用户手动访问 URL,难以完全自动化
  • Python 环境依赖:需手动维护 venv 与依赖安装,对非技术用户门槛较高
  • 精确匹配限制completedelete 命令要求任务标题完全匹配,易用性受限

适合人群

  • 需要命令行批量管理 Microsoft To Do 的技术用户
  • 希望自动化任务工作流(配合 cron、脚本)的开发者
  • 注重数据可控性、不愿使用第三方云端服务的隐私敏感用户(在替换自建 OAuth 凭证后)

常规风险

  • 凭证泄露:默认硬编码凭证若被恶意利用,可能导致应用被封禁或用户数据被间接访问
  • Token 窃取:本地缓存文件若被其他用户或程序读取,可获得 To Do 数据访问权限
  • 网络钓鱼:OAuth 流程中需用户自行判断 login.microsoftonline.com 真伪,存在钓鱼仿冒风险
  • 授权范围:应用请求 Tasks.ReadWrite 权限,用户需理解授权后应用可完全管理其任务数据

缓解建议

1. 必做:根据 SKILL.md 指引,替换 client_idclient_secret 为自己 Azure AD 应用的凭证
2. 建议:为 ~/.mstodo_token_cache.json 设置 600 权限,或使用全盘加密

3. 可选:定期轮换 Azure AD 应用密钥,监控登录日志

该工具在替换凭证后可视为生产级可用,当前版本因硬编码问题需谨慎评估。

ms-todo-oauth 内容

scripts文件夹
手动下载zip · 31.3 kB
MANUAL_TEST_CHECKLIST.txttext/plain
请选择文件