dsh-ticktick

September 7, 2026 · View on GitHub

License DSH plugin Gitee CI Version npm version npm downloads

English | 中文 | Español | Português | हिन्दी

面向 DeepSeek Harness 的滴答清单(TickTick / Dida365)任务桥:会话头部任务面板(清单筛选、快速添加、完成、删除、截止日期、拖拽排序)、11 个精选 agent 工具、插件设置卡片,以及类型化的 Remote 服务——全部走官方滴答 MCP 端点。

兼容性

方面状态
HarnessDeepSeek Harness dsh-v0.1.3-alpha.1(GitHub tag)。npm 依赖线钉在 @deepseek-ai/dsh 0.1.2-rc.1(peers >=0.1.2-rc.1 <0.2.0)。已于 2026-09-06 对照 dsh-v0.1.3-alpha.1 master checkout 核验(完整门禁链 + profile 安装冒烟)。

功能

  • 会话头部面板:会话头部的 ticktick 按钮打开弹窗——按清单筛选(全部 + 各清单)、未完成/已完成视图切换、全文搜索、带可选日期的快速添加、勾选完成、确认删除、设置/清除截止日期(过期/今天/明天高亮 chip)、单清单未完成视图内拖拽排序。常驻连接状态圆点;未配置令牌时面板内直接一步粘贴保存。
  • 11 个 agent 工具ticktick_statusticktick_liststicktick_tasksticktick_addticktick_completeticktick_deleteticktick_dueticktick_reorderticktick_completedticktick_searchticktick_batch_add;Code Mode 免费获得 await tools.ticktick_*(args)
  • 设置卡片:设置 → 插件 → TickTick:API 口令(secret)、令牌文件、端点预设(国内/国际版未实测/自定义)、受保护任务 id、一键测试连接清除凭据
  • 令牌热重读:Bearer 令牌每次请求重读(卡片 secret 优先于令牌文件,默认 $DSH_HOME/.ticktick-token);401 会重置客户端,轮换令牌无需重启。
  • 实测绕行:滴答 MCP 对真实项目内任务调用 update_task 会服务端崩溃("Expecting value: line 1 column 1")——桥自动走「移到收件箱 → 更新 → 移回」绕行;服务端校验失败的清单(历史 repeatFrom: '' 数据)跳过并以警告透传,绝不静默丢弃。
  • 受保护任务:变更操作在任何网络调用前拒绝受保护 id 列表中的任务。
  • 多端同步:所有写入落在滴答云端账号,手机/电脑/网页版都能看到;每次读取都是当前状态。

安装

# npm(发布产物含 lib/,无需构建许可)
dsh plugin --profile web add @perrylink/dsh-ticktick

# git 源码(钉住 commit;pnpm 首次会请你放行 prepare 构建)
dsh plugin --profile web add "github:PerryLink/dsh-ticktick#<sha>"

# 本地开发
dsh plugin --profile web add link:/path/to/dsh-ticktick

重启 dsh web(bundle 插件重启生效)。ticktick 按钮出现在会话头部;设置卡片出现在 设置 → 插件。

配置

  1. 在滴答网页版获取 API 口令(dp_ 开头):头像 → 设置 → 账户与安全 → API 口令。
  2. 三种令牌来源任选其一(优先级从高到低):设置 → 插件 → TickTick 卡片的 secret 字段、DIDA365_TOKEN 环境变量、令牌文件(默认 $DSH_HOME/.ticktick-token,一行)。写文件即生效,无需任何配置变更。
  3. 用卡片上的测试连接按钮验证令牌,清除凭据按钮一键抹除。
配置键默认含义
tokenFile''存放令牌的文本文件路径;留空 = $DSH_HOME/.ticktick-token
mcpUrlhttps://mcp.dida365.com滴答 MCP 端点(国际版端点未实测——见下文)
toolCallTimeoutMs30000单次 tools/call 截止时间(毫秒)
protectedTaskIds[]所有变更操作拒绝的任务 id
tools.*各自 ''原始 MCP 工具名钉住(projects/tasks/create/complete/remove/update/move);'' = 按模式发现

Agent 工具

工具用途
ticktick_status连接状态:令牌已配置、客户端已连接、端点、最近错误
ticktick_lists全部清单(含虚拟收件箱)
ticktick_tasks未完成任务:单个清单或全部聚合,附带逐清单警告
ticktick_add创建任务(清单、可选 ISO 截止日期)
ticktick_complete完成任务(任务 id + 清单 id)
ticktick_delete删除任务(任务 id + 清单 id)
ticktick_due设置/清除截止日期(省略日期 = 清除)
ticktick_reorder赋新整数 sortOrder(清单按 sortOrder 降序排列)
ticktick_completed时间窗内已完成任务(默认近 30 天),可选单清单
ticktick_search任务全文搜索(官方 search 工具)
ticktick_batch_add一次调用批量创建任务

架构

浏览器面板 ── ctx.remote.ticktick.* ──▶ TicktickService(Typert Remote)
设置卡片 ──── ctx.settingsScope ──────▶ settings 命名空间 "ticktick"
agent 工具 ── ctx.tools(ticktick_*)──▶ 同一服务


        迷你 streamable-HTTP MCP 客户端
        (session id、协议版本、Retry-After)


        https://mcp.dida365.com(官方滴答 MCP)

已知限制

  • 国际版 TickTick 端点未实测mcpUrl 默认国内端点,国际版 MCP URL 尚未探测。
  • 已完成视图、搜索与批量添加走官方 MCP 的 list_completed_tasks_by_datesearchbatch_add_tasks 工具;其线上契约来自已发布目录(dida365-sdk 存根),对真实端点的复验待做——先用真实令牌跑 probes/probe-queries.mjs,再宣称已核验。
  • 实测到的 update_task 崩溃与清单校验失败是服务端行为;发布前用 probes/ 对真实端点复验(导出 DIDA365_TOKEN 后运行)。
  • 面板使用的 /api 面是 harness 标准 Typert 网关;令牌仅存本地(设置文档或令牌文件)且只发给滴答自己的服务器。不要把 dsh web 实例暴露到公网。

对真实端点验证

# PowerShell
$env:DIDA365_TOKEN='dp_...'
node probes/probe-bootstrap.mjs      # 握手 + 工具目录
node probes/probe-crud.mjs           # 创建/完成/删除往返
node probes/probe-due.mjs            # 截止日期(带 PROJECT_ID 可测绕行)
node probes/probe-reorder.mjs        # sortOrder 语义
node probes/probe-queries.mjs        # P2 查询工具契约探测

卸载

dsh plugin --profile web remove @perrylink/dsh-ticktick

重启 dsh web。工具、面板、设置卡、系统提示等全部运行态注册随插件卸载一并撤销。唯一静态残留是用户设置文档里的令牌——卸载前用卡片的清除凭据按钮抹掉(或删除令牌文件 / DIDA365_TOKEN 变量)即可彻底断开。想保留安装但暂时停用,改禁用该行:

- id: ticktick
  disabled: true

从 DSH Desktop 市场安装

所有 PerryLink 插件均可在 DSH Desktop 内置市场中浏览:市场 → 来源 → 添加来源 → 粘贴 https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选中。安装仍需通过市场的 npm 身份校验与你的确认。

这是 PerryLink 维护的 37 个 DeepSeek Harness 插件 之一。如果它能帮到你,其他的也会:

PluginOne-liner
dsh-auto-review审批链上的第二模型自动审查,默认失败关闭
dsh-background-agents带 Web UI 侧栏、消息与中断的持久后台子代理
dsh-budgetDeepSeek Harness 的成本治理:预算、碳排与延迟一屏呈现。
dsh-checkpoint-rewindClaude Code /rewind 等价:快照、会话 fork、一次性恢复
dsh-claude-move把 Claude Code 会话、记忆、技能与 CLAUDE.md 迁入 DSH
dsh-click跨平台原生桌面控制(DeepSeek Harness),Windows 优先。
dsh-composer-historyWeb 输入框的终端式历史:方向键、Ctrl+R 搜索
dsh-data-quality数据集质量检查与引文核查(本插件可选消费的数字核查桥)
dsh-defendDeepSeek Harness 的提示注入、越狱与密钥泄露防护。
dsh-doublecheck工程纪律守卫:需求质询、测试门禁、对手评审
dsh-drawDeepSeek Harness 的统一静态图像生成路由。
dsh-fastDeepSeek Harness 只读性能诊断。
dsh-fund-research面向中国公募基金的确定性研究报告
dsh-github面向 DSH 的 GitHub PR/issues 集成,每次写入经审批门控
dsh-industry-research行业研究编排,经本插件的 ctx.researchReport.assemble 封存交付物
dsh-libraryDeepSeek Harness 的本地文档知识库。
dsh-local-aiDeepSeek Harness 的本地模型(Ollama)接入。
dsh-lsp-actions通过语言服务器的 LSP 诊断、格式化、补全、代码操作与重命名
dsh-maskPII 脱敏中间件:模型边界匿名化、展示层还原
dsh-mcp-panel只读 MCP 运行时面板:/mcp 命令 + 带状态、工具与错误的 Settings 标签页
dsh-memento审批门控的跨会话记忆:ctx.memory 接缝 + SQLite + 记忆工具
dsh-observeDeepSeek Harness 的 OpenTelemetry 与 Langfuse 可观测导出器。
dsh-output-stylesClaude Code outputStyles 等价的运行时风格切换
dsh-permission-rulesClaude Code 风格声明式 allow/deny/ask 权限规则,带审计
dsh-personal-directive个人指令注入器:顶栏开关(框架版)
dsh-plugin-guide作为按需代理技能的插件开发知识库
dsh-reach多渠道审批/提问桥接:微信/Telegram/飞书,会话控制台
dsh-research-report可验证研究报告引擎:内容寻址证据账本与封存版本
dsh-scoreDeepSeek Harness 插件的多维质量评分。
dsh-session-pin在 Web 侧栏置顶会话,带持久排序
dsh-session-syncDeepSeek Harness 的跨设备会话同步——会话存储的专用 git 镜像。
dsh-skill-pack-security安全审计技能包:密钥扫描、依赖与供应链审查
dsh-talkDeepSeek Harness 的语音优先会话闭环:对它说,听它答。
dsh-test-driveDeepSeek Harness 插件的隔离试装冒烟。
dsh-translateDeepSeek Harness 的厂商参数翻译与确定性 JSON 修复。
dsh-wechat微信 ↔ DSH 桥接(Tencent iLink 机器人):文本/图片/文件/语音,聊天内审批卡片

License

Apache-2.0