TickTick
Manage tasks and projects via {baseDir}/scripts/tt.sh. Full API reference in references/api.md.
Auth: TICKTICK_TOKEN env var — a TickTick personal access token (tp_*),
used directly as a Bearer token; no OAuth flow needed. Load it from your
secrets manager or shell profile.
Timezone: due dates get the local UTC offset appended automatically.
Override with TICKTICK_UTC_OFFSET (e.g. -03:00) and optionally
TICKTICK_TIMEZONE (IANA name, e.g. America/Buenos_Aires).
Inbox: the per-user inbox project id is auto-discovered from the API.
Set TICKTICK_INBOX_ID to skip the extra lookup call.
Quick Reference
TT="bash {baseDir}/scripts/tt.sh"
Commands
List projects
$TT projects
List tasks
$TT tasks # inbox (default)
$TT tasks --project "Work" # by name
$TT tasks --project <projectId> # by ID
Add a task
$TT add "Buy tennis grip"
$TT add "Call accountant" --priority high --due "2026-02-20T10:00:00"
$TT add "Draft email" --project "Work" --priority med --notes "Reply to client"
$TT add "Review PR" --tag "work,code"
Priority values: none | low | med | high
Complete a task
$TT complete <taskId> --project <projectId>
# Inbox tasks: --project flag optional (defaults to inbox)
Update a task
$TT update <taskId> --project <projectId> --priority high
$TT update <taskId> --title "New title" --due "2026-02-25T09:00:00"
Delete a task
$TT delete <taskId> --project <projectId>
Manage projects
$TT add-project "Tennis" # creates new list
$TT add-project "Work" --color "#FF5733"
$TT delete-project <projectId>
Workflow
- Quick capture — if no project specified, task lands in Inbox
- Find taskId — run
$TT tasksor$TT tasks --project X, copy the id from output - Find projectId — run
$TT projects, copy the id
Display Format
When showing tasks to the user, format like this:
📋 Inbox — 3 pending
○ [HIGH] Call accountant — due Feb 20
○ [MED] Review analytics
○ Buy tennis racket grip
Sort by: priority (high first), then due date. Hide completed tasks unless asked.