Agent Skill for managing tasks in Dida365 (滴答清单) via OpenAPI.
- Simple OAuth Flow: Easy authorization with manual code exchange
- Full Task Management: Create, read, update, complete, delete, and filter tasks
- Project Operations: List, create, and manage projects
- Advanced Filtering: Filter tasks by date, priority, tags, and status
- Visit Dida365 Developer Center
- Click "创建应用" (Create Application)
- Fill in application name
- Important: Set Redirect URI to:
http://127.0.0.1:8765/callback - Save and note your
client_idandclient_secret
export DIDA_CLIENT_ID="your-client-id"
export DIDA_CLIENT_SECRET="your-client-secret"python scripts/dida_api.py auth-urlOpen the printed URL in your browser.
- Log in to your Dida365 account
- Click "允许" (Allow) to authorize
- You'll be redirected to a URL like:
http://127.0.0.1:8765/callback?code=xxxxxxxx - Copy the
codeparameter
python scripts/dida_api.py exchange-code --code "YOUR_CODE"# Check authentication
python scripts/dida_api.py auth-status
# List projects
python scripts/dida_api.py projects
# Create a task
python scripts/dida_api.py create-task --title "My task" --project-id "inbox"| Command | Description |
|---|---|
auth-url |
Print the authorization URL |
exchange-code --code CODE |
Exchange authorization code for token |
auth-status |
Check authentication status |
logout |
Clear saved credentials |
| Command | Description |
|---|---|
projects |
List all projects |
project <id> |
Get project info |
project-data <id> |
Get project with tasks |
| Command | Description |
|---|---|
create-task --title "..." --project-id <id> |
Create a task |
get-task <projectId> <taskId> |
Get task details |
update-task <taskId> --project-id <id> [options] |
Update a task |
complete-task <projectId> <taskId> |
Mark task complete |
delete-task <projectId> <taskId> |
Delete a task |
filter-tasks [options] |
Filter tasks |
completed-tasks [options] |
List completed tasks |
| Option | Description |
|---|---|
--title |
Task title |
--project-id |
Project ID (use "inbox" for inbox) |
--content |
Task content/notes |
--due-date |
Due date (format: YYYY-MM-DDTHH:mm:ss+ZZZZ) |
--priority |
0=None, 1=Low, 3=Medium, 5=High |
--tags |
Comma-separated tags |
Only these scopes are supported:
tasks:readtasks:write
NOT supported:
projects:readprojects:write
The redirect URI must be pre-registered in the Dida365 Developer Center. Make sure it matches exactly:
http://127.0.0.1:8765/callback(notlocalhost)
| Variable | Required | Description |
|---|---|---|
DIDA_CLIENT_ID |
Yes | OAuth client ID |
DIDA_CLIENT_SECRET |
Yes | OAuth client secret |
DIDA_REDIRECT_PORT |
No | Local callback port (default: 8765) |
Tokens are stored in ~/.dida365/token.json with file permissions 600.
Token validity: approximately 179 days (6 months).
python scripts/dida_api.py create-task \
--title "Submit report" \
--project-id "inbox" \
--due-date "2024-03-15T18:00:00+0800" \
--priority 3 \
--tags "work,urgent"python scripts/dida_api.py filter-tasks \
--start-date "$(date +%Y-%m-%dT00:00:00%z)" \
--end-date "$(date +%Y-%m-%dT23:59:59%z)"python scripts/dida_api.py project-data inboxSee references/api_reference.md for complete API documentation.
Register the redirect URI in the Dida365 Developer Center:
- URL:
http://127.0.0.1:8765/callback
Only use tasks:read tasks:write. Other scopes are not supported.
Your token may have expired. Re-run the authorization flow:
python scripts/dida_api.py auth-url- Open URL, authorize, get code
python scripts/dida_api.py exchange-code --code "YOUR_CODE"
MIT License