CLI, Agent Skill, and MCP server for AI agents to manage Dida365 (TickTick) tasks and projects
Project description
dida365-agent
Let AI agents manage your Dida365 / TickTick — CLI · Skill · MCP
English | 中文
Let AI agents manage Dida365 / TickTick tasks, projects, tags, and habits through natural language. Three form factors: a lightweight CLI, a ready-to-install Agent Skill, and a standard MCP Server.
No install required — run it directly with uvx. Supports both Dida365 (China) and TickTick (International), switchable with one env var.
Features
| Full task management | Create, update, complete, delete, and move tasks with priority, tags, dates, reminders, recurrence, and checklist items — plus batch operations. |
| Projects & queries | CRUD projects (list / kanban / timeline views), filter by project, date, priority, tag, and status, and review completed tasks. |
| V2 advanced power | Server-side full-text search, tag management, habit check-ins, project folders, parent/child tasks, task pinning — capabilities the official Open API doesn't cover. |
| Three form factors | CLI (run-and-exit, saves resources and context), Agent Skill (one-command install with built-in methodology), MCP Server (long-running, tool calls). |
| Dual platform | Switch between Dida365 (China) and TickTick (International) with DIDA365_REGION. |
| Agent-friendly | Structured JSON to stdout by default, errors to stderr with non-zero exit codes — easy for agents to parse and orchestrate. |
Quick Start
Option 1: Use the CLI directly
No install needed — run with uvx (requires uv). First prepare credentials per the configuration guide and write them to .env:
# Browser OAuth (saves token, ~180 days)
uvx dida365-agent dida auth login
# List all projects
uvx dida365-agent dida project list
# Create a high-priority task due tomorrow
uvx dida365-agent dida task create --title "Review PR" --project <projectId> \
--priority 5 --due-date "2026-05-30T18:00:00+0800"
# Full-text search (V2)
uvx dida365-agent dida search "meeting"
After installing locally (
uv tool install dida365-agent), use the shorterdidacommand.
Option 2: Use as an Agent Skill
Install the Skill in any Skill-compatible AI tool (Claude Code, Cursor, etc.) and drive it with natural language:
# Install the Skill
npx skills add linhai0872/dida365-agent
Then just describe what you need in the AI chat:
Tidy up my unfinished tasks for today, list the high-priority ones, and move the overdue ones to the "Later" project
The Skill recognizes intent, fills in missing details, and assembles dida commands automatically — no manual parameters required.
Option 3: As an MCP Server
Exposes 40 tools as a standard MCP Server for Claude Code, Cursor, Windsurf, etc. See MCP Server integration.
Documentation
| Doc | Contents |
|---|---|
| CLI Reference | All commands, parameters, conventions |
| Configuration | Credentials, enabling V2, env vars, token lifecycle |
| MCP Server | Local / source / Docker deployment, AI tool config |
Development
uv sync # Install dependencies
uv run python -m pytest tests/ # Run tests
uv run ruff check src/ tests/ # Lint
uv run dida --help # Run the CLI locally
License
Acknowledgments
- Dida365 / TickTick Open API
- FastMCP · Typer · Model Context Protocol
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dida365_agent-3.0.0.tar.gz.
File metadata
- Download URL: dida365_agent-3.0.0.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ae9371e2facf3e08fe212c55e3c4380cca1659a0d5f304da03de0a135b9ef38
|
|
| MD5 |
1168be32372008ae710f6d0b9245befc
|
|
| BLAKE2b-256 |
d9b1698d8737a0dfc49cdf37eba1148efc634eb078a4b3748d54ce790e1f51df
|
File details
Details for the file dida365_agent-3.0.0-py3-none-any.whl.
File metadata
- Download URL: dida365_agent-3.0.0-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7d3aca5c967ca41040fb6d1d9ee380be0d29bd80481862beb5748d512c95e59
|
|
| MD5 |
4738c58fa29259481578a05c540ece84
|
|
| BLAKE2b-256 |
e6c252dd98cf1793c41bbbeff5b1f8b8f64985a2a7646525a57357079dc75dc8
|