Preface¶
One of the core design philosophies of DeepSeek Harness (DSH) is “everything is a plugin.” When developing agents, it is a common requirement to let an Agent directly read and write in the user’s task management tools (such as TickTick). Existing integration approaches often rely on third-party libraries or unofficial interfaces, leading to security risks and compatibility issues. The dsh-ticktick plugin calls the official Open API to provide DSH with standardized bidirectional task synchronization.
Plugin Introduction¶
dsh-ticktick is a DSH plugin maintained by user zhengjy01, intended to solve data synchronization between agents and TickTick / Dida365. It is built on the official OAuth 2.0 Open API, supports pulling tasks, creating tasks, updating status, and one-click deduplicated synchronization, and provides a web settings panel for managing credentials.
Core Features¶
The plugin provides the following core capabilities:
- Official API Integration: Uses the OAuth 2.0 authorization code flow to connect to the TickTick / Dida365 Open Platform (
/open/v1), and supports automatic token refresh on401responses. - Multi-region Support: Supports the domestic Dida365 (default) and the international TickTick; can be switched in the settings panel or via
ticktick_config. - Fetch Tasks:
ticktick_tasks/ticktick_synccan retrieve incomplete or completed tasks across all lists (including Inbox, even though the Open API project list may not include it), sorted by due date and accompanied by list names. - Create Tasks:
ticktick_addsupports creating tasks, with parameters such as title, list (by ID or name;inbox/Inboxmaps to the Inbox), due date (ISO 8601 orYYYY-MM-DD), priority (0-5 or none/low/medium/high), tags, and content. - Single Sync:
ticktick_syncprovides one-way synchronization.direction=pullreturns grouped summaries;direction=pushcreates missing tasks and deduplicates by title within each list (including Inbox; repeated runs will not create duplicate tasks). - Task Maintenance: Provides
ticktick_update(update),ticktick_complete(complete), andticktick_delete(delete) interfaces, with optional project IDs (auto-resolved, including Inbox). - Web Settings Panel: In DSH Web settings, you can configure credentials, run the authorization flow (popup + manually enter the verification code), refresh tokens, and quickly add tasks (the list selector prioritizes Inbox and excludes archived lists).
- Secure Storage: Credentials and tokens are persisted to
~/.dsh/dsh-ticktick.(permissions 0600), and the status query commandticktick_statusdoes not echo secrets.
Installation and Enabling¶
Installing this plugin requires a DSH environment.
- Execute the following command to install:
dsh plugin --profile web add github:zhengjy01/dsh-ticktick
- After installation is complete, restart the
dsh webservice. - The plugin requires no build step and relies on the built-in
fetchandcryptomodules in Node.js (Node 22+ is required), with no additional runtime dependencies.
Configuration¶
Before first use, the OAuth authorization must be completed and the credentials configured.
- Create the Application:
Create an application in the TickTick / Dida365 Open Platform console and set the redirect URI. This URI must match the local address on which the DSH Web service listens, for example:
http://127.0.0.1:3080/api/dsh-ticktick/oauth/callback
- Enter Credentials:
In the DSH settings panel, open the TickTick configuration page and enterclient_idandclient_secret. You can also instruct the Agent in conversation to runticktick_configto set these parameters. - Authorize Login:
Click “Start Authorization” in the settings panel, and log in to complete the callback. If the callback fails, manually paste the verification code and callticktick_oauth_finish. - System Prompt:
The plugin injects relevant instructions into the system prompt, informing the agent when it should use this tool.
Typical Usage¶
After configuration is complete, the Agent can call the related endpoints via natural language:
- Pull today’s uncompleted tasks:
把今天滴答清单里没做完的任务同步给我
Corresponding operation: `ticktick_sync` (pull)
- Push new tasks and remove duplicates:
帮我把这些任务同步到滴答清单:买牛奶、写周报
Corresponding operation: `ticktick_sync` (push, dedupes)
- Add a specified task:
明天下午3点提醒我开会,加到「工作」清单
Corresponding operation: `ticktick_add`
Notes¶
- Security risks:
client_secretand OAuth tokens are high-privilege credentials. The plugin stores them in a local file~/.dsh/dsh-ticktick.(permissions 0600). If credentials are leaked, immediately runticktick_config(reset: true)to clear them. - Network restrictions: The OAuth callback route only allows local loopback access; other
/api/dsh-ticktick/*routes only allow local and same-origin access. - API coverage: The Open API does not support smart list filtering or time-triggered reminders (
reminders/repeatFlagare passed through only if present, rather than being modeled as parameters).
Conclusion¶
dsh-ticktick achieves bidirectional synchronization with TickTick through the official Open API, providing DSH agents with reliable task management capabilities. Whether for organizing daily tasks or orchestrating automated workflows, the plugin offers practical tooling support. For more details and source code, visit the GitHub repository.