TickTick MCP server and pi-mono extension, backed by a shared TypeScript client. Uses the official TickTick V1 Open API (OAuth2). macOS-only (tokens are stored in macOS Keychain).
packages/ticktick-core— shared client: OAuth2, rate-limited fetch, endpoints, client-side filters, bulk update.packages/ticktick-mcp— stdio MCP server for Claude Desktop.packages/ticktick-pi-ext— pi-mono (badlogic/pi-mono) TypeScript extension.
pnpm install
pnpm -r build
TICKTICK_CLIENT_ID=xxx TICKTICK_CLIENT_SECRET=yyy \
pnpm --filter ticktick-core run ticktick-loginThen wire up Claude Desktop and/or pi-mono — full steps (including registering a TickTick OAuth app) in docs/SETUP.md.
- Projects —
list_projects,get_project,create_project,delete_project - Tasks —
list_project_tasks,get_task,create_task,update_task,complete_task,delete_task - Planning —
list_all_tasks,search_tasks,tasks_in_window(overdue / today / tomorrow / this_week / {days:N}),bulk_update_tasks
Priorities: 0=None, 1=Low, 3=Medium, 5=High. Dates are ISO 8601.
pnpm -r typecheck # all packages
pnpm -r test # ticktick-core unit tests (28 tests)
pnpm -r build # ticktick-core + ticktick-mcp → dist/V1 Open API only: task + project CRUD + client-side filtering. No tags, subtasks, search, or habits — those require the unofficial V2 API and are intentionally out of scope.