clickup-agent-cli 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "clickup-agent-cli",
3
+ "version": "0.2.0",
4
+ "description": "CLI covering the entire ClickUp API v2 surface",
5
+ "type": "module",
6
+ "bin": {
7
+ "clickup": "./dist/bin/clickup.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "skills",
12
+ ".claude-plugin"
13
+ ],
14
+ "engines": {
15
+ "node": ">=22.0.0"
16
+ },
17
+ "scripts": {
18
+ "build": "tsup",
19
+ "dev": "tsx bin/clickup.ts",
20
+ "test": "vitest run",
21
+ "typecheck": "tsc --noEmit"
22
+ },
23
+ "keywords": [
24
+ "clickup",
25
+ "cli",
26
+ "agent",
27
+ "project-management",
28
+ "tasks",
29
+ "mcp"
30
+ ],
31
+ "author": "Henry Reith",
32
+ "license": "MIT",
33
+ "dependencies": {
34
+ "@inquirer/prompts": "^7.0.0",
35
+ "chalk": "^5.0.0",
36
+ "cli-table3": "^0.6.5",
37
+ "commander": "^14.0.0",
38
+ "conf": "^13.0.0",
39
+ "ora": "^8.0.0",
40
+ "zod": "^3.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@types/node": "^22.0.0",
44
+ "tsup": "^8.5.0",
45
+ "tsx": "^4.0.0",
46
+ "typescript": "^5.9.0",
47
+ "vitest": "^3.0.0"
48
+ }
49
+ }
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: clickup
3
+ description: Manages ClickUp projects, tasks, spaces, lists, time tracking, goals, and more via CLI. Use when the user needs to create tasks, check project status, manage sprints, track time, find work items, or interact with ClickUp data in any way.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # ClickUp CLI
8
+
9
+ You have access to `clickup`, a command-line tool for the full ClickUp API v2. It outputs structured JSON by default when used programmatically.
10
+
11
+ ## When to Use This
12
+
13
+ Use the ClickUp CLI when you need to:
14
+ - Create, update, search, or manage tasks
15
+ - Navigate workspaces, spaces, folders, and lists
16
+ - Track time, manage goals, or work with views
17
+ - Manage users, groups, guests, and webhooks
18
+ - Run project management workflows (sprint planning, reviews, triage)
19
+
20
+ ## Discovery
21
+
22
+ **Do not guess command syntax.** Discover the correct flags using:
23
+
24
+ ```bash
25
+ clickup schema <resource> # List actions (list, get, create, ...)
26
+ clickup schema <resource>.<action> # Show required/optional fields
27
+ clickup <resource> <action> --help # Full help text
28
+ ```
29
+
30
+ ## Sub-Skills (load when needed)
31
+
32
+ | Skill | What it covers |
33
+ |-------|---------------|
34
+ | `clickup-tasks` | Tasks, subtasks, checklists, dependencies, attachments |
35
+ | `clickup-spaces` | Workspaces, spaces, folders, lists (hierarchy navigation) |
36
+ | `clickup-comments` | Comments, threaded replies, comment assignment |
37
+ | `clickup-time` | Time entries, running timers, time tags, reports |
38
+ | `clickup-goals` | Goals, key results, OKR tracking |
39
+ | `clickup-views` | Views (board, list, Gantt, etc.), view tasks |
40
+ | `clickup-users` | Users, groups, guests, roles, members, workspace member search |
41
+ | `clickup-chat` | Chat channels, sending messages and notifications |
42
+ | `clickup-webhooks` | Webhook registration and management |
43
+ | `clickup-fields` | Custom fields, tags, custom task types |
44
+
45
+ ## Recipe Skills (multi-step workflows)
46
+
47
+ Recipes accept natural language arguments. Scope them to any team, department, person, or project.
48
+
49
+ | Skill | Workflow |
50
+ |-------|----------|
51
+ | `clickup-weekly-review` | Weekly progress report for any team or scope |
52
+ | `clickup-team-report` | Department/team status rundown (marketing, engineering, ops, etc.) |
53
+ | `clickup-custom-report` | Any ad-hoc query or filtered report |
54
+ | `clickup-sprint-planning` | Plan a sprint from backlog |
55
+ | `clickup-task-triage` | Triage and prioritize incoming tasks |
56
+ | `clickup-standup` | Daily standup summary for a person or team |
57
+ | `clickup-sprint-closeout` | Close a sprint, carry over incomplete work |
58
+ | `clickup-time-audit` | Audit time tracking and utilization |
59
+ | `clickup-project-setup` | Scaffold a new project structure |
60
+ | `clickup-capacity-check` | Check team workload and availability |
61
+ | `clickup-blocker-report` | Find blocked tasks and dependency chains |
62
+ | `clickup-goal-progress` | Report on goal/OKR completion |
63
+
64
+ ## Quick Patterns
65
+
66
+ ```bash
67
+ # List tasks in a list
68
+ clickup task list --list-id <id>
69
+
70
+ # Create a task and capture its ID
71
+ TASK_ID=$(clickup task create --list-id <id> --name "Task name" --format id)
72
+
73
+ # Search across workspace
74
+ clickup task search --workspace-id <id> --query "search text"
75
+
76
+ # Pipe IDs for batch operations
77
+ clickup task list --list-id <id> --format quiet | xargs -I{} clickup task get {}
78
+ ```
79
+
80
+ ## Global Flags
81
+
82
+ All commands support: `--format json|table|csv|tsv|quiet|id|md`, `--dry-run`, `--debug`, `--no-color`
83
+
84
+ Use `--format md` to render output as a markdown table -- ideal for displaying results in chat messages or documents.
85
+
86
+ ## Auth
87
+
88
+ Requires a ClickUp API token.
89
+
90
+ ```bash
91
+ # Set up authentication
92
+ clickup auth login --token pk_XXXXXXXX_YYYYYYYY
93
+
94
+ # Or use an environment variable
95
+ export CLICKUP_TOKEN=pk_XXXXXXXX_YYYYYYYY
96
+
97
+ # Store default workspace
98
+ clickup config set workspace_id <id>
99
+
100
+ # Check current auth status
101
+ clickup auth status
102
+ ```
103
+
104
+ ## Creating Custom Skills
105
+
106
+ Users can create their own skills alongside the built-in ones. Add a SKILL.md to `.claude/skills/<name>/` in any project:
107
+
108
+ ```yaml
109
+ ---
110
+ name: marketing-weekly
111
+ description: Weekly marketing department review
112
+ disable-model-invocation: true
113
+ context: fork
114
+ agent: general-purpose
115
+ allowed-tools: Bash(clickup *)
116
+ ---
117
+
118
+ Generate a marketing department weekly review:
119
+ 1. Get all tasks in the Marketing space (space ID: YOUR_SPACE_ID)
120
+ 2. Focus on campaign tasks, content pipeline, and ad performance items
121
+ 3. Highlight completed deliverables and upcoming deadlines
122
+ 4. Flag any blocked creative reviews
123
+ ```
124
+
125
+ This creates `/marketing-weekly` as a custom skill that works alongside the built-in `/clickup:*` skills.
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: clickup-blocker-report
3
+ description: Finds blocked tasks, dependency chains, and stale items that need attention. Use when the user asks about blockers, stuck tasks, stalled work, dependency issues, or wants to find what is holding up progress.
4
+ disable-model-invocation: true
5
+ context: fork
6
+ agent: general-purpose
7
+ argument-hint: "[workspace-id]"
8
+ allowed-tools: Bash(clickup *)
9
+ ---
10
+
11
+ # Blocker Report
12
+
13
+ Identify blocked tasks, broken dependency chains, and items that have been stalled.
14
+
15
+ ## Prerequisites
16
+
17
+ - Workspace ID
18
+
19
+ ## Workflow
20
+
21
+ ### Step 1: Find explicitly blocked tasks
22
+
23
+ ```bash
24
+ clickup task search --workspace-id <id> \
25
+ --status "blocked" --status "waiting" --status "on hold" \
26
+ --format json
27
+ ```
28
+
29
+ ### Step 2: Find stale in-progress tasks
30
+
31
+ Tasks that have been "in progress" for too long without updates:
32
+
33
+ ```bash
34
+ # In-progress tasks not updated in the last 7 days
35
+ clickup task search --workspace-id <id> \
36
+ --status "in progress" \
37
+ --date-updated-lt <seven-days-ago-ms> \
38
+ --format json
39
+ ```
40
+
41
+ ### Step 3: Check dependencies on blocked tasks
42
+
43
+ For each blocked task, get its full details to see dependency info:
44
+
45
+ ```bash
46
+ clickup task get <blocked-task-id> --format json
47
+ ```
48
+
49
+ The response includes `dependencies` and `linked_tasks` arrays showing what is blocking the task.
50
+
51
+ ### Step 4: Find overdue unassigned tasks
52
+
53
+ ```bash
54
+ clickup task search --workspace-id <id> \
55
+ --due-date-lt <now-ms> \
56
+ --include-closed false \
57
+ --format json
58
+ ```
59
+
60
+ Filter results for tasks with empty assignee arrays - these are orphaned and overdue.
61
+
62
+ ### Step 5: Check time-in-status for stuck tasks
63
+
64
+ ```bash
65
+ # How long have blocked tasks been in their current status?
66
+ clickup task bulk-time-in-status --task-id <id1> --task-id <id2> --format json
67
+ ```
68
+
69
+ ### Step 6: Compile the report
70
+
71
+ - **Blocked tasks**: What, who, and what is blocking them
72
+ - **Stale tasks**: In progress but not updated recently
73
+ - **Overdue + unassigned**: Nobody owns these
74
+ - **Dependency chains**: If A blocks B blocks C, surface the chain
75
+
76
+ ### Step 7: Take action
77
+
78
+ ```bash
79
+ # Reassign a stale task
80
+ clickup task update <task-id> --assignee-add <id>
81
+
82
+ # Add a comment to escalate
83
+ clickup comment create --task-id <task-id> --text "This has been blocked for 5 days. Needs attention."
84
+
85
+ # Update status if blocker is resolved
86
+ clickup task update <task-id> --status "in progress"
87
+ ```
88
+
89
+ ## Tips
90
+
91
+ - Run blocker reports at least twice per sprint
92
+ - Tasks in "blocked" status for more than 3 days should be escalated
93
+ - Cross-reference with the capacity-check recipe to see if blockers are due to overload
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: clickup-capacity-check
3
+ description: Checks team workload and capacity by analyzing who is overloaded, who has bandwidth, and suggesting rebalancing. Use when the user asks about team capacity, workload, who is overloaded, or wants to balance task assignments.
4
+ disable-model-invocation: true
5
+ context: fork
6
+ agent: general-purpose
7
+ argument-hint: "[workspace-id]"
8
+ allowed-tools: Bash(clickup *)
9
+ ---
10
+
11
+ # Capacity Check
12
+
13
+ Assess team workload by analyzing task assignments, time estimates, and time logged.
14
+
15
+ ## Prerequisites
16
+
17
+ - Workspace ID
18
+ - Team member user IDs
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Get each team member's active tasks
23
+
24
+ ```bash
25
+ # For each team member, get their in-progress and to-do tasks
26
+ clickup task search --workspace-id <id> --assignee <user-id> \
27
+ --status "to do" --status "in progress" --status "in review" \
28
+ --format json
29
+ ```
30
+
31
+ ### Step 2: Sum time estimates per person
32
+
33
+ From the task data, calculate:
34
+ - Total estimated hours per person (sum `time_estimate` fields)
35
+ - Number of active tasks per person
36
+ - Number of high-priority (P1/P2) tasks per person
37
+
38
+ ### Step 3: Check time logged this period
39
+
40
+ ```bash
41
+ clickup time list --workspace-id <id> \
42
+ --start <period-start-ms> --end <period-end-ms> \
43
+ --assignee <user-id> \
44
+ --format json
45
+ ```
46
+
47
+ ### Step 4: Check for overdue tasks per person
48
+
49
+ ```bash
50
+ clickup task search --workspace-id <id> --assignee <user-id> \
51
+ --due-date-lt <now-ms> --include-closed false \
52
+ --format json
53
+ ```
54
+
55
+ ### Step 5: Compile capacity report
56
+
57
+ For each team member:
58
+ - **Active tasks**: Count and total estimated hours
59
+ - **Time logged this week**: Hours
60
+ - **Overdue tasks**: Count
61
+ - **Capacity status**: Under / At / Over capacity
62
+
63
+ ### Step 6: Rebalance (if needed)
64
+
65
+ ```bash
66
+ # Move a task from overloaded person to someone with bandwidth
67
+ clickup task update <task-id> --assignee-remove <overloaded-id> --assignee-add <available-id>
68
+ ```
69
+
70
+ ## Tips
71
+
72
+ - Time estimates are in milliseconds. Divide by 3600000 for hours.
73
+ - If time estimates are not set on tasks, use task count as a rough proxy
74
+ - Run capacity checks at sprint planning and mid-sprint
75
+ - Use `--format quiet` to get just task IDs for batch reassignment
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: clickup-chat
3
+ description: Lists ClickUp chat channels and sends messages. Use when the user wants to post a notification, send a standup summary, notify a channel, or check what chat channels exist in the workspace.
4
+ allowed-tools: Bash(clickup chat *), Bash(clickup schema chat*)
5
+ ---
6
+
7
+ # ClickUp Chat
8
+
9
+ List channels and send messages to chat channels in the workspace.
10
+
11
+ ## Channel Commands
12
+
13
+ ```bash
14
+ # List all chat channels
15
+ clickup chat channels --workspace-id <id>
16
+
17
+ # List channels as JSON (for scripting)
18
+ clickup chat channels --workspace-id <id> --format json
19
+
20
+ # Get channel IDs only
21
+ clickup chat channels --workspace-id <id> --format quiet
22
+ ```
23
+
24
+ ## Send Message
25
+
26
+ ```bash
27
+ # Send a message to a channel
28
+ clickup chat send --channel-id <id> --message "Message text"
29
+
30
+ # With explicit workspace ID
31
+ clickup chat send --workspace-id <id> --channel-id <id> --message "Message text"
32
+ ```
33
+
34
+ ## Common Patterns
35
+
36
+ ```bash
37
+ # Find a channel by name then message it
38
+ CHANNEL_ID=$(clickup chat channels --format json | jq -r '.[] | select(.name=="general") | .id')
39
+ clickup chat send --channel-id "$CHANNEL_ID" --message "Deploy complete"
40
+
41
+ # Post a standup summary to a channel
42
+ clickup chat send --channel-id <id> --message "$(clickup task list --list-id <id> --format md)"
43
+
44
+ # Notify channel after creating a task
45
+ TASK_ID=$(clickup task create --list-id <id> --name "Incident: API down" --priority 1 --format id)
46
+ clickup chat send --channel-id <id> --message "Incident task created: $TASK_ID"
47
+
48
+ # Output channels as markdown table for display
49
+ clickup chat channels --format md
50
+ ```
51
+
52
+ ## Discovery
53
+
54
+ ```bash
55
+ clickup schema chat # List chat actions
56
+ clickup schema chat.channels # Show channels flags
57
+ clickup schema chat.send # Show send fields
58
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: clickup-comments
3
+ description: Creates, lists, and manages comments on ClickUp tasks, lists, and views. Supports threading and replies. Use when the user wants to add comments, read discussion threads, reply to comments, or assign action items via comments.
4
+ allowed-tools: Bash(clickup comment *), Bash(clickup schema comment*)
5
+ ---
6
+
7
+ # ClickUp Comments
8
+
9
+ Comments can be attached to tasks, lists, or views. Supports threaded replies and comment assignment.
10
+
11
+ ## List Comments
12
+
13
+ ```bash
14
+ clickup comment list --task-id <id> [--start <ts>] [--start-id <id>]
15
+ clickup comment list --list-id <id> [--start <ts>] [--start-id <id>]
16
+ clickup comment list --view-id <id> [--start <ts>] [--start-id <id>]
17
+ ```
18
+
19
+ Provide exactly one of `--task-id`, `--list-id`, or `--view-id`.
20
+
21
+ ## Create a Comment
22
+
23
+ ```bash
24
+ clickup comment create --task-id <id> --text <text> [--assignee <id>] [--notify-all]
25
+ clickup comment create --list-id <id> --text <text> [--assignee <id>] [--notify-all]
26
+ clickup comment create --view-id <id> --text <text> [--assignee <id>] [--notify-all]
27
+ ```
28
+
29
+ ## Update / Delete
30
+
31
+ ```bash
32
+ clickup comment update <comment-id> --text <text> [--assignee <id>] [--resolved <bool>]
33
+ clickup comment delete <comment-id> --confirm
34
+ ```
35
+
36
+ ## Threading
37
+
38
+ ```bash
39
+ clickup comment list-threaded <comment-id> # List replies to a comment
40
+ clickup comment reply <comment-id> --text <text> [--assignee <id>] [--notify-all]
41
+ ```
42
+
43
+ ## Common Patterns
44
+
45
+ ```bash
46
+ # Add a status update comment on a task
47
+ clickup comment create --task-id abc9zt --text "Deployed to staging. Ready for QA."
48
+
49
+ # Assign a comment as an action item
50
+ clickup comment create --task-id abc9zt --text "Please review the API changes" --assignee 112233
51
+
52
+ # Resolve a comment thread
53
+ clickup comment update cmt_123 --resolved true
54
+
55
+ # Reply in a thread
56
+ clickup comment reply cmt_123 --text "Done - merged to main"
57
+
58
+ # List comments as markdown table
59
+ clickup comment list --task-id <id> --format md
60
+ ```
61
+
62
+ ## Discovery
63
+
64
+ ```bash
65
+ clickup schema comments.create # Show create fields
66
+ clickup schema comments.list # Show list options
67
+ ```
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: clickup-custom-report
3
+ description: Generates a custom ClickUp report based on any criteria the user describes. Handles ad-hoc queries like "show me all high-priority tasks assigned to John", "what's overdue in the backend", or "tasks created this month with no assignee". Use when the user asks for a specific data pull, custom query, filtered view, or any report that does not match a predefined recipe.
4
+ disable-model-invocation: true
5
+ context: fork
6
+ agent: general-purpose
7
+ argument-hint: "[describe what you want to see]"
8
+ allowed-tools: Bash(clickup *)
9
+ ---
10
+
11
+ # Custom Report
12
+
13
+ Generate any report the user asks for by composing CLI commands to match their criteria.
14
+
15
+ ## Understanding the Request
16
+
17
+ `$ARGUMENTS` is a natural language description of what the user wants. Parse it to determine:
18
+
19
+ 1. **What data**: tasks, time entries, goals, comments, etc.
20
+ 2. **Filters**: status, assignee, priority, dates, space, list, tags, custom fields
21
+ 3. **Grouping**: by person, by status, by space, by priority, by date
22
+ 4. **Output style**: summary, detailed list, counts, comparison
23
+
24
+ ## Available Filters
25
+
26
+ Use these CLI flags to build the right query:
27
+
28
+ ### Task filters
29
+ ```bash
30
+ clickup task search --workspace-id <id> \
31
+ --status "in progress" # Filter by status
32
+ --assignee <user-id> # Filter by assignee
33
+ --priority 1 # Filter by priority (1=urgent, 2=high, 3=normal, 4=low)
34
+ --due-date-gt <timestamp-ms> # Due after date
35
+ --due-date-lt <timestamp-ms> # Due before date
36
+ --date-created-gt <timestamp-ms> # Created after date
37
+ --date-updated-gt <timestamp-ms> # Updated after date
38
+ --tag "bug" # Filter by tag
39
+ --space-id <id> # Scope to space
40
+ --list-id <id> # Scope to list
41
+ --include-closed true # Include completed tasks
42
+ --format json
43
+ ```
44
+
45
+ ### Time entry filters
46
+ ```bash
47
+ clickup time list --workspace-id <id> \
48
+ --start <timestamp-ms> # Period start
49
+ --end <timestamp-ms> # Period end
50
+ --assignee <user-id> # Filter by person
51
+ --format json
52
+ ```
53
+
54
+ ### Other data
55
+ ```bash
56
+ clickup goal list --workspace-id <id> --format json
57
+ clickup comment list --task-id <id> --format json
58
+ clickup view tasks --view-id <id> --format json
59
+ ```
60
+
61
+ ## Workflow
62
+
63
+ ### Step 1: Parse the request
64
+
65
+ Break down the natural language request into concrete filters. Examples:
66
+
67
+ | User says | Filters to apply |
68
+ |-----------|-----------------|
69
+ | "High priority tasks with no assignee" | `--priority 1 --priority 2`, then filter results for empty assignee |
70
+ | "What did the team complete last month" | `--status complete --date-updated-gt <month-start> --date-updated-lt <month-end>` |
71
+ | "Tasks in the design space due this week" | `--space-id <design-space> --due-date-lt <end-of-week>` |
72
+ | "Show me everything tagged 'urgent'" | `--tag urgent` |
73
+ | "Overdue tasks by priority" | `--due-date-lt <now> --include-closed false`, group by priority |
74
+
75
+ ### Step 2: Resolve names to IDs
76
+
77
+ If the user used names instead of IDs, look them up:
78
+
79
+ ```bash
80
+ # Find a space by name
81
+ clickup space list --format json
82
+
83
+ # Find a user by name
84
+ clickup member list --workspace-id <id> --format json
85
+
86
+ # Find a list by name within a space
87
+ clickup list list --space-id <id> --format json
88
+ ```
89
+
90
+ ### Step 3: Run the query
91
+
92
+ Execute the search with all applicable filters. Use `--format json` for structured data.
93
+
94
+ ### Step 4: Process and format results
95
+
96
+ - Group results as the user requested (by person, status, priority, etc.)
97
+ - Calculate aggregates (counts, totals, averages) if asked
98
+ - Sort by the most relevant field (due date, priority, creation date)
99
+
100
+ ### Step 5: Present the report
101
+
102
+ Format the output clearly with:
103
+ - A summary line (e.g., "Found 23 high-priority tasks across 3 spaces")
104
+ - Grouped/sorted data with relevant details
105
+ - Actionable insights if patterns emerge (e.g., "12 of 23 are unassigned")
106
+
107
+ ## Example Requests
108
+
109
+ These all work with this recipe:
110
+
111
+ - "Show me all tasks created this week"
112
+ - "How many tasks does each team member have?"
113
+ - "What's overdue in engineering?"
114
+ - "Tasks tagged 'client-facing' that are still in progress"
115
+ - "Compare task completion rates between marketing and sales this quarter"
116
+ - "Find tasks with time estimates but no time logged"
117
+ - "All tasks due in the next 3 days with priority 1 or 2"
118
+ - "What tasks were closed without any comments?"
119
+
120
+ ## Tips
121
+
122
+ - Combine multiple searches if a single query can't capture everything
123
+ - Use `clickup schema tasks.search` to discover available filter flags
124
+ - For complex comparisons, run separate searches and merge the results
125
+ - If the user asks for something the CLI can't filter directly, fetch a broader set and filter in post-processing
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: clickup-fields
3
+ description: Manages ClickUp custom fields, tags, and custom task types. Use when the user asks about custom fields, wants to set field values on tasks, manage tags, or work with custom task types.
4
+ allowed-tools: Bash(clickup custom-field *), Bash(clickup tag *), Bash(clickup custom-task-type *), Bash(clickup schema field*), Bash(clickup schema tag*)
5
+ ---
6
+
7
+ # ClickUp Custom Fields, Tags, and Task Types
8
+
9
+ ## Custom Field Commands
10
+
11
+ Custom fields are defined at the list level and set on individual tasks.
12
+
13
+ ```bash
14
+ clickup field list --list-id <id> # List field definitions
15
+ clickup field set --task-id <id> --field-id <fid> --value <v> # Set a field value
16
+ clickup field remove --task-id <id> --field-id <fid> # Clear a field value
17
+ ```
18
+
19
+ ### Value formats by field type
20
+
21
+ | Type | Format | Example |
22
+ |------|--------|---------|
23
+ | text | Plain string | `"Approved"` |
24
+ | number | Numeric string | `"42"` |
25
+ | currency | Numeric string | `"99.99"` |
26
+ | date | Unix timestamp (ms) | `"1735689600000"` |
27
+ | checkbox | `true` or `false` | `"true"` |
28
+ | dropdown | Option ID | `"1"` |
29
+ | label | JSON array of option IDs | `"[1,2]"` |
30
+ | user | User ID | `"112233"` |
31
+ | url | URL string | `"https://example.com"` |
32
+ | rating | Integer | `"4"` |
33
+
34
+ ## Tag Commands
35
+
36
+ Tags are defined at the space level and applied to tasks.
37
+
38
+ ```bash
39
+ clickup tag list --space-id <id>
40
+ clickup tag create --space-id <id> --name <name> [--fg-color <hex>] [--bg-color <hex>]
41
+ clickup tag update --space-id <id> --name <name> [--new-name <name>] [--fg-color <hex>] [--bg-color <hex>]
42
+ clickup tag delete --space-id <id> --name <name> --confirm
43
+ clickup tag add --task-id <id> --name <name>
44
+ clickup tag remove --task-id <id> --name <name>
45
+ ```
46
+
47
+ ## Custom Task Type Commands
48
+
49
+ Custom task types (Bug, Feature, Milestone, etc.) are defined at the workspace level (Enterprise plan).
50
+
51
+ ```bash
52
+ clickup task-type list --workspace-id <id>
53
+ ```
54
+
55
+ ## Common Patterns
56
+
57
+ ```bash
58
+ # Set a custom field on a task
59
+ clickup field set --task-id abc9zt --field-id cf_001 --value "Approved"
60
+
61
+ # Create and apply a tag
62
+ clickup tag create --space-id 55544433 --name "urgent" --bg-color "#FF0000"
63
+ clickup tag add --task-id abc9zt --name "urgent"
64
+
65
+ # List all fields available in a list (to find field IDs)
66
+ clickup field list --list-id 998877 --format json
67
+
68
+ # Render field list as markdown table
69
+ clickup field list --list-id 998877 --format md
70
+ ```
71
+
72
+ ## Discovery
73
+
74
+ ```bash
75
+ clickup schema fields.set # Show field set options
76
+ clickup schema tags.create # Show tag create fields
77
+ ```