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/.claude-plugin/marketplace.json +20 -0
- package/.claude-plugin/plugin.json +12 -0
- package/README.md +228 -0
- package/dist/clickup.js +4034 -0
- package/package.json +49 -0
- package/skills/clickup/SKILL.md +125 -0
- package/skills/clickup-blocker-report/SKILL.md +93 -0
- package/skills/clickup-capacity-check/SKILL.md +75 -0
- package/skills/clickup-chat/SKILL.md +58 -0
- package/skills/clickup-comments/SKILL.md +67 -0
- package/skills/clickup-custom-report/SKILL.md +125 -0
- package/skills/clickup-fields/SKILL.md +77 -0
- package/skills/clickup-goal-progress/SKILL.md +74 -0
- package/skills/clickup-goals/SKILL.md +71 -0
- package/skills/clickup-project-setup/SKILL.md +102 -0
- package/skills/clickup-spaces/SKILL.md +88 -0
- package/skills/clickup-sprint-closeout/SKILL.md +91 -0
- package/skills/clickup-sprint-planning/SKILL.md +94 -0
- package/skills/clickup-standup/SKILL.md +94 -0
- package/skills/clickup-task-triage/SKILL.md +86 -0
- package/skills/clickup-tasks/SKILL.md +125 -0
- package/skills/clickup-team-report/SKILL.md +131 -0
- package/skills/clickup-time/SKILL.md +87 -0
- package/skills/clickup-time-audit/SKILL.md +85 -0
- package/skills/clickup-users/SKILL.md +122 -0
- package/skills/clickup-views/SKILL.md +65 -0
- package/skills/clickup-webhooks/SKILL.md +61 -0
- package/skills/clickup-weekly-review/SKILL.md +105 -0
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
|
+
```
|