Two-way task sync with TickTick / Dida365 (滴答清单) for DeepSeek Harness, built on the official OAuth 2.0 Open API. Pull tasks across every list, create / update / complete /…
Two-way TickTick/Dida365 (滴答清单) task sync via the official OAuth Open API: pull tasks across lists, create/update/complete/delete tasks, and one-shot title-deduped sync, with a web settings panel.
安装
dsh plugin --profile web add github:zhengjy01/dsh-ticktickGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
English | 中文
DeepSeek Harness 的滴答清单(TickTick / Dida365)双向任务同步插件,基于官方 OAuth 2.0 Open API:拉取各清单任务、创建 / 更新 / 完成 / 删除任务、一键去重同步——agent 与 Web 设置面板均可使用。
功能
- 官方 Open API — 基于滴答清单开放平台(
/open/v1)的 OAuth 2.0 授权码流程,401 时自动用 refresh_token 刷新。 - 双区域 — Dida365(国内,默认)与 TickTick(国际版)可选,设置面板或
ticktick_config均可切换。 - 拉取 —
ticktick_tasks/ticktick_sync汇总各清单未完成(或已完成)任务,按截止时间排序,带清单名。 - 推送 —
ticktick_add创建单个或多个任务(标题、按 id 或名称指定清单、ISO 8601 或纯日期截止时间、优先级 0-5 或 none/low/medium/high、标签、备注)。 - 一键同步 —
ticktick_sync的direction=pull(按清单分组汇总)或direction=push(按清单内标题去重创建,重复执行不会产生副本)。 - 维护 —
ticktick_update、ticktick_complete、ticktick_delete(清单 id 可省略,自动查找)。 - 设置面板 — 设置 → TickTick:配置凭据、发起授权(弹窗 + 手动粘贴 code)、刷新令牌、快捷添加任务、就地完成今日任务。
- 凭据与令牌持久化到
~/.dsh/dsh-ticktick.json(权限 0600);ticktick_status不回显任何密钥。 - 系统提示中公告插件,agent 知道何时使用。
安装
# 发布到 GitHub 后(仓库打上 `dsh-plugin` topic)
dsh plugin --profile web add github:zhengjy01/dsh-ticktick
# 本地开发
dsh plugin --profile web add link:/path/to/dsh-ticktick
重启 dsh web。插件无需构建步骤——lib/index.js 是纯 ESM。
配置
在开放平台创建应用:https://developer.dida365.com/docs#/openapi(国内)或 https://developer.ticktick.com/manage/(国际版),并注册回调地址:
http://127.0.0.1:3080/api/dsh-ticktick/oauth/callback(按你实际的dsh web端口填写,或自定义redirectUri——必须与注册的完全一致。)把
client_id/client_secret交给插件,可在设置面板(设置 → TickTick)填写,或直接让 agent 配置:帮我配置滴答清单,client_id 是 xxx,client_secret 是 yyy,区域用国内版 Dida365agent 会调用
ticktick_config持久化凭据。授权:在面板点「开始授权」(或
ticktick_oauth_start)并登录。回调会自动完成;若未自动完成,把 code 粘贴回来并调用ticktick_oauth_finish。
之后即可:
把今天滴答清单里没做完的任务同步给我 → ticktick_sync (pull)
帮我把这些任务同步到滴答清单:买牛奶、写周报 → ticktick_sync (push, 去重)
明天下午3点提醒我开会,加到「工作」清单 → ticktick_add
client_secret与 OAuth 令牌都是凭据:持有者可以读取和修改你的任务。它们存放在~/.dsh/dsh-ticktick.json(权限 0600);如泄露可用ticktick_config(reset: true)清除。
工具一览
| 工具 | 用途 |
|---|---|
ticktick_status |
连接与授权状态 |
ticktick_config |
设置 / 清除 clientId、clientSecret、region(cn/intl)、redirectUri |
ticktick_oauth_start |
生成授权链接 |
ticktick_oauth_finish |
用粘贴的 code / 回调 URL 换取令牌 |
ticktick_lists |
列出所有清单(id + 名称) |
ticktick_tasks |
拉取任务(按清单、已完成、条数限制) |
ticktick_add |
创建任务 |
ticktick_update |
更新任务 |
ticktick_complete |
完成任务 |
ticktick_delete |
删除任务 |
ticktick_sync |
拉取汇总 / 按标题去重推送 |
说明
- 使用 Node 内置
fetch(Node 22+)与crypto——零运行时依赖。 - OAuth 回调路由仅限本机回环且校验 OAuth
state;其余/api/dsh-ticktick/*路由仅限本机回环 + 同源。 - 开放 API 未覆盖:智能清单筛选与定时提醒(
reminders/repeatFlag传入时会透传,但未建模为工具参数)。 - Web 设置面板通过仅限回环的
/api/dsh-ticktick路由族与宿主通信。
License
MIT
原始 README: https://github.com/zhengjy01/dsh-ticktick/blob/main/README.zh.md ↗
同类插件
查看全部 →
dsh
将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。

dsh-qqbot
让 QQ Bot 接入 DeepSeek Harness(dsh)的官方插件

dsh-open-in-vscode
从 Web GUI 一键在 VS Code 中打开工作区目录。

dsh-notification
回合完成桌面通知,按结果分控 + 关键词过滤。

dsh-notifier
DSH 统一通知推送与远程控制:一个 `notify()` API 打通 25+ 渠道(Telegram / 钉钉 / 飞书 / 企业微信 / QQ 机器人 / WxPusher / PushPlus / Server 酱 / Bark / Discord / Slack / ntfy / webhook 等),timeSensitive / active / passive 分级路由并重试;五通道反向审批(Telegram 按钮 / 飞书卡片 / QQ / WxPusher / 微信 iLink);QQ/钉钉/飞书官方扫码登录;本地 Web 管理台;多 agent 路由;系统桌面通知——以及**手机指挥中心**:在手机上发 `!status` / `!stop` / `!retry` 遥控 agent,通知带可操作按钮(查看结果 / 重试 / 日志,点击回调 agent)。密钥脱敏、工具限流、零运行时依赖。

chatccc
飞书(Lark)或微信(WeChat)聊天控制 DeepSeek Harness / Claude Code / Cursor / Codex / CCC Agent