Dida365 / TickTick automation
DidaCLI
A command line client built for agents: stable JSON, browser login, task and resource CRUD, and a private Web API layer that stays explicit.
❯ dida +today --json { "ok": true, "command": "task today", "meta": { "count": 3 }, "data": { "tasks": [ ... ] } } ❯ dida task create \ --project school \ --title "Review lab notes" \ --dry-run --json { "ok": true, "dry_run": true } ✓ ❯
Small surface, serious automation.
DidaCLI keeps the commands boring and the behavior inspectable, so a human can run it comfortably and an agent can recover from errors.
Tasks, projects, folders, tags, comments, habits, Pomodoro, trash, search, stats -- full CRUD.
Every --json response returns a consistent envelope: ok, command, meta, data, or error.
Web API (cookie), official MCP (token), and OpenAPI (OAuth) -- never mixed, each explicit.
All write commands support --dry-run to preview payloads before executing anything.
Windows, Linux, and macOS on amd64 and arm64. Single binary, zero dependencies.
Token redaction, --yes for destructives, bounded reads, no raw write tunnel by default.
Designed for repeated operator loops.
Login once, inspect context, perform targeted writes, and keep raw endpoint exploration separate from the stable command surface.
Authenticate locally
Browser flow captures only the Dida365 t cookie into ~/.dida-cli/.
Build context
Use project list, +today, upcoming, and agent context before writing.
Write deliberately
Preview with --dry-run. Reserve --yes for destructive operations only.
❯ dida auth status --verify --json ❯ dida project list --json ❯ dida task upcoming --days 14 --json ❯ dida task create --project <id> \ --title "Plan review" --dry-run --json ❯ dida task create --project <id> \ --title "Plan review" --json
Use Dida365 from the shell, safely.
Install the binary, login with the browser flow, and give agents a clean task interface they can actually operate.