使用 Python CLI 与 Dida365 Open API 交互以管理滴答清单任务/项目,适用于需要通过脚本或命令行调用滴答清单接口的场景(如项目/任务的查询、创建、更新、完成、删除)。
Scanned 9/8/2026
Install to Claude Code
npx -y skills add bg-szy/TOP-SKILLS --skill ticktick-cli --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ticktick Cli?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bg-szy-ticktick-cli)More formats (shields.io, HTML) on the badges page.
---
name: ticktick-cli
description: 使用 Python CLI 与 Dida365 Open API 交互以管理滴答清单任务/项目,适用于需要通过脚本或命令行调用滴答清单接口的场景(如项目/任务的查询、创建、更新、完成、删除)。
---
# ticktick-cli
通过本 skill 调用滴答清单 / TickTick Open API。默认中国区 Dida365;国际版只在登录时显式选择。
## 执行约定
先进入 skill 目录,再直接执行脚本:
```bash
cd skills/ticktick-cli
./scripts/ticktick_cli.py --json project list
```
- 不要用 `uv run python` 或 `python` 调用脚本;脚本自身带 uv shebang。
- 给 Agent 解析的输出一律加 `--json`,并且全局参数必须放在子命令前。
- 删除项目或任务前先确认用户意图;`delete` 会真实删除远端数据。
- 参数不确定时先查 `./scripts/ticktick_cli.py <command> --help`。
## 认证
默认假设本地 token 有效,直接执行用户请求的操作;不要在每次操作前先跑 `auth doctor`。
只有命令失败且报错指向认证、token、权限、区域或 API base URL 问题时,再诊断当前本地 token:
```bash
./scripts/ticktick_cli.py --json auth doctor
```
确实没有 token、token 失效或用户要求重新登录时再登录:
```bash
./scripts/ticktick_cli.py auth login
```
- 国际版登录用 `./scripts/ticktick_cli.py auth login --region ticktick`。
- 默认只输出授权链接,不自动打开浏览器;需要自动打开时加 `--open`。
- 登录会启动 localhost callback,默认等待 5 分钟;看到链接后应尽快完成授权。
- token 默认保存到 `~/.config/ticktick-cli/token.json`,可用 `TICKTICK_TOKEN_FILE` 覆盖。
- 后续命令只读本地 token 文件,并从 token 元数据推断区域和 API base URL。
- 远程 SSH 场景下,浏览器 callback 必须能访问运行 CLI 的机器;必要时在目标机器本地登录,或自行做端口转发。
## 日常操作
常用命令族:
- `auth login|doctor|logout`
- `project list|get|data|create|update|delete`
- `task get|create|update|complete|delete|move|completed|filter`
- `focus get|list|delete`
- `habit list|get|create|update|checkin|checkins`
常见入口:
```bash
./scripts/ticktick_cli.py --json project list
./scripts/ticktick_cli.py --json project data --project-id <project-id>
./scripts/ticktick_cli.py --json task get --project-id <project-id> --task-id <task-id>
./scripts/ticktick_cli.py --json task filter --project-id <project-id> --status 0
```
创建或更新 checklist 子任务:
- 简单标题:重复传 `--item`。
- 复杂字段:用 `--item-json` 传 JSON 数组,或传 `@path` 读取文件。
- 任务标签:创建/更新任务时重复传 `--tag`。
- 复杂 habit payload:用 `--payload-json` 传 JSON 对象,或传 `@path` 读取文件。
## 数据模型
- Project:任务容器,支持 list / kanban / timeline 等视图。
- Task:隶属于 Project,可包含时间、提醒、优先级、重复规则、标签与子任务。
- ChecklistItem:Task 下的子任务项。
- Column:看板列,仅在 kanban 场景常用。
- ProjectData:项目详情聚合,包含项目、未完成任务和列信息。
- Focus:专注/番茄钟记录。
- Habit:习惯与打卡记录。
## 参考
- [ticktick_cli.py](scripts/ticktick_cli.py)
- [滴答清单 OpenAPI](https://developer.dida365.com/docs/index.html#/openapi)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!