clickup-agent-cli 0.4.2 → 0.5.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.
Files changed (37) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/README.md +5 -5
  4. package/dist/clickup.js +1 -1
  5. package/package.json +3 -2
  6. package/skills/clickup/SKILL.md +9 -0
  7. package/skills/clickup/references/gotchas.md +57 -0
  8. package/skills/clickup-blocker-report/SKILL.md +3 -0
  9. package/skills/clickup-capacity-check/SKILL.md +3 -0
  10. package/skills/clickup-chat/SKILL.md +1 -0
  11. package/skills/clickup-comments/SKILL.md +1 -0
  12. package/skills/clickup-custom-report/SKILL.md +1 -0
  13. package/skills/clickup-docs/SKILL.md +60 -0
  14. package/skills/clickup-fields/SKILL.md +2 -1
  15. package/skills/clickup-goal-progress/SKILL.md +3 -0
  16. package/skills/clickup-goals/SKILL.md +1 -0
  17. package/skills/clickup-meeting-notes-to-tasks/SKILL.md +81 -0
  18. package/skills/clickup-my-day/SKILL.md +77 -0
  19. package/skills/clickup-project-setup/SKILL.md +3 -0
  20. package/skills/clickup-release-notes/SKILL.md +73 -0
  21. package/skills/clickup-rollout/SKILL.md +3 -0
  22. package/skills/clickup-spaces/SKILL.md +1 -0
  23. package/skills/clickup-sprint-closeout/SKILL.md +3 -0
  24. package/skills/clickup-sprint-planning/SKILL.md +3 -0
  25. package/skills/clickup-standup/SKILL.md +1 -0
  26. package/skills/clickup-task-triage/SKILL.md +3 -0
  27. package/skills/clickup-tasks/SKILL.md +1 -0
  28. package/skills/clickup-team-report/SKILL.md +1 -0
  29. package/skills/clickup-templates/SKILL.md +1 -0
  30. package/skills/clickup-time/SKILL.md +1 -0
  31. package/skills/clickup-time-audit/SKILL.md +3 -0
  32. package/skills/clickup-timesheet-export/SKILL.md +66 -0
  33. package/skills/clickup-users/SKILL.md +1 -0
  34. package/skills/clickup-views/SKILL.md +1 -0
  35. package/skills/clickup-webhooks/SKILL.md +1 -0
  36. package/skills/clickup-weekly-review/SKILL.md +1 -0
  37. package/skills/clickup-workspace-audit/SKILL.md +80 -0
@@ -10,8 +10,8 @@
10
10
  {
11
11
  "name": "clickup",
12
12
  "source": "./",
13
- "description": "ClickUp CLI with 25 agent skills covering the full API -- token-efficient alternative to MCP with chat, time tracking, docs, and project management workflows",
14
- "version": "0.4.2",
13
+ "description": "ClickUp CLI with 31 agent skills covering the full API -- token-efficient alternative to MCP with chat, time tracking, docs, and project management workflows",
14
+ "version": "0.5.0",
15
15
  "homepage": "https://github.com/henryreith/clickup-cli",
16
16
  "keywords": ["clickup", "project-management", "tasks", "time-tracking"],
17
17
  "category": "productivity"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clickup",
3
- "description": "ClickUp CLI with 25 agent skills covering the full API -- token-efficient alternative to MCP with chat, time tracking, docs, and project management workflows",
4
- "version": "0.4.2",
3
+ "description": "ClickUp CLI with 31 agent skills covering the full API -- token-efficient alternative to MCP with chat, time tracking, docs, and project management workflows",
4
+ "version": "0.5.0",
5
5
  "author": {
6
6
  "name": "Henry Reith"
7
7
  },
package/README.md CHANGED
@@ -80,7 +80,7 @@ Every command supports multiple output formats:
80
80
 
81
81
  ## AI Agent Usage
82
82
 
83
- The CLI is built from the ground up for AI agents, following the "CLI as execution layer, skills as guidance layer" pattern. It ships as a Claude Code plugin with 25 agent skills, and works with any agent platform that can run bash commands.
83
+ The CLI is built from the ground up for AI agents, following the "CLI as execution layer, skills as guidance layer" pattern. It ships as a Claude Code plugin with 31 agent skills, and works with any agent platform that can run bash commands.
84
84
 
85
85
  **vs ClickUp MCP:** This CLI covers the same operations as the official ClickUp MCP server (tasks, docs, time tracking, chat, members, hierarchy) plus more, while consuming far fewer tokens. A full skills hierarchy loads in ~150 tokens at session start vs injecting an entire API schema. Works in any agent platform that supports bash -- not just MCP-compatible hosts.
86
86
 
@@ -100,7 +100,7 @@ Install the ClickUp CLI as a Claude Code plugin for zero-friction access to all
100
100
  /clickup:sprint-planning list-id-here
101
101
  ```
102
102
 
103
- Once installed, Claude Code auto-discovers all 25 skills and loads them on demand. Recipe skills like `/clickup:weekly-review` run in isolated subagents with full ClickUp CLI access.
103
+ Once installed, Claude Code auto-discovers all 31 skills and loads them on demand. Recipe skills like `/clickup:weekly-review` run in isolated subagents with full ClickUp CLI access.
104
104
 
105
105
  ### Claude Agent SDK
106
106
 
@@ -141,8 +141,8 @@ clickup skill show clickup-weekly-review
141
141
 
142
142
  **Three skill tiers:**
143
143
  - **Root skill** - Index and router. What the CLI does, how to discover more.
144
- - **Sub-skills** (11) - Per-resource command reference. Tasks, spaces, comments, time tracking, chat, etc.
145
- - **Recipe skills** (13) - Multi-step workflow guides that accept natural language arguments. Scope any recipe to a specific team, department, or person.
144
+ - **Sub-skills** (12) - Per-resource command reference. Tasks, spaces, comments, time tracking, chat, etc.
145
+ - **Recipe skills** (18) - Multi-step workflow guides that accept natural language arguments. Scope any recipe to a specific team, department, or person.
146
146
 
147
147
  **Example recipe invocations:**
148
148
  ```bash
@@ -201,7 +201,7 @@ clickup config validate
201
201
 
202
202
  # 4. Discover capabilities: the root skill indexes everything
203
203
  clickup skill show clickup # start here (~150 tokens)
204
- clickup skill list # all 25 skills
204
+ clickup skill list # all 31 skills
205
205
  clickup skill show clickup-tasks # per-resource command reference
206
206
 
207
207
  # 5. Discover exact fields before calling a command
package/dist/clickup.js CHANGED
@@ -4629,7 +4629,7 @@ function registerChatCommands(program, getClient) {
4629
4629
  }
4630
4630
 
4631
4631
  // src/cli.ts
4632
- var VERSION = "0.4.2";
4632
+ var VERSION = "0.5.0";
4633
4633
  function createProgram() {
4634
4634
  const program = new Command();
4635
4635
  program.name("clickup").description("ClickUp CLI - Manage ClickUp workspaces from the terminal").version(VERSION).option("--token <token>", "API token").option("--token-file <path>", "Read API token from this file path").option("--profile <name>", "Profile to use (key, workspace name, or nickname)").option("--workspace-id <id>", "Workspace ID").addOption(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clickup-agent-cli",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
4
4
  "description": "CLI covering the entire ClickUp API v2 surface",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,7 +19,8 @@
19
19
  "dev": "tsx bin/clickup.ts",
20
20
  "test": "vitest run",
21
21
  "typecheck": "tsc --noEmit",
22
- "version": "node scripts/sync-version.js"
22
+ "version": "node scripts/sync-version.js",
23
+ "lint:skills": "node scripts/lint-skills.mjs"
23
24
  },
24
25
  "keywords": [
25
26
  "clickup",
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup
3
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
+ license: MIT
4
5
  user-invocable: false
5
6
  ---
6
7
 
@@ -34,6 +35,8 @@ clickup skill list # All available skills
34
35
  clickup skill show <name> # Print a skill's full contents (e.g. clickup-tasks)
35
36
  ```
36
37
 
38
+ Known pitfalls (rate limits, error codes, exit codes, destructive-command rules) live in `references/gotchas.md` next to this file; read it before debugging a failing command (`clickup skill path clickup` prints this skill's directory).
39
+
37
40
  ## Sub-Skills (load when needed)
38
41
 
39
42
  | Skill | What it covers |
@@ -49,6 +52,7 @@ clickup skill show <name> # Print a skill's full contents (e.g. cli
49
52
  | `clickup-webhooks` | Webhook registration and management |
50
53
  | `clickup-fields` | Custom fields, tags, custom task types |
51
54
  | `clickup-templates` | Templates: list available templates, apply task/list/folder templates |
55
+ | `clickup-docs` | Docs and pages: create docs, write markdown pages, search the doc library |
52
56
 
53
57
  ## Recipe Skills (multi-step workflows)
54
58
 
@@ -69,6 +73,11 @@ Recipes accept natural language arguments. Scope them to any team, department, p
69
73
  | `clickup-capacity-check` | Check team workload and availability |
70
74
  | `clickup-blocker-report` | Find blocked tasks and dependency chains |
71
75
  | `clickup-goal-progress` | Report on goal/OKR completion |
76
+ | `clickup-meeting-notes-to-tasks` | Turn meeting notes or transcripts into triaged tasks |
77
+ | `clickup-workspace-audit` | Hygiene sweep: unassigned, overdue, stale, overloaded |
78
+ | `clickup-timesheet-export` | Export time entries as a timesheet with totals |
79
+ | `clickup-release-notes` | Changelog from completed tasks for a period |
80
+ | `clickup-my-day` | Personal daily agenda ordered by what to tackle first |
72
81
 
73
82
  ## Quick Patterns
74
83
 
@@ -0,0 +1,57 @@
1
+ # ClickUp CLI Gotchas
2
+
3
+ Hard-won facts that prevent wasted retries. Read this when a command fails unexpectedly.
4
+
5
+ ## Exit codes
6
+
7
+ | Code | Meaning | What to do |
8
+ |------|---------|-----------|
9
+ | 0 | Success | - |
10
+ | 1 | General/API error | Read stderr; check `--debug` output |
11
+ | 2 | Invalid arguments | Fix the flag value; the error names the flag |
12
+ | 3 | Auth failure | Token missing/invalid: `clickup auth login` or set `CLICKUP_API_TOKEN` |
13
+ | 4 | Not found | Wrong ID, or the token lacks access to that resource |
14
+ | 5 | Permission denied | The token's user lacks access in ClickUp |
15
+ | 6 | Rate limited | Already retried automatically; back off before batch work |
16
+ | 7 | Network error | Timeout or connectivity; retry once, then report |
17
+
18
+ ## Rate limits
19
+
20
+ - ClickUp allows ~100 requests/minute per token. The client retries 429s automatically, waiting for the reset window (capped at 60s).
21
+ - For bulk work prefer the built-in bulk commands (`task bulk-update`, `task bulk-delete`); they run 3-wide concurrency deliberately.
22
+ - Piping hundreds of IDs through `xargs` will hit the limit; batch in groups and expect pauses.
23
+
24
+ ## Destructive commands
25
+
26
+ - Every true delete (and `field remove`, `time delete`) prompts in a terminal and requires `--confirm` when non-interactive. Agents must pass `--confirm` explicitly; never work around a missing confirmation.
27
+ - Reversible link removals (`tag remove`, `relation remove`, `dependency remove`, `guest remove-from-*`, `list remove-task`) do not prompt.
28
+ - `attachment download` refuses to overwrite an existing file without `--force`.
29
+
30
+ ## Common error codes (ECODE)
31
+
32
+ | ECODE | Meaning |
33
+ |-------|---------|
34
+ | OAUTH_023 | Token invalid or expired: re-authenticate |
35
+ | OAUTH_024 | Token lacks permission for this action |
36
+ | ITEM_015 | Task not found: check the task ID |
37
+ | TEAM_015 | Workspace not found: check workspace ID or `clickup config set workspace_id <id>` |
38
+
39
+ ## Input formats
40
+
41
+ - Dates accept Unix ms, Unix seconds (10 digits), ISO 8601 (`2026-07-10`), and relative forms (`today`, `tomorrow`, `3d`, `-1w`, `friday`, `next monday`). Filter flags ending in `-gt`/`-lt` take Unix ms only.
42
+ - Durations (time tracking) are milliseconds. 1h = 3600000.
43
+ - `--priority` accepts 1-4 or urgent/high/normal/low.
44
+ - Booleans passed as values (`--billable`, `--archived`) must be literal `true` or `false`.
45
+ - JSON field names in output match the ClickUp API exactly; there is no camelCase conversion.
46
+
47
+ ## Output behavior
48
+
49
+ - Piped output defaults to JSON; interactive terminals get tables. Force with `--format`.
50
+ - `--format id` prints only the first result's ID: ideal for capture (`ID=$(clickup task create ... --format id)`).
51
+ - Status messages and spinners go to stderr; stdout carries only data.
52
+ - `skill show <name>` piped returns JSON with the skill body in the `content` field.
53
+
54
+ ## Workspace resolution
55
+
56
+ - Most commands need a workspace ID. Resolution order: `--workspace-id` flag > `CLICKUP_WORKSPACE_ID` env > active profile > single-workspace auto-select.
57
+ - After login, `clickup workspace setup` stores it; `clickup config validate` shows what is active.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-blocker-report
3
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
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Identify blocked tasks, broken dependency chains, and items that have been stalled.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Workspace ID
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-capacity-check
3
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
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Assess team workload by analyzing task assignments, time estimates, and time logged.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Workspace ID
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-chat
3
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
+ license: MIT
4
5
  allowed-tools: Bash(clickup chat *), Bash(clickup schema chat*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-comments
3
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
+ license: MIT
4
5
  allowed-tools: Bash(clickup comment *), Bash(clickup schema comment*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-custom-report
3
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
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: clickup-docs
3
+ description: Manages ClickUp Docs and their pages including creating docs, writing page content in markdown, and searching doc libraries. Use when the user asks to create or update a doc, add meeting notes or documentation pages, read a doc's contents, or find a doc in the workspace.
4
+ license: MIT
5
+ allowed-tools: Bash(clickup doc *), Bash(clickup schema doc*)
6
+ ---
7
+
8
+ # ClickUp Docs
9
+
10
+ Create, read, update, and search Docs and their pages. All doc commands require a workspace ID (from `--workspace-id`, `CLICKUP_WORKSPACE_ID`, or the active profile).
11
+
12
+ ## Doc Commands
13
+
14
+ ```bash
15
+ clickup doc list --workspace-id <id>
16
+ clickup doc search --workspace-id <id> --query <text>
17
+ clickup doc get --workspace-id <id> --doc-id <id>
18
+ clickup doc create --workspace-id <id> --name <name>
19
+ [--parent-id <id>] [--parent-type <4|5|6|7>] [--visibility <private|workspace>]
20
+ clickup doc update --workspace-id <id> --doc-id <id> --name <name>
21
+ clickup doc delete --workspace-id <id> --doc-id <id> --confirm
22
+ ```
23
+
24
+ `--parent-type` values: 4=space, 5=folder, 6=list, 7=task. When `--parent-id` is given without `--parent-type`, space (4) is assumed.
25
+
26
+ ## Page Commands
27
+
28
+ Docs contain pages; page content is markdown.
29
+
30
+ ```bash
31
+ clickup doc pages --workspace-id <id> --doc-id <id>
32
+ clickup doc page-get --workspace-id <id> --doc-id <id> --page-id <id>
33
+ clickup doc page-create --workspace-id <id> --doc-id <id> --name <name>
34
+ [--content <markdown>] [--parent-page-id <id>]
35
+ clickup doc page-update --workspace-id <id> --doc-id <id> --page-id <id>
36
+ [--name <name>] [--content <markdown>]
37
+ ```
38
+
39
+ ## Common Patterns
40
+
41
+ ```bash
42
+ # Find a doc by name, then read its pages
43
+ DOC_ID=$(clickup doc search --query "Engineering Handbook" --format id)
44
+ clickup doc pages --doc-id "$DOC_ID" --format json
45
+
46
+ # Create a doc in a space with a first page
47
+ DOC_ID=$(clickup doc create --name "Sprint Notes" --parent-id <space-id> --parent-type 4 --format id)
48
+ clickup doc page-create --doc-id "$DOC_ID" --name "2026-07-04" --content "# Notes\n- item one"
49
+
50
+ # Append meeting notes as a new page under an existing parent page
51
+ clickup doc page-create --doc-id <doc-id> --name "Standup 2026-07-04" \
52
+ --parent-page-id <page-id> --content "$(cat notes.md)"
53
+ ```
54
+
55
+ ## Notes
56
+
57
+ - `page-update --content` replaces the page content entirely; read the page first and merge if you need to append.
58
+ - `doc delete` is destructive: it prompts in a terminal and requires `--confirm` in non-interactive mode.
59
+ - Multi-line markdown works best passed via command substitution (`--content "$(cat file.md)"`) to avoid shell quoting issues.
60
+ - Field discovery: `clickup schema doc` lists actions, `clickup schema doc.page-create` shows fields.
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: clickup-fields
3
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 attachment *), Bash(clickup schema field*), Bash(clickup schema tag*)
4
+ license: MIT
5
+ allowed-tools: Bash(clickup field *), Bash(clickup tag *), Bash(clickup task-type *), Bash(clickup attachment *), Bash(clickup schema field*), Bash(clickup schema tag*)
5
6
  ---
6
7
 
7
8
  # ClickUp Custom Fields, Tags, and Task Types
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-goal-progress
3
3
  description: Reports on goal and OKR completion status by tracking key results, identifying at-risk goals, and updating progress. Use when the user asks about goal progress, OKR status, quarterly objectives, or wants to check if targets are on track.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Track OKR/goal completion, update key results, and identify goals that are at risk.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Workspace ID
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-goals
3
3
  description: Creates and manages ClickUp goals with measurable key results for OKR tracking. Use when the user asks about goals, OKRs, key results, objectives, progress tracking, or wants to set targets and measure completion.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup goal *), Bash(clickup schema goal*)
5
6
  ---
6
7
 
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: clickup-meeting-notes-to-tasks
3
+ description: Converts meeting notes, transcripts, or brain dumps into triaged ClickUp tasks with assignees, due dates, and tags. Use when the user pastes notes or points at a notes file and wants action items extracted and created as tasks.
4
+ license: MIT
5
+ disable-model-invocation: true
6
+ context: fork
7
+ agent: general-purpose
8
+ argument-hint: "[list name or ID, then paste notes or give a file path]"
9
+ allowed-tools: Bash(clickup *), Read
10
+ ---
11
+
12
+ # Meeting Notes to Tasks
13
+
14
+ Extract action items from raw notes and create them as properly triaged tasks.
15
+
16
+ ## Understanding the Input
17
+
18
+ `$ARGUMENTS` should contain a target list (name or ID) and the notes themselves (pasted text or a file path). If either is missing, ask for it before creating anything.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Resolve the target list
23
+
24
+ ```bash
25
+ # If given a name, find the list ID
26
+ clickup list list --folder-id <id> --format json # or --space-id for folderless lists
27
+ clickup space list --format json # to locate the right space first
28
+ ```
29
+
30
+ ### Step 2: Resolve people
31
+
32
+ Build a name-to-ID map so "Sarah will fix the login bug" becomes an assigned task:
33
+
34
+ ```bash
35
+ clickup member list --format json
36
+ ```
37
+
38
+ Match first names case-insensitively. If a name in the notes matches nobody, leave the task unassigned and note it in the summary.
39
+
40
+ ### Step 3: Extract action items
41
+
42
+ Read the notes and pull out every commitment, decision requiring follow-up, and explicit todo. For each item capture:
43
+
44
+ - **name**: imperative, under 80 chars ("Fix login redirect on Safari")
45
+ - **assignee**: from the people map, if a person was named
46
+ - **due date**: explicit dates, or relative phrases ("by Friday" = `friday`, "next week" = `+1w`)
47
+ - **priority**: `urgent` only if the notes say so; otherwise `normal`
48
+ - **description**: the sentence(s) from the notes the item came from, for context
49
+
50
+ Do NOT create tasks for decisions already made, FYIs, or discussion points with no action.
51
+
52
+ ### Step 4: Confirm the plan
53
+
54
+ Show the extracted items as a table (name, assignee, due, priority) and ask for approval before creating anything. Skip this only if the user already said to create without review.
55
+
56
+ ### Step 5: Create the tasks
57
+
58
+ ```bash
59
+ clickup task create --list-id <id> --name "<name>" \
60
+ [--description "<context>"] [--assignee <user-id>] \
61
+ [--due-date <friday|+3d|2026-07-10>] [--priority <level>] \
62
+ --format id
63
+ ```
64
+
65
+ Collect the returned IDs. Dates accept ISO 8601, relative forms (`tomorrow`, `3d`, `friday`), or Unix timestamps.
66
+
67
+ ### Step 6: Report
68
+
69
+ ```
70
+ Created N tasks in <list name>:
71
+ - <task name> -> <assignee or unassigned>, due <date> (<task-id>)
72
+ ...
73
+ Skipped: <items that were FYI/decisions, one line on why>
74
+ Unmatched people: <names that could not be resolved>
75
+ ```
76
+
77
+ ## Tips
78
+
79
+ - Tag every created task for traceability: `clickup tag add --task-id <id> --name "meeting-2026-07-04"`
80
+ - For a recurring meeting, offer to also create a summary page in a Doc: see the clickup-docs skill.
81
+ - If the notes mention blocking relationships ("can't start X until Y"), add them: `clickup dependency add --task-id <x> --depends-on <y>`
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: clickup-my-day
3
+ description: Builds a personal daily agenda from ClickUp showing what is due, overdue, in progress, and blocked, ordered by what to tackle first. Use when the user asks what they should work on, wants their day planned, or asks what is on their plate today.
4
+ license: MIT
5
+ disable-model-invocation: true
6
+ context: fork
7
+ agent: general-purpose
8
+ argument-hint: "[optional: a different person, or 'this week' for a wider window]"
9
+ allowed-tools: Bash(clickup *)
10
+ ---
11
+
12
+ # My Day
13
+
14
+ Answer one question well: what should I work on right now?
15
+
16
+ ## Understanding the Scope
17
+
18
+ Default subject is the authenticated user; `$ARGUMENTS` can name someone else or widen the window ("this week"). Resolve the current user by matching the email from `clickup auth status` against `clickup member list --format json`.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Pull my open tasks
23
+
24
+ ```bash
25
+ clickup task search --workspace-id <id> --assignee <user-id> --format json
26
+ ```
27
+
28
+ ### Step 2: Check the running timer
29
+
30
+ ```bash
31
+ clickup time running --workspace-id <id> --format json
32
+ ```
33
+
34
+ If a timer is running, its task leads the agenda ("you're mid-flight on this").
35
+
36
+ ### Step 3: Bucket and order
37
+
38
+ 1. **Overdue** - `due_date` in the past (oldest first)
39
+ 2. **Due today**
40
+ 3. **In progress** - started but not due yet; flag anything untouched for 7+ days
41
+ 4. **Blocked/waiting** - list what each is waiting on if dependencies exist
42
+ 5. **Up next** - highest priority undated tasks, max 3
43
+
44
+ Priority (urgent=1 to low=4) breaks ties inside each bucket.
45
+
46
+ ### Step 4: Present the agenda
47
+
48
+ ```
49
+ ## Your day - <date>
50
+
51
+ Now: <running timer task, if any>
52
+
53
+ 1. [OVERDUE] <task> - was due <date> (<list>)
54
+ 2. [TODAY] <task> - <priority>
55
+ 3. ...
56
+
57
+ Blocked (not actionable): <task> - waiting on <dependency>
58
+
59
+ Suggestion: <one sentence - e.g. "Clear the two overdue items before starting new work.">
60
+ ```
61
+
62
+ Keep it under ~10 items; summarize the rest as "and N more in the backlog".
63
+
64
+ ### Step 5: Offer actions
65
+
66
+ If the user reacts ("push the report to Friday", "start the timer on #2"):
67
+
68
+ ```bash
69
+ clickup task update <id> --due-date friday
70
+ clickup time start --workspace-id <id> --task-id <id>
71
+ ```
72
+
73
+ ## Tips
74
+
75
+ - Dates accept relative forms (`friday`, `+2d`) so rescheduling reads naturally.
76
+ - "This week" widens step 3's due window to the next 7 days but keeps the same buckets.
77
+ - For someone else's day, skip step 5's timer actions - never start timers for other people.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-project-setup
3
3
  description: Scaffolds a new project in ClickUp by creating a space, folders, lists, tags, and initial tasks. Use when the user wants to set up a new project, create a project structure, or bootstrap a workspace for a new initiative.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Create a complete project structure in ClickUp from scratch.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Workspace ID
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: clickup-release-notes
3
+ description: Generates release notes or a changelog from ClickUp tasks completed in a period, grouped by type and written for the chosen audience. Use when the user asks for release notes, a changelog, a "what shipped" summary, or wants completed work written up for customers or stakeholders.
4
+ license: MIT
5
+ disable-model-invocation: true
6
+ context: fork
7
+ agent: general-purpose
8
+ argument-hint: "[period and scope - e.g. 'last sprint for the mobile space', 'June, customer-facing']"
9
+ allowed-tools: Bash(clickup *), Write
10
+ ---
11
+
12
+ # Release Notes
13
+
14
+ Turn completed tasks into a changelog worth reading.
15
+
16
+ ## Understanding the Scope
17
+
18
+ From `$ARGUMENTS` determine: the period (default: since the last tag/release the user mentions, else last 14 days), the scope (workspace, space, or list), and the audience. Audience changes the writing: customer-facing notes describe benefits; internal notes can name tasks and people.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Pull completed tasks
23
+
24
+ ```bash
25
+ clickup task search --workspace-id <id> \
26
+ --include-closed \
27
+ --status "complete" --status "closed" --status "done" \
28
+ --date-updated-gt <period-start-ms> --date-updated-lt <period-end-ms> \
29
+ [--space-id <id>] --format json
30
+ ```
31
+
32
+ `--date-updated-*` filters take Unix ms; compute them from the period.
33
+
34
+ ### Step 2: Classify
35
+
36
+ Group by tags and task names into: **Features**, **Improvements**, **Fixes**, and **Internal** (refactors, chores - omit for customer-facing notes). Tags like `bug`, `feature`, `enhancement` decide the bucket; otherwise judge from the task name and description.
37
+
38
+ ### Step 3: Write the notes
39
+
40
+ Rewrite task names for the audience - "Fix login redirect on Safari" becomes "Fixed an issue where Safari users could be redirected to the wrong page after logging in." Never paste raw task IDs into customer-facing notes.
41
+
42
+ ```markdown
43
+ # Release Notes - <period>
44
+
45
+ ## New
46
+ - ...
47
+
48
+ ## Improved
49
+ - ...
50
+
51
+ ## Fixed
52
+ - ...
53
+ ```
54
+
55
+ For internal notes append task IDs and assignees for traceability.
56
+
57
+ ### Step 4: Deliver
58
+
59
+ Present the notes in chat. Offer to also:
60
+
61
+ ```bash
62
+ # Publish into a ClickUp Doc
63
+ clickup doc page-create --workspace-id <id> --doc-id <id> \
64
+ --name "Release Notes <date>" --content "$(cat notes.md)"
65
+
66
+ # Or save locally
67
+ ```
68
+
69
+ ## Tips
70
+
71
+ - If several statuses mean "done" in this workspace, check `clickup list statuses` conventions first rather than guessing.
72
+ - Exclude subtasks whose parent is already listed to avoid duplicate lines.
73
+ - A count line ("12 improvements shipped by 5 people") makes stakeholder notes land better.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-rollout
3
3
  description: Rolls out a saved process template in ClickUp by applying it to a target location, then configuring assignees, due dates, and custom fields. Use when the user says "start a new [project/process/sprint/onboarding]" or wants to kick off a repeatable workflow from a template.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Apply a saved ClickUp template and configure the resulting task, list, or folder for a new instance of the process.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Workflow
16
19
 
17
20
  ### Step 1: Find the template
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-spaces
3
3
  description: Navigates and manages the ClickUp hierarchy including workspaces, spaces, folders, and lists. Use when the user asks about project structure, wants to create spaces or lists, navigate the hierarchy, or find where tasks live.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup workspace *), Bash(clickup space *), Bash(clickup folder *), Bash(clickup list *), Bash(clickup schema workspace*), Bash(clickup schema space*), Bash(clickup schema folder*), Bash(clickup schema list*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-sprint-closeout
3
3
  description: Closes out a sprint by summarizing completion, carrying over incomplete tasks, and preparing retrospective data. Use when the user wants to end a sprint, close out an iteration, move unfinished work, or prepare for a retro.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  End a sprint cleanly: summarize what was done, carry over incomplete work, and gather data for a retrospective.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Sprint list ID
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-sprint-planning
3
3
  description: Plans a sprint by selecting tasks from backlog, assigning them, setting dates, and organizing into a sprint list. Use when the user wants to plan a sprint, set up an iteration, or pull work from backlog into a sprint.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Set up a new sprint by pulling tasks from the backlog, estimating, assigning, and organizing.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Workspace and space IDs known
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-standup
3
3
  description: Generates a daily standup summary from ClickUp covering what was done yesterday, what is planned today, and blockers. Use when the user asks for a standup report, daily update, or wants to know what they or their team worked on.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-task-triage
3
3
  description: Triages incoming ClickUp tasks by categorizing, prioritizing, assigning, and routing unprocessed tasks. Use when the user wants to triage tasks, sort through a backlog, prioritize incoming work, or clean up an inbox list.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Sort through incoming/unprocessed tasks: prioritize, assign, add tags, and move to the right lists.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Know the inbox/backlog list ID where new tasks land
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-tasks
3
3
  description: Creates, updates, searches, and manages ClickUp tasks, subtasks, checklists, dependencies, and attachments. Use when the user asks about tasks, wants to create or find work items, manage subtasks, add checklists, set dependencies, or upload files to tasks.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup task *), Bash(clickup checklist *), Bash(clickup dependency *), Bash(clickup relation *), Bash(clickup attachment *), Bash(clickup schema task*), Bash(clickup schema checklist*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-team-report
3
3
  description: Generates a status report for any team, department, or area of the business in ClickUp. Covers task progress, workload distribution, upcoming deadlines, and highlights. Use when the user asks for a department rundown, team status, what marketing is doing, operations update, or any team/department-specific report.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-templates
3
3
  description: Lists and applies ClickUp templates to create tasks, lists, and folders from saved process templates. Use when the user wants to roll out a repeatable process, create items from a template, or find what templates are available in the workspace.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup template *), Bash(clickup schema template*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-time
3
3
  description: Tracks time in ClickUp including logging entries, managing running timers, tagging time, and querying reports. Use when the user asks about time tracking, wants to start or stop a timer, log hours, check who is working on what, or audit time entries.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup time *), Bash(clickup schema time*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-time-audit
3
3
  description: Audits time tracking entries by checking utilization, finding missing entries, and comparing logged vs. estimated time. Use when the user wants to audit time, check billable hours, find unlogged work, or review team utilization.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -12,6 +13,8 @@ allowed-tools: Bash(clickup *)
12
13
 
13
14
  Audit time tracking data for accuracy, utilization, and completeness.
14
15
 
16
+ Interpret `$ARGUMENTS` as the scope (workspace, space, list, person, or time period as the sections below expect); when it is empty, ask or fall back to the configured workspace.
17
+
15
18
  ## Prerequisites
16
19
 
17
20
  - Workspace ID
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: clickup-timesheet-export
3
+ description: Exports ClickUp time entries for a period into a timesheet - CSV or markdown - with per-person and per-task totals and billable breakdowns. Use when the user asks for a timesheet, billable hours export, invoice backup, or wants hours summed for payroll or a client.
4
+ license: MIT
5
+ disable-model-invocation: true
6
+ context: fork
7
+ agent: general-purpose
8
+ argument-hint: "[period and scope - e.g. 'last week', 'June for Sarah', 'this month billable only']"
9
+ allowed-tools: Bash(clickup *), Write
10
+ ---
11
+
12
+ # Timesheet Export
13
+
14
+ Turn raw time entries into a clean timesheet with totals.
15
+
16
+ ## Understanding the Scope
17
+
18
+ From `$ARGUMENTS` determine: the period (default: last 7 days), who (default: everyone), and whether to include only billable time. Resolve people via `clickup member list --format json`.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Pull time entries
23
+
24
+ ```bash
25
+ clickup time list --workspace-id <id> \
26
+ --start <period-start> --end <period-end> \
27
+ [--assignee <user-id>] --format json
28
+ ```
29
+
30
+ `--start`/`--end` accept ISO dates (`2026-06-01`), relative forms (`-30d`), or Unix timestamps. Entry durations are milliseconds.
31
+
32
+ ### Step 2: Aggregate
33
+
34
+ Compute from the JSON:
35
+
36
+ - Hours per person per day (duration ms / 3,600,000, round to 2 decimals)
37
+ - Hours per task (join `task.id` to task names from the entries)
38
+ - Billable vs non-billable split (the `billable` field)
39
+ - Grand totals
40
+
41
+ ### Step 3: Write the export
42
+
43
+ CSV for spreadsheets (default when the user says export/invoice):
44
+
45
+ ```csv
46
+ date,person,task,description,hours,billable
47
+ 2026-06-30,Sarah,Login bug fix,Safari redirect,2.50,true
48
+ ```
49
+
50
+ Save with the Write tool as `timesheet-<start>-<end>.csv` and tell the user the path. For a chat answer, use a markdown table plus totals instead.
51
+
52
+ ### Step 4: Summarize
53
+
54
+ ```
55
+ Timesheet <start> to <end>
56
+ - Total: N hours (M billable / K non-billable)
57
+ - By person: Sarah 32.5h, Tom 28.0h, ...
58
+ - Top tasks: <task> 12.5h, ...
59
+ Flagged: entries with no task attached, running timers still open
60
+ ```
61
+
62
+ ## Tips
63
+
64
+ - Entries with a null `end` are running timers; exclude them from totals and flag them.
65
+ - Cross-check suspicious days (over 12h per person) rather than silently exporting them.
66
+ - For a recurring client invoice, filter to the client's space via the task IDs' locations.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-users
3
3
  description: Manages ClickUp workspace users, groups, guests, roles, and members. Use when the user asks about team members, wants to invite users, manage groups, grant guest access, check permissions, resolve names to IDs, or see who is assigned to what.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup user *), Bash(clickup group *), Bash(clickup guest *), Bash(clickup role *), Bash(clickup member *), Bash(clickup workspace members), Bash(clickup schema user*), Bash(clickup schema group*), Bash(clickup schema guest*), Bash(clickup schema member*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-views
3
3
  description: Creates and manages ClickUp views including board, list, Gantt, calendar, and workload views. Use when the user asks about views, wants to create a kanban board, see tasks through a specific view, or configure view settings.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup view *), Bash(clickup schema view*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-webhooks
3
3
  description: Registers and manages ClickUp webhooks for real-time event notifications. Use when the user asks about webhooks, wants to set up notifications for task changes, or needs to integrate ClickUp events with external services.
4
+ license: MIT
4
5
  allowed-tools: Bash(clickup webhook *), Bash(clickup schema webhook*)
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: clickup-weekly-review
3
3
  description: Generates a weekly progress report from ClickUp, scoped to any team, department, space, or workspace. Summarizes completed tasks, in-progress work, blockers, and time logged. Use when the user asks for a weekly update, progress report, team summary, department rundown, or wants to know what happened this week.
4
+ license: MIT
4
5
  disable-model-invocation: true
5
6
  context: fork
6
7
  agent: general-purpose
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: clickup-workspace-audit
3
+ description: Runs a hygiene audit over a ClickUp workspace or space finding unassigned tasks, missing due dates, stale in-progress work, overdue items, and overloaded assignees. Use when the user asks to audit, clean up, or health-check their workspace, or asks what is falling through the cracks.
4
+ license: MIT
5
+ disable-model-invocation: true
6
+ context: fork
7
+ agent: general-purpose
8
+ argument-hint: "[scope - workspace, space name, or list name; optionally 'and fix']"
9
+ allowed-tools: Bash(clickup *)
10
+ ---
11
+
12
+ # Workspace Audit
13
+
14
+ Find hygiene problems across active tasks and report them with recommended fixes.
15
+
16
+ ## Understanding the Scope
17
+
18
+ Interpret `$ARGUMENTS`: no scope means the whole workspace; a space or list name narrows the sweep (`--space-id` / `--list-id` filters on `task search`). If the user said "and fix" (or similar), offer to apply the recommended fixes after the report; never modify tasks without that instruction.
19
+
20
+ ## Workflow
21
+
22
+ ### Step 1: Pull the active task set
23
+
24
+ ```bash
25
+ clickup task search --workspace-id <id> --format json
26
+ ```
27
+
28
+ Server-side filters cannot express "no assignee" or "no due date", so fetch active tasks and inspect the JSON client-side. For large workspaces sweep one space at a time (`--space-id`).
29
+
30
+ ### Step 2: Detect problems
31
+
32
+ Classify each task into any of:
33
+
34
+ | Check | Condition |
35
+ |-------|-----------|
36
+ | Unassigned | `assignees` is empty |
37
+ | No due date | `due_date` is null |
38
+ | Overdue | `due_date` in the past, status not closed |
39
+ | Stale | status is in progress but `date_updated` older than 14 days |
40
+ | Overloaded assignee | one person holds a disproportionate share of open tasks (flag the top offenders) |
41
+
42
+ ### Step 3: Check for blocked chains (optional, if dependencies are used)
43
+
44
+ Tasks with `blocked` or `waiting` status whose blockers are themselves overdue deserve a callout.
45
+
46
+ ### Step 4: Report
47
+
48
+ ```
49
+ ## Workspace Audit: <scope> (<date>)
50
+
51
+ Overall: N active tasks, M flagged (X%)
52
+
53
+ ### Overdue (worst first)
54
+ - <task> - due <date>, assignee <name> (<id>)
55
+
56
+ ### Unassigned / No due date / Stale
57
+ - ...
58
+
59
+ ### Load
60
+ - <name>: N open tasks (team median: M)
61
+
62
+ ### Recommended fixes
63
+ 1. ...
64
+ ```
65
+
66
+ ### Step 5: Apply fixes (only when asked)
67
+
68
+ ```bash
69
+ clickup task update <id> --assignee-add <user-id> # assign
70
+ clickup task update <id> --due-date friday # set due date
71
+ clickup task update <id> --status "backlog" # demote stale work honestly
72
+ ```
73
+
74
+ Confirm the fix list with the user before running it; report each change as it lands.
75
+
76
+ ## Tips
77
+
78
+ - `--include-closed` stays off: the audit is about active work.
79
+ - Dates accept relative forms (`friday`, `+1w`) so fixes read naturally.
80
+ - Re-run after fixes and show the before/after flagged counts.