A publishable Dida365/TickTick OpenAPI skill with reminder-first workflows.
Project description
dida365-openapi
一个用于 Dida365 / TickTick OpenAPI 的命令行工具,也附带可供 agent 使用的 skill。
适合两类场景:
- 你自己在终端里创建项目、任务、提醒
- AI agent 通过 CLI 或 skill 调用 Dida365 / TickTick
安装 CLI
推荐直接从 PyPI 安装:
uv tool install dida365-openapi
也可以使用:
pipx install dida365-openapi
安装后可直接使用:
dida365-openapi --help
如果你要看源码或参与开发:
git clone https://github.com/hktkzyx/dida365-openapi.git
安装 Skill
如果你想把它作为 skill 给 agent 使用,可以通过 npx skills 安装仓库里的 skill 目录:
npx skills add https://github.com/hktkzyx/dida365-openapi --skill dida365-openapi
仓库里的 skill 目录是:
skills/dida365-openapi/
获取 OpenAPI 凭据
你需要先在 Dida365 / TickTick 的开发者后台创建应用,拿到:
Client IDClient Secret
开发者入口:
- Dida365:
https://developer.dida365.com/ - TickTick:
https://developer.ticktick.com/
创建应用时,回调地址可填写:
http://127.0.0.1:8788/callback
配置
至少需要这两个环境变量:
DIDA365_CLIENT_IDDIDA365_CLIENT_SECRET
常用可选项:
DIDA365_SERVICE_TYPEdida365/ticktick- 默认
dida365
DIDA365_REDIRECT_URI- 默认
http://127.0.0.1:8788/callback
- 默认
DIDA365_SCOPE- 默认
tasks:read tasks:write
- 默认
DIDA365_TOKEN_FILE- 自定义 token 文件位置
DIDA365_ENV_FILE- 显式指定
.env文件路径
- 显式指定
推荐把配置写到:
~/.config/dida365-openapi/.env
例如:
mkdir -p ~/.config/dida365-openapi
cat > ~/.config/dida365-openapi/.env <<'EOF'
DIDA365_CLIENT_ID=your_client_id
DIDA365_CLIENT_SECRET=your_client_secret
DIDA365_SERVICE_TYPE=dida365
DIDA365_REDIRECT_URI=http://127.0.0.1:8788/callback
EOF
把 your_client_id 和 your_client_secret 替换成你在开发者后台拿到的值。
.env 读取顺序
CLI 会按下面顺序取配置:
- 当前进程环境变量
--env-file /absolute/path/to/.envDIDA365_ENV_FILE=/absolute/path/to/.env~/.config/dida365-openapi/.env- 当前工作目录
.env - 默认值
这意味着:
- 普通用户通常只需要维护
~/.config/dida365-openapi/.env - agent 在不同项目目录下运行时,默认也能复用同一套配置
- 只有多账号或隔离场景,才需要显式传
--env-file
首次认证
有浏览器时:
dida365-openapi auth
无浏览器时:
dida365-openapi auth --manual
认证成功后,token 默认保存在:
~/.config/dida365-openapi/{service_type}-{client_id}.json
常见用法
查看项目:
dida365-openapi projects list
新建项目:
dida365-openapi projects create --name "工作"
查看项目内任务:
dida365-openapi tasks list --project-id your_project_id
创建任务:
dida365-openapi tasks create \
--project-id your_project_id \
--title "写周报"
创建单次提醒:
dida365-openapi remind create \
--title "两分钟后喝水" \
--at "2026-04-08 14:30:00"
创建周期提醒:
dida365-openapi remind create \
--title "每月调仓" \
--at "2026-04-24 09:00:00" \
--repeat-flag "RRULE:FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=24"
更多参数:
dida365-openapi --help
dida365-openapi tasks --help
dida365-openapi remind create --help
开发者说明
发布到 PyPI / TestPyPI 的维护者说明见:
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_openapi-0.1.1.tar.gz.
File metadata
- Download URL: dida365_openapi-0.1.1.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f87939d0f1239d17e4d6e2cd0ea8419a1f787118ea2a17b70a46328e0cd6746
|
|
| MD5 |
2cc5d87c0adbb73e866484a4716efc9a
|
|
| BLAKE2b-256 |
52ecf94ea20e786302fdf57f5dae13d3f5f580e9931f68461ab416e612b8e7db
|
Provenance
The following attestation bundles were made for dida365_openapi-0.1.1.tar.gz:
Publisher:
publish.yml on hktkzyx/dida365-openapi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dida365_openapi-0.1.1.tar.gz -
Subject digest:
1f87939d0f1239d17e4d6e2cd0ea8419a1f787118ea2a17b70a46328e0cd6746 - Sigstore transparency entry: 1252874707
- Sigstore integration time:
-
Permalink:
hktkzyx/dida365-openapi@bf4cedcb2e4dc104a4f745a4621fb3355bf5c6a6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/hktkzyx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bf4cedcb2e4dc104a4f745a4621fb3355bf5c6a6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dida365_openapi-0.1.1-py3-none-any.whl.
File metadata
- Download URL: dida365_openapi-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4af78d6df24f2185fb038a2f243e445bcc07a06b96472452693de1c33cc5391b
|
|
| MD5 |
f53cd773f48bf574fe2eab18a679d20f
|
|
| BLAKE2b-256 |
80974be20e2eabd5b74c8ab63a5cf4375910922b348a27a54009fbb6e3398e68
|
Provenance
The following attestation bundles were made for dida365_openapi-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on hktkzyx/dida365-openapi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dida365_openapi-0.1.1-py3-none-any.whl -
Subject digest:
4af78d6df24f2185fb038a2f243e445bcc07a06b96472452693de1c33cc5391b - Sigstore transparency entry: 1252874780
- Sigstore integration time:
-
Permalink:
hktkzyx/dida365-openapi@bf4cedcb2e4dc104a4f745a4621fb3355bf5c6a6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/hktkzyx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bf4cedcb2e4dc104a4f745a4621fb3355bf5c6a6 -
Trigger Event:
push
-
Statement type: