ticktick
Manage TickTick tasks and projects from the command line with OAuth2 auth, batch operations.
Installation
npx clawhub@latest install ticktickView the full skill documentation and source below.
Documentation
TickTick CLI Skill
Manage TickTick tasks and projects from the command line.
Setup
1. Register a TickTick Developer App
4. Note your Client ID and Client Secret
### 2. Authenticate
__CODE_BLOCK_0__
### Headless / Manual Authentication
__CODE_BLOCK_1__
This prints an authorization URL. Open it in a browser, approve access, then copy the full redirect URL (it looks like ) and paste it back into the CLI.The CLI will open your browser to authorize access. After approving, tokens are stored in ~/.clawdbot/credentials/ticktick-cli/config.json.
Commands
List Tasks
# List all tasks
bun run scripts/ticktick.ts tasks
# List tasks from a specific project
bun run scripts/ticktick.ts tasks --list "Work"
# Filter by status
bun run scripts/ticktick.ts tasks --status pending
bun run scripts/ticktick.ts tasks --status completed
# JSON output
bun run scripts/ticktick.ts tasks --json
Create Task
# Basic task creation
bun run scripts/ticktick.ts task "Buy groceries" --list "Personal"
# With description and priority
bun run scripts/ticktick.ts task "Review PR" --list "Work" --content "Check the new auth changes" --priority high
# With due date
bun run scripts/ticktick.ts task "Submit report" --list "Work" --due tomorrow
bun run scripts/ticktick.ts task "Plan vacation" --list "Personal" --due "in 7 days"
bun run scripts/ticktick.ts task "Meeting" --list "Work" --due "2024-12-25"
# With tags
bun run scripts/ticktick.ts task "Research" --list "Work" --tag research important
Update Task
# Update by task name or ID
bun run scripts/ticktick.ts task "Buy groceries" --update --priority medium
bun run scripts/ticktick.ts task "abc123" --update --due tomorrow --content "Updated notes"
# Limit search to specific project
bun run scripts/ticktick.ts task "Review PR" --update --list "Work" --priority low
Complete Task
# Mark task as complete
bun run scripts/ticktick.ts complete "Buy groceries"
# Complete with project filter
bun run scripts/ticktick.ts complete "Review PR" --list "Work"
Abandon Task (Won't Do)
# Mark task as won't do
bun run scripts/ticktick.ts abandon "Old task"
# Abandon with project filter
bun run scripts/ticktick.ts abandon "Obsolete item" --list "Do"
Batch Abandon (Multiple Tasks)
# Abandon multiple tasks in a single API call
bun run scripts/ticktick.ts batch-abandon <taskId1> <taskId2> <taskId3>
# With JSON output
bun run scripts/ticktick.ts batch-abandon abc123def456... xyz789... --json
Note: batch-abandon requires task IDs (24-character hex strings), not task names. Use tasks --json to get task IDs first.
List Projects
# List all projects
bun run scripts/ticktick.ts lists
# JSON output
bun run scripts/ticktick.ts lists --json
Create Project
# Create new project
bun run scripts/ticktick.ts list "New Project"
# With color
bun run scripts/ticktick.ts list "Work Tasks" --color "#FF5733"
Update Project
# Rename project
bun run scripts/ticktick.ts list "Old Name" --update --name "New Name"
# Change color
bun run scripts/ticktick.ts list "Work" --update --color "#00FF00"
Options Reference
Priority Levels
none- No priority (default)low- Low prioritymedium- Medium priorityhigh- High priority
Due Date Formats
today- Due todaytomorrow- Due tomorrowin N days- Due in N days (e.g., "in 3 days")next monday- Next occurrence of weekday- ISO date -
YYYY-MM-DDor full ISO format
Global Options
--json- Output results in JSON format (useful for scripting)--help- Show help for any command
Agent Usage Tips
When using this skill as an AI agent:
--json flag for machine-readable outputlists --json to get valid project IDsExample agent workflow:
# 1. Get available projects
bun run scripts/ticktick.ts lists --json
# 2. Create a task in a specific project
bun run scripts/ticktick.ts task "Agent task" --list "PROJECT_ID" --priority high --json
# 3. Later, mark it complete
bun run scripts/ticktick.ts complete "Agent task" --list "PROJECT_ID" --json
Configuration
Tokens are stored in ~/.clawdbot/credentials/ticktick-cli/config.json:
{
"clientId": "YOUR_CLIENT_ID",
"clientSecret": "YOUR_CLIENT_SECRET",
"accessToken": "...",
"refreshToken": "...",
"tokenExpiry": 1234567890000,
"redirectUri": ""
}
Note: Credentials are stored in plaintext. The CLI attempts to set file permissions to 700/600; treat this file as sensitive.
The CLI automatically refreshes tokens when they expire.
Troubleshooting
"Not authenticated" error
Runbun run scripts/ticktick.ts auth to authenticate.
"Project not found" error
Usebun run scripts/ticktick.ts lists to see available projects and their IDs.
"Task not found" error
- Check the task title matches exactly (case-insensitive)
- Try using the task ID instead
- Use
--listto narrow the search to a specific project
Token expired errors
The CLI should auto-refresh tokens. If issues persist, runbun run scripts/ticktick.ts auth again.
API Notes
This CLI uses the [TickTick Open API v1]().
Rate Limits
- 100 requests per minute
- 300 requests per 5 minutes
Batch Endpoint
The CLI supports TickTick's batch endpoint for bulk operations:POST
{
"add": [...], // CreateTaskInput[]
"update": [...], // UpdateTaskInput[]
"delete": [...] // { taskId, projectId }[]
}
Use batch-abandon to abandon multiple tasks in one API call. The batch API method is also exposed for programmatic use.
Other Limitations
- Maximum 500 tasks per project
- Some advanced features (focus time, habits) not supported by the API