ticktickManage TickTick tasks and projects from the command line with OAuth2 auth, batch operations, and rate limit handling.
Install via ClawdBot CLI:
clawdbot install ManuelHettich/ticktickManage TickTick tasks and projects from the command line.
http://localhost:8080Client ID and Client Secret# Set credentials and start OAuth flow
bun run scripts/ticktick.ts auth --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET
# Check authentication status
bun run scripts/ticktick.ts auth --status
# Logout (clear tokens, keep credentials)
bun run scripts/ticktick.ts auth --logout
# Use manual mode on headless servers
bun run scripts/ticktick.ts auth --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET --manual
This prints an authorization URL. Open it in a browser, approve access, then copy the full redirect URL (it looks like http://localhost:8080/?code=XXXXX&state=STATE) 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.
# 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
# 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 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
# 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"
# 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"
# 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 all projects
bun run scripts/ticktick.ts lists
# JSON output
bun run scripts/ticktick.ts lists --json
# Create new project
bun run scripts/ticktick.ts list "New Project"
# With color
bun run scripts/ticktick.ts list "Work Tasks" --color "#FF5733"
# 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"
none - No priority (default)low - Low prioritymedium - Medium priorityhigh - High prioritytoday - Due todaytomorrow - Due tomorrowin N days - Due in N days (e.g., "in 3 days")next monday - Next occurrence of weekdayYYYY-MM-DD or full ISO format--json - Output results in JSON format (useful for scripting)--help - Show help for any commandWhen 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
Tokens are stored in ~/.clawdbot/credentials/ticktick-cli/config.json:
{
"clientId": "YOUR_CLIENT_ID",
"clientSecret": "YOUR_CLIENT_SECRET",
"accessToken": "...",
"refreshToken": "...",
"tokenExpiry": 1234567890000,
"redirectUri": "http://localhost:8080"
}
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.
Run bun run scripts/ticktick.ts auth to authenticate.
Use bun run scripts/ticktick.ts lists to see available projects and their IDs.
--list to narrow the search to a specific projectThe CLI should auto-refresh tokens. If issues persist, run bun run scripts/ticktick.ts auth again.
This CLI uses the TickTick Open API v1.
The CLI makes multiple API calls per operation (listing projects to find task), so bulk operations can hit limits quickly.
The CLI supports TickTick's batch endpoint for bulk operations:
POST https://api.ticktick.com/open/v1/batch/task
{
"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.
Generated Mar 1, 2026
Individuals use the CLI to quickly add, update, and complete daily tasks like groceries or appointments from their terminal. It integrates with existing workflows, allowing for priority setting and due dates to stay organized without switching to a GUI app.
Development or marketing teams manage shared task lists for sprints or campaigns, using batch operations to update multiple items efficiently. The JSON output enables scripting for automated status reports or syncing with other tools like CI/CD pipelines.
Writers or creators track article drafts, video edits, and publishing deadlines across projects, using tags to categorize work. The CLI helps automate task creation from scripts, such as generating tasks from a content calendar exported as JSON.
Students and researchers manage literature reviews, experiment milestones, and paper submissions by project, with due dates for deadlines. The headless authentication supports use on remote servers for automated task updates from data analysis scripts.
Freelancers organize tasks per client project, using priority levels to balance workloads and due dates for deliverables. The CLI allows quick updates from the command line while coding or designing, reducing context switching during focused work sessions.
Offer the CLI as a free tool to attract users to a premium TickTick automation platform, with advanced features like AI task suggestions or team analytics. Revenue comes from subscription tiers for enterprises needing enhanced reporting and API limits.
Provide services to businesses for integrating the CLI into their internal systems, such as linking it with project management software or developing custom scripts. Revenue is generated through one-time setup fees and ongoing support contracts.
Distribute the CLI as part of a marketplace for productivity tools, with optional paid add-ons like premium support, additional integrations, or enhanced security features. Revenue streams include one-time purchases or annual licenses for commercial use.
💬 Integration Tip
Use the JSON output flag for scripting and integrate with cron jobs or CI/CD pipelines to automate task updates based on system events.
Use CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Gemini CLI for one-shot Q&A, summaries, and generation.
Research any topic from the last 30 days on Reddit + X + Web, synthesize findings, and write copy-paste-ready prompts. Use when the user wants recent social/web research on a topic, asks "what are people saying about X", or wants to learn current best practices. Requires OPENAI_API_KEY and/or XAI_API_KEY for full Reddit+X access, falls back to web search.
Check Antigravity account quotas for Claude and Gemini models. Shows remaining quota and reset times with ban detection.
Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...
Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates openclaw.json. Use when the user mentions free AI, OpenRouter, model switching, rate limits, or wants to reduce AI costs.