بنقرة واحدة
ticktick-cli
Manage tasks and projects in TickTick. Use when user asks for tasks, to-dos, reminders, or event.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Manage tasks and projects in TickTick. Use when user asks for tasks, to-dos, reminders, or event.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | ticktick-cli |
| description | Manage tasks and projects in TickTick. Use when user asks for tasks, to-dos, reminders, or event. |
| homepage | https://ticktick.com |
This skill describes how an agent should reliably use @ticktick/ticktick-cli
to help the user install the CLI, log in with OAuth (PKCE), and perform common task/project operations.
Use this skill whenever the user wants to manage TickTick via CLI (e.g. "use ticktick-cli to create a task").
@ticktick/ticktick-cliWhen in doubt, prefer safe, narrow actions and ask the user to clarify ambiguous intent.
Always follow this order:
Check if the CLI already exists:
ticktick --version
Install the CLI globally (if needed):
npm install -g @ticktick/ticktick-cli
Verify installation:
ticktick --help
ticktick --version
If installation fails due to environment issues (e.g. missing Node, permissions), explain the error to the user and suggest they fix their Node/npm setup first.
The CLI supports two authentication methods: OAuth PKCE (recommended) and manual Token.
The CLI uses OAuth PKCE in a browser to log in. This is the default and recommended way.
Standard login flow:
Start login:
ticktick auth login
Confirm login status:
ticktick auth status
ticktick auth login.Logout (only when explicitly requested):
ticktick auth logout
Guidelines:
If the environment is headless (no browser available) or the user cannot use browser-based OAuth, they can log in via an access token directly.
When to use:
How to instruct the user: Ask the user to generate an API Token and provide it to you or run the command themselves.
How to apply the token: Once the user provides the token, run:
ticktick auth token <token>
To list all projects:
ticktick project list
For structured data suitable for filtering:
ticktick project list --json
Agent rule:
--json variant.When the user refers to a project by name (e.g. "Inbox", "Work"):
Fetch projects with JSON:
ticktick project list --json
Find the project with a matching name field.
id in subsequent commands.Rule:
project list --json output or from explicit user input.When the user says "create a task in project X":
Resolve X to a project id (see 4.2).
Use:
ticktick task create --title "<task title>" --project <projectId>
Optional recommended flags (only if supported by the CLI and relevant to the request):
--content "<detailed description>"--dueDate "<ISO 8601 date/time>"--tags "<comma-separated tags>"After creation, you may run (if needed):
ticktick project list --json
# or a specific command to fetch the created task if available
and summarize the created task (id, title, project, due date) to the user.
Get a task (when you know both projectId and taskId):
ticktick task get <projectId> <taskId>
Update a task:
ticktick task update <taskId> \
--id <taskId> \
--project <projectId> \
--title "New title"
Add more flags as needed (content, due date, tags, etc.), based on the user’s request.
Complete a task:
ticktick task complete <projectId> <taskId>
Delete a task (destructive):
ticktick task delete <projectId> <taskId>
Safety rules:
To move a task from one project to another:
ticktick task move \
--from <sourceProjectId> \
--to <destProjectId> \
--task <taskId>
Workflow:
Most commands support a --json flag.
When to use --json:
id or other fields.Examples:
ticktick project list --json
ticktick task get <projectId> <taskId> --json
Agent behavior:
--json for internal decision-making and selection.Projects
name from project list --json.id and keep it consistent for this operation.Tasks
taskId, use it directly.Never fabricate IDs and never assume "the first one" is correct unless:
task deleteGuidelines:
Do not:
auth logout) without a request.Common error categories and recommended behavior:
Authentication errors (e.g. 401, invalid token):
Explain that authentication may have expired.
Suggest rerunning:
ticktick auth login
ticktick auth status
Network / connectivity errors:
Not found / invalid IDs:
Ambiguous selections:
In all cases, prefer clear explanations and minimal retries over silent failure.
When interpreting JSON from the TickTick Open API (or MCP tools that mirror these shapes), use the following field meanings. Names are shown in camelCase as in API payloads where applicable; Python models may use snake_case with aliases.
TickTickAccessToken.user_id: User id from token introspection (if present).OpenChecklistItem (checklist row under a task)id: Checklist item id (hex ObjectId string).status: 0 = not completed, 1 = completed.title: Item title.sortOrder: Display order among checklist items.startDate: Start time for the item.isAllDay: Whether the item is all-day.timeZone: Time zone for the item’s times.completedTime: When the item was marked completed.OpenColumn (Kanban column)id: Column id (hex ObjectId string).projectId: Project this column belongs to.name: Column name.sortOrder: Order among columns.OpenProjectProfile (project metadata)id: Project id (hex ObjectId string).name: Project name.color: Project color (as returned by API).sortOrder: Order among projects.closed: Whether the project is closed.groupId: Project group id (if any).viewMode: list | kanban | timeline.permission: read | comment | write.kind: TASK | NOTE (project type).OpenTask (task)id: Task id (hex ObjectId string).projectId: Owning project id.sortOrder: Order within the project/list.title: Short title; use content for longer body text when kind is task/note.content: Main body; relevant when kind is task-like or note (per API).desc: Description; relevant when kind is CHECKLIST.startDate: Start date/time.dueDate: Due date/time; if different from start, API treats it as a duration (end vs start).timeZone: Task time zone.isAllDay: All-day task flag.priority: 0 none, 1 low, 3 medium, 5 high.reminders: Reminder definitions (strings as API returns them).repeatFlag: Recurrence / repeat rule string.completedTime: Completion timestamp (when completed).status: 0 not completed, -1 abandoned, 2 completed.items: Checklist sub-items when kind is CHECKLIST.tags: Tag names.columnId / columnName: Kanban column placement.parentId: Parent task id for subtasks.childIds: Child task ids.assignor: Assignor identifier (as API provides).etag: ETag for optimistic concurrency when updating.kind: Task shape: TEXT | NOTE | CHECKLIST (see content vs desc above).OpenProjectDataproject: OpenProjectProfile for the project.tasks: Incomplete tasks under that project.columns: Kanban columns under that project.CompletedTaskSearchOpenapiprojectIds: Limit search to these projects.startDate / endDate: Completed-task time range (ISO 8601).UndoneTaskSearchOpenapiprojectIds: Limit to these projects (set semantics in model).startDate / endDate: Filter range for dates (ISO 8601).TaskSearchOpenapikeywords: Free-text search.projectIds: Scope to projects.tags: Filter by tags.status: Filter by task status codes.dueFrom / dueTo: Due date range (ISO 8601 strings).TaskFilterOpenapistartDate / endDate: Date filter (ISO 8601).projectIds: Project scope.priority: Allowed values typically 0, 1, 3, 5.tag: Tags to filter.kind: TASK, NOTE, CHECKLIST.status: Status codes to include.OpenMoveProject (move task between projects)fromProjectId: Source project.toProjectId: Destination project.taskId: Task to move.sortOrder: Position in destination; omit to leave order unchanged.SyncTaskDto (batch sync request)update: Tasks to update.add: Tasks to create.SyncTaskResultDto (batch sync response)id2etag: Map of task id → new ETag for successes.id2error: Map of task id → error message for failures.UserPreferenceDtotimeZone: User’s preferred time zone string.If existing documentation (such as the package README) disagrees with this skill, follow this skill’s safer, more conservative interpretation unless the user explicitly asks otherwise.
Field semantics for API-shaped JSON are summarized in section 9 (OpenAPI model fields).