name: todoist-setup description: 将Todoist连接到Dex,实现双向任务同步 integration: id: todoist name: Todoist mcp_server: todoist-mcp auth: api_key enhances: - skill: daily-plan capability: “将今日到期的Todoist任务与Dex任务合并” - skill: triage capability: “将项目路由到Dex、Todoist或两者” - skill: process-inbox capability: “处理捕获项目时,在两个系统中创建任务” - skill: week-review capability: “显示跨系统完成统计(Dex + Todoist)” new_capabilities: - name: 双向任务同步 trigger: “在每日计划和任务创建接触点自动进行” sync: direction: bidirectional entities: tasks
Todoist设置
将您的Todoist账户连接到Dex,以便任务在两者之间保持同步。在Dex中创建任务,它会出现在Todoist中。在Todoist中完成任务,Dex会知道。
这能实现什么
连接后,Dex可以:
- 每日计划 (
/daily-plan): 将今日到期的Todoist任务与您的Dex任务合并 - 分类 (
/triage): 将新项目路由到Dex、Todoist或两者 - 处理收件箱 (
/process-inbox): 处理捕获项目时,提供相同的路由选项 - 周回顾 (
/week-review): 查看Dex和Todoist的完成统计
同步工作原理(通俗解释)
- 当您在Dex中创建任务时,它会自动推送到Todoist
- 当您在Todoist中完成任务时,Dex在您的下一次每日计划中获取它
- 任务标题、优先级和完成状态在两者之间传输
- 每个系统保留自己的副本 — 如果一个系统离线,另一个仍可工作
- 同步在自然接触点(每日计划、分类)进行 — 不是持续在后台运行
- 由Dex创建的任务在描述中带有
[dex:task-ID]标记,以防止系统重复
隐私
- 任务标题和状态在Dex和Todoist之间同步。不存储任务内容或笔记,除了您已在两个系统中已有的内容。
- 您的API密钥本地存储在
System/integrations/config.yaml中(gitignored) - Dex从不与第三方共享您的Todoist数据
- 在Todoist中创建的任务只有在最初不是从Dex推送时才会拉入Dex(通过
[dex:...]标记防止循环)
何时运行
- 用户输入
/todoist-setup - 用户询问连接Todoist或任务同步
- 用户希望在每日计划中看到Todoist任务
- 在
/integrate-mcp中,如果提到Todoist
设置流程
步骤1:检查是否已连接
- 检查
System/integrations/config.yaml中是否有todoist:部分且enabled: true - 如果启用,使用存储的API密钥列出项目以测试连接
- 如果健康,跳转到重新配置部分
- 如果未配置或不健康,继续步骤2
步骤2:解释设置内容
说:
**让我们将Todoist连接到Dex。**
双向任务同步。在Dex创建 — 出现在Todoist。在Todoist完成 — 在Dex完成。
**您需要:**
- 您的Todoist API令牌(我会告诉您如何找到它)
- 大约2分钟
**准备好开始了吗?**
等待确认。
步骤3:获取API密钥
指导用户:
获取您的Todoist API令牌:
1. 打开Todoist(网页版或应用)
2. 转到**设置** → **集成** → **开发者**
3. 复制那里显示的**API令牌**
当您有它时,请粘贴到这里。
等待用户提供API密钥。验证它是非空字符串(Todoist API令牌通常是40字符的十六进制字符串)。
步骤4:添加MCP服务器到配置
检查用户的MCP配置。如果todoist-mcp未列出:
- 解释:
我会将Todoist连接器添加到您的配置中。
这允许Dex使用您的API令牌与Todoist通信。
- 添加到用户的
.mcp.json(使用/dex-add-mcp技能或手动编辑):
{
"todoist-mcp": {
"command": "npx",
"args": ["-y", "todoist-mcp-server"],
"env": {
"TODOIST_API_KEY": "<用户的API密钥>"
}
}
}
- 告诉用户MCP服务器需要重启以使更改生效。
步骤5:测试连接
使用API密钥列出项目作为连接性测试。运行curl或使用MCP服务器:
curl -s -H "Authorization: Bearer $API_KEY" https://api.todoist.com/rest/v2/projects
如果项目成功加载:
已连接!我可以看到您的Todoist项目:
1. 收件箱
2. 工作
3. 个人
...
看起来不错!
如果失败:
该API密钥无效。检查以下几点:
1. **复制完整密钥** — 它应该是大约40个字符
2. **检查前后是否有额外空格**
3. **在Todoist设置 → 集成 → 开发者中重新生成密钥**
想再试一次吗?
最多重试2次,然后提供跳过稍后回来的选项。
步骤6:选择默认项目
询问用户哪个Todoist项目应接收Dex任务:
**Dex任务应进入哪个Todoist项目?**
您的项目:
1. 收件箱
2. 工作
3. 个人
...
您可以选择一个默认项目,或将每个Dex支柱映射到不同项目。
**选项A:** 所有Dex任务进入一个项目(最简单)
**选项B:** 映射每个支柱到项目:
- 交易支持 → [项目]
- 思想领导 → [项目]
- 产品反馈 → [项目]
您选择哪个?
保存他们的选择用于配置文件。
步骤7:信任级别
询问同步自主性 — 绝不使用“层级”一词(根据integration-patterns.md):
**您希望任务同步有多手动?**
1. **“先给我看”** — 我会在同步前预览更改(推荐开始时使用)
2. **“保持同步”** — 任务自动双向同步,静默进行
3. **“仅拉入”** — 从Todoist导入任务但不推送回去
映射他们的选择到配置值:
- 先给我看 →
trust_level: confirm_each - 保持同步 →
trust_level: autonomous - 仅拉入 →
trust_level: read_only
步骤8:保存配置
写入System/integrations/config.yaml — 更新todoist部分:
todoist:
enabled: true
configured_at: YYYY-MM-DD
mcp_server: todoist-mcp
auth_type: api_key
api_key: <用户的API密钥>
task_sync: true
trust_level: <confirm_each | autonomous | read_only>
project: <默认项目名称>
pillar_map:
deal_support: <项目名称或省略>
thought_leadership: <项目名称或省略>
product_feedback: <项目名称或省略>
sync_labels: []
auto_sync: true
features:
task_sync: true
external_task_merge: true
如果文件已存在,仅更新todoist:部分。保留其他集成配置。
步骤9:能力瀑布
从该技能的前言读取集成清单。呈现:
**Todoist已连接!** 以下是刚刚更改的内容:
### 增强(现有技能变得更智能)
- **`/daily-plan`** → 将今日到期的Todoist任务与您的Dex任务合并。
外部创建的任务显示[Todoist]标签,以便您知道来源。
- **`/triage`** → 现在在处理项目时提供路由到Dex、Todoist或两者的选项。
- **`/process-inbox`** → 相同路由 — “这看起来像任务。添加到Dex、Todoist或两者?”
- **`/week-review`** → 显示跨系统完成统计,以便您看到全貌。
### 新超能力
- 双向任务同步 — 在每日计划和任务创建接触点自动进行。
### 工作原理
- **读取:** Todoist任务自动出现在您的每日计划中
- **写入:** [基于用户上述选择的信任级别描述]
- **隐私:** 任务标题和状态同步。您的API密钥保持本地。不与第三方共享数据。
这些从现在开始自动工作。随时运行`/dex-level-up`查看其他功能。
故障排除
API密钥无效或过期
Todoist API密钥除非重新生成,否则不会过期。如果看到身份验证错误:
- 转到Todoist设置 → 集成 → 开发者
- 复制当前API令牌(或如果需要则重新生成)
- 通过再次运行
/todoist-setup更新密钥
任务不同步
几种可能性:
- 同步仅在接触点发生 — 在
/daily-plan、任务创建或/triage期间。没有后台同步。 - 检查项目映射 — 如果您的Dex支柱映射到在Todoist中重命名或删除的项目,任务可能进入收件箱。
- 速率限制 — Todoist允许每分钟450个请求。适配器使用自动重试处理429响应,因此这几乎不是问题。
错误项目
如果任务落入错误的Todoist项目:
- 再次运行
/todoist-setup - 更新支柱到项目的映射
- 现有任务不会移动 — 只有新任务使用更新的映射
重复任务
如果看到重复,检查:
- Dex起源的任务 应该在Todoist描述中有
[dex:task-...]。适配器在拉入时跳过这些以防止循环。 - Todoist起源的任务 如果您手动添加到Dex,不会在
.sync-state.json中有映射,可能再次被拉入。在Dex中标记它们以创建映射。
“Todoist MCP未找到”
Todoist适配器使用直接API调用(非MCP)进行同步桥接。MCP服务器是可选的,但增强其他技能。重新运行/todoist-setup以检测和修复配置。
重新配置
如果用户在已配置时运行/todoist-setup:
- 从
System/integrations/config.yaml检查当前配置 - 使用项目列表调用测试现有API密钥
- 显示当前映射和信任级别
- 提供选项:
- 更新项目映射
- 更改同步行为(信任级别)
- 更新API密钥
- 断开Todoist连接
断开连接流程
如果用户想断开连接:
- 更新
System/integrations/config.yaml:todoist: enabled: false - 确认:“Todoist已断开连接。任务将不再在系统之间同步。您在Dex和Todoist中的现有任务保持不变。随时运行
/todoist-setup重新连接。”