安装
在 DeepSeek Harness 里通过 dsh-market 安装
dsh plugin --profile web add dshmarket
或使用命令行
dsh plugin --profile web add @perrylink/dsh-ticktick
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文 | Español | Português | हिन्दी
面向 DeepSeek Harness 的滴答清单(TickTick / Dida365)任务桥:会话头部任务面板(清单筛选、快速添加、完成、删除、截止日期、拖拽排序)、11 个精选 agent 工具、插件页上的配置页,以及类型化的 Remote 服务——全部走官方滴答 MCP 端点。
兼容性
| 方面 | 状态 |
|---|---|
| Harness | DeepSeek Harness dsh-v0.1.7-rc.2(GitHub tag)。npm 依赖线钉在 @deepseek-ai/dsh 0.1.7-rc.2(peers >=0.1.7-alpha.1 <0.2.0)。已对照 dsh-v0.1.7-rc.2 checkout 核验(完整门禁链 + profile 安装冒烟)。 |
| Node | ^22.19.0 || >=24.0.0 |
功能
- 会话头部面板:会话头部的
ticktick按钮打开弹窗——按清单筛选(全部 + 各清单)、未完成/已完成视图切换、全文搜索、带可选日期的快速添加、勾选完成、确认删除、设置/清除截止日期(过期/今天/明天高亮 chip)、单清单未完成视图内拖拽排序。常驻连接状态圆点;未配置令牌时面板内直接一步粘贴保存。 - 11 个 agent 工具:
ticktick_status、ticktick_lists、ticktick_tasks、ticktick_add、ticktick_complete、ticktick_delete、ticktick_due、ticktick_reorder、ticktick_completed、ticktick_search、ticktick_batch_add;Code Mode 免费获得await tools.ticktick_*(args)。 - 配置页:插件页 → TickTick 行 → Configure: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 按钮出现在会话头部;其配置页从插件页 TickTick 行的 Configure 控件打开。
配置
- 在滴答网页版获取 API 口令(
dp_开头):头像 → 设置 → 账户与安全 → API 口令。 - 三种令牌来源任选其一(优先级从高到低):TickTick 配置页的 secret 字段(插件页 → TickTick 行 → Configure)、
DIDA365_TOKEN环境变量、令牌文件(默认$DSH_HOME/.ticktick-token,一行)。写文件即生效,无需任何配置变更。 - 用卡片上的测试连接按钮验证令牌,清除凭据按钮一键抹除。
| 配置键 | 默认 | 含义 |
|---|---|---|
tokenFile |
'' |
存放令牌的文本文件路径;留空 = $DSH_HOME/.ticktick-token |
mcpUrl |
https://mcp.dida365.com |
滴答 MCP 端点(国际版端点未实测——见下文) |
toolCallTimeoutMs |
30000 |
单次 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.configForms ──────▶ profile 条目 "ticktick"(Volatile Config)
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_date、search、batch_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。工具、面板、配置页、系统提示等全部运行态注册随插件卸载一并撤销。唯一静态残留是用户设置文档里的令牌——卸载前用 TickTick 配置页的清除凭据按钮抹掉(或删除令牌文件 / DIDA365_TOKEN 变量)即可彻底断开。想保留安装但暂时停用,改禁用该行:
- id: ticktick
disabled: true
从 DSH Desktop 市场安装
所有 PerryLink 插件均可在 DSH Desktop 内置市场中浏览:市场 → 来源 → 添加来源 → 粘贴 https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选中。安装仍需通过市场的 npm 身份校验与你的确认。
PerryLink DSH Plugin Family
This project is one of the 45 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:
| Plugin | One-liner |
|---|---|
| dsh-auto-review | Second-model auto-review on the approval chain, fail-closed by default |
| dsh-autotier | Automatic strong/cheap model-tier routing with deterministic risk guards and a /tier command |
| dsh-background-agents | Durable background child agents with a Web UI sidebar, messaging and interrupt |
| dsh-budget | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. |
| dsh-catalog | DSH Desktop Market standard catalog source for the PerryLink family |
| dsh-cert-mcp | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence |
| dsh-checkpoint-rewind | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore |
| dsh-claude-move | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH |
| dsh-click | Cross-platform native desktop control for DeepSeek Harness — Windows first. |
| dsh-composer-history | Terminal-style input history for the web composer: arrows, Ctrl+R search |
| dsh-data-quality | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) |
| dsh-defend | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. |
| dsh-doublecheck | Engineering-discipline guard: requirements grill, test gates, adversary review |
| dsh-draw | Unified static-image generation routing for DeepSeek Harness. |
| dsh-fast | Read-only performance diagnostics for DeepSeek Harness. |
| dsh-fund-research | Deterministic research reports for Chinese public mutual funds |
| dsh-github | GitHub PR/issues integration for DSH, every write gated by approval |
| dsh-industry-research | Industry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble |
| dsh-laya | Laya typed decisions (noul/choice/score) as a first-class Cordis service and model-visible tools |
| dsh-library | Local document knowledge base for DeepSeek Harness. |
| dsh-local-ai | Local-model (Ollama) integration for DeepSeek Harness. |
| dsh-lsp-actions | LSP diagnostics, formatting, completion, code actions and rename over language servers |
| dsh-mask | PII masking middleware: anonymize at the model boundary, restore at the display layer |
| dsh-mcp-panel | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors |
| dsh-memento | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool |
| dsh-observe | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. |
| dsh-output-styles | Claude Code outputStyles-equivalent runtime style switching |
| dsh-permission-rules | Claude Code-style declarative allow/deny/ask permission rules with audit |
| dsh-plugin-certification | Community certification registry with repro-checkable grades and badges |
| dsh-plugin-doctor | Zero-dependency static + sandbox smoke detector for DSH plugins |
| dsh-plugin-guide | Plugin-development knowledge base as an on-demand agent skill |
| dsh-plugin-kit | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins |
| dsh-plugin-upgrade | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card |
| dsh-plugin-upgrade-015 | Merged 0.1.3-alpha.1 → 0.1.5-rc.1 upgrade corridor card plus a zero-dependency seam scanner |
| dsh-reach | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console |
| dsh-research-report | Verifiable research-report engine: content-addressed evidence ledger and sealed versions |
| dsh-score | Multi-dimensional quality scoring for DeepSeek Harness plugins. |
| dsh-session-pin | Pin sessions in the Web sidebar with durable ordering |
| dsh-session-sync | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. |
| dsh-skill-pack-security | Security-audit skill pack: secret scan, dependency and supply-chain review |
| dsh-talk | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. |
| dsh-team-rooms | Cross-session team rooms: shared message bus, task board and timeline |
| dsh-test-drive | Isolated install-and-smoke test drives for DeepSeek Harness plugins. |
| dsh-ticktick | TickTick/Dida365 task bridge: session-header panel + 11 tools |
| dsh-translate | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. |
License
评论
评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。