@krodak/clickup-cli 0.20.0 → 1.0.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/plugin.json +2 -2
- package/README.md +120 -106
- package/dist/index.js +241 -119
- package/package.json +1 -3
- package/skills/clickup-cli/SKILL.md +151 -154
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clickup-cli",
|
|
3
|
-
"description": "ClickUp CLI skills for managing tasks, sprints, comments, checklists, custom fields, tags, and time tracking via the
|
|
4
|
-
"version": "0.
|
|
3
|
+
"description": "ClickUp CLI skills for managing tasks, sprints, comments, checklists, custom fields, tags, and time tracking via the cup command",
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Krzysztof Rodak"
|
|
7
7
|
},
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# cup - ClickUp CLI
|
|
2
2
|
|
|
3
3
|
> A ClickUp CLI built for AI agents that also works well for humans. Outputs Markdown when piped (optimized for AI context windows), interactive tables when run in a terminal.
|
|
4
4
|
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
[](https://github.com/krodak/clickup-cli/actions/workflows/ci.yml)
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
npm install -g @krodak/clickup-cli &&
|
|
11
|
+
npm install -g @krodak/clickup-cli && cup init
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
`cup` is the binary name. The previous `cu` name was retired in v0.21.0 to avoid conflict with the Unix [cu(1)](<https://en.wikipedia.org/wiki/Cu_(Unix_utility)>) utility.
|
|
15
15
|
|
|
16
16
|
## Talk to your agent
|
|
17
17
|
|
|
@@ -27,7 +27,7 @@ Install the CLI, add the skill file to your agent, and it works with ClickUp. No
|
|
|
27
27
|
|
|
28
28
|
> **"Update the description with your findings and flag blockers in a comment."**
|
|
29
29
|
|
|
30
|
-
The agent reads the skill file, picks the right `
|
|
30
|
+
The agent reads the skill file, picks the right `cup` commands, and handles everything. You don't need to learn the CLI - the agent does.
|
|
31
31
|
|
|
32
32
|
## Install
|
|
33
33
|
|
|
@@ -38,7 +38,7 @@ You need Node 22+ and a ClickUp personal API token (`pk_...` from [ClickUp Setti
|
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
npm install -g @krodak/clickup-cli
|
|
41
|
-
|
|
41
|
+
cup init
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
</details>
|
|
@@ -49,7 +49,7 @@ cu init
|
|
|
49
49
|
```bash
|
|
50
50
|
brew tap krodak/tap
|
|
51
51
|
brew install clickup-cli
|
|
52
|
-
|
|
52
|
+
cup init
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
</details>
|
|
@@ -130,148 +130,161 @@ Status: :white_check_mark: implemented | :construction: planned | :no_entry_sign
|
|
|
130
130
|
|
|
131
131
|
### Tasks
|
|
132
132
|
|
|
133
|
-
| Feature | Command
|
|
134
|
-
| -------------------- |
|
|
135
|
-
| List my tasks | `
|
|
136
|
-
| Get task details | `
|
|
137
|
-
| Create task | `
|
|
138
|
-
| Update task | `
|
|
139
|
-
| Delete task | `
|
|
140
|
-
| Search tasks | `
|
|
141
|
-
| Open in browser | `
|
|
142
|
-
| List subtasks | `
|
|
143
|
-
| Assign / unassign | `
|
|
144
|
-
| Duplicate task | `
|
|
145
|
-
| Create from template | `
|
|
146
|
-
| Bulk operations | `
|
|
133
|
+
| Feature | Command | Status |
|
|
134
|
+
| -------------------- | ----------------------- | ------------------ |
|
|
135
|
+
| List my tasks | `cup tasks` | :white_check_mark: |
|
|
136
|
+
| Get task details | `cup task <id>` | :white_check_mark: |
|
|
137
|
+
| Create task | `cup create` | :white_check_mark: |
|
|
138
|
+
| Update task | `cup update <id>` | :white_check_mark: |
|
|
139
|
+
| Delete task | `cup delete <id>` | :white_check_mark: |
|
|
140
|
+
| Search tasks | `cup search <query>` | :white_check_mark: |
|
|
141
|
+
| Open in browser | `cup open <query>` | :white_check_mark: |
|
|
142
|
+
| List subtasks | `cup subtasks <id>` | :white_check_mark: |
|
|
143
|
+
| Assign / unassign | `cup assign <id>` | :white_check_mark: |
|
|
144
|
+
| Duplicate task | `cup duplicate <id>` | :construction: |
|
|
145
|
+
| Create from template | `cup create --template` | :construction: |
|
|
146
|
+
| Bulk operations | `cup bulk` | :construction: |
|
|
147
147
|
|
|
148
148
|
### Dependencies & Relations
|
|
149
149
|
|
|
150
|
-
| Feature | Command
|
|
151
|
-
| -------------------- |
|
|
152
|
-
| Add dependency | `
|
|
153
|
-
| Remove dependency | `
|
|
154
|
-
| Add/remove task link | `
|
|
150
|
+
| Feature | Command | Status |
|
|
151
|
+
| -------------------- | -------------------------- | ------------------ |
|
|
152
|
+
| Add dependency | `cup depend <id>` | :white_check_mark: |
|
|
153
|
+
| Remove dependency | `cup depend <id> --remove` | :white_check_mark: |
|
|
154
|
+
| Add/remove task link | `cup link <id> <linksTo>` | :white_check_mark: |
|
|
155
155
|
|
|
156
156
|
### Multi-list
|
|
157
157
|
|
|
158
|
-
| Feature | Command
|
|
159
|
-
| ---------------- |
|
|
160
|
-
| Add task to list | `
|
|
161
|
-
| Remove from list | `
|
|
158
|
+
| Feature | Command | Status |
|
|
159
|
+
| ---------------- | ------------------------ | ------------------ |
|
|
160
|
+
| Add task to list | `cup move <id> --add` | :white_check_mark: |
|
|
161
|
+
| Remove from list | `cup move <id> --remove` | :white_check_mark: |
|
|
162
162
|
|
|
163
163
|
### Sprints & Planning
|
|
164
164
|
|
|
165
|
-
| Feature | Command
|
|
166
|
-
| ------------------------ |
|
|
167
|
-
| Active sprint tasks | `
|
|
168
|
-
| List all sprints | `
|
|
169
|
-
| Assigned tasks by status | `
|
|
170
|
-
| Standup summary | `
|
|
171
|
-
| Overdue tasks | `
|
|
172
|
-
| Recently updated | `
|
|
165
|
+
| Feature | Command | Status |
|
|
166
|
+
| ------------------------ | ----------------------- | ------------------ |
|
|
167
|
+
| Active sprint tasks | `cup sprint [--folder]` | :white_check_mark: |
|
|
168
|
+
| List all sprints | `cup sprints` | :white_check_mark: |
|
|
169
|
+
| Assigned tasks by status | `cup assigned` | :white_check_mark: |
|
|
170
|
+
| Standup summary | `cup summary` | :white_check_mark: |
|
|
171
|
+
| Overdue tasks | `cup overdue` | :white_check_mark: |
|
|
172
|
+
| Recently updated | `cup inbox` | :white_check_mark: |
|
|
173
173
|
|
|
174
174
|
### Comments
|
|
175
175
|
|
|
176
|
-
| Feature | Command
|
|
177
|
-
| ------------------------ |
|
|
178
|
-
| List comments | `
|
|
179
|
-
| Post comment | `
|
|
180
|
-
| Edit comment | `
|
|
181
|
-
| Task + comments combined | `
|
|
182
|
-
| Delete comment | `
|
|
183
|
-
| Threaded replies | `
|
|
176
|
+
| Feature | Command | Status |
|
|
177
|
+
| ------------------------ | ------------------------------------- | ------------------ |
|
|
178
|
+
| List comments | `cup comments <id>` | :white_check_mark: |
|
|
179
|
+
| Post comment | `cup comment <id>` | :white_check_mark: |
|
|
180
|
+
| Edit comment | `cup comment-edit <id>` | :white_check_mark: |
|
|
181
|
+
| Task + comments combined | `cup activity <id>` | :white_check_mark: |
|
|
182
|
+
| Delete comment | `cup comment-delete <id>` | :white_check_mark: |
|
|
183
|
+
| Threaded replies | `cup replies <id>` / `cup reply <id>` | :white_check_mark: |
|
|
184
184
|
|
|
185
185
|
### Checklists
|
|
186
186
|
|
|
187
|
-
| Feature | Command
|
|
188
|
-
| ---------------- |
|
|
189
|
-
| View checklists | `
|
|
190
|
-
| Create checklist | `
|
|
191
|
-
| Delete checklist | `
|
|
192
|
-
| Add item | `
|
|
193
|
-
| Edit item | `
|
|
194
|
-
| Delete item | `
|
|
187
|
+
| Feature | Command | Status |
|
|
188
|
+
| ---------------- | ----------------------------------------- | ------------------ |
|
|
189
|
+
| View checklists | `cup checklist view <id>` | :white_check_mark: |
|
|
190
|
+
| Create checklist | `cup checklist create <id> <name>` | :white_check_mark: |
|
|
191
|
+
| Delete checklist | `cup checklist delete <id>` | :white_check_mark: |
|
|
192
|
+
| Add item | `cup checklist add-item <id> <name>` | :white_check_mark: |
|
|
193
|
+
| Edit item | `cup checklist edit-item <id> <itemId>` | :white_check_mark: |
|
|
194
|
+
| Delete item | `cup checklist delete-item <id> <itemId>` | :white_check_mark: |
|
|
195
195
|
|
|
196
196
|
### Custom Fields
|
|
197
197
|
|
|
198
|
-
| Feature | Command
|
|
199
|
-
| --------------------- |
|
|
200
|
-
| Set field value | `
|
|
201
|
-
| Remove field value | `
|
|
202
|
-
| List available fields | `
|
|
198
|
+
| Feature | Command | Status |
|
|
199
|
+
| --------------------- | ------------------------- | ------------------ |
|
|
200
|
+
| Set field value | `cup field <id> --set` | :white_check_mark: |
|
|
201
|
+
| Remove field value | `cup field <id> --remove` | :white_check_mark: |
|
|
202
|
+
| List available fields | `cup fields <listId>` | :construction: |
|
|
203
203
|
|
|
204
204
|
### Tags
|
|
205
205
|
|
|
206
|
-
| Feature | Command
|
|
207
|
-
| ----------------------- |
|
|
208
|
-
| Add/remove tag on task | `
|
|
209
|
-
| List space tags | `
|
|
210
|
-
| Create/delete space tag |
|
|
206
|
+
| Feature | Command | Status |
|
|
207
|
+
| ----------------------- | -------------------- | ------------------ |
|
|
208
|
+
| Add/remove tag on task | `cup tag <id>` | :white_check_mark: |
|
|
209
|
+
| List space tags | `cup tags <spaceId>` | :construction: |
|
|
210
|
+
| Create/delete space tag | | :construction: |
|
|
211
211
|
|
|
212
212
|
### Time Tracking
|
|
213
213
|
|
|
214
|
-
| Feature | Command
|
|
215
|
-
| -------------- |
|
|
216
|
-
| Start timer | `
|
|
217
|
-
| Stop timer | `
|
|
218
|
-
| Timer status | `
|
|
219
|
-
| Log time entry | `
|
|
220
|
-
| List entries | `
|
|
221
|
-
| Update entry | `
|
|
222
|
-
| Delete entry | `
|
|
214
|
+
| Feature | Command | Status |
|
|
215
|
+
| -------------- | ------------------------------ | ------------------ |
|
|
216
|
+
| Start timer | `cup time start <id>` | :white_check_mark: |
|
|
217
|
+
| Stop timer | `cup time stop` | :white_check_mark: |
|
|
218
|
+
| Timer status | `cup time status` | :white_check_mark: |
|
|
219
|
+
| Log time entry | `cup time log <id> <duration>` | :white_check_mark: |
|
|
220
|
+
| List entries | `cup time list` | :white_check_mark: |
|
|
221
|
+
| Update entry | `cup time update <id>` | :construction: |
|
|
222
|
+
| Delete entry | `cup time delete <id>` | :construction: |
|
|
223
223
|
|
|
224
224
|
### Workspace
|
|
225
225
|
|
|
226
|
-
| Feature | Command
|
|
227
|
-
| ------------ |
|
|
228
|
-
| List spaces | `
|
|
229
|
-
| List lists | `
|
|
230
|
-
| Check auth | `
|
|
231
|
-
| List folders | `
|
|
232
|
-
| List members | `
|
|
226
|
+
| Feature | Command | Status |
|
|
227
|
+
| ------------ | ----------------------- | ------------------ |
|
|
228
|
+
| List spaces | `cup spaces` | :white_check_mark: |
|
|
229
|
+
| List lists | `cup lists <spaceId>` | :white_check_mark: |
|
|
230
|
+
| Check auth | `cup auth` | :white_check_mark: |
|
|
231
|
+
| List folders | `cup folders <spaceId>` | :construction: |
|
|
232
|
+
| List members | `cup members` | :construction: |
|
|
233
233
|
|
|
234
234
|
### Goals & Key Results
|
|
235
235
|
|
|
236
|
-
| Feature | Command
|
|
237
|
-
| ------------------ |
|
|
238
|
-
| List goals | `
|
|
239
|
-
| Create/update goal |
|
|
240
|
-
| Key results CRUD |
|
|
236
|
+
| Feature | Command | Status |
|
|
237
|
+
| ------------------ | ----------- | -------------- |
|
|
238
|
+
| List goals | `cup goals` | :construction: |
|
|
239
|
+
| Create/update goal | | :construction: |
|
|
240
|
+
| Key results CRUD | | :construction: |
|
|
241
241
|
|
|
242
242
|
### Docs
|
|
243
243
|
|
|
244
|
-
| Feature | Command
|
|
245
|
-
| ----------------- |
|
|
246
|
-
| Search docs | `
|
|
247
|
-
| View page content | `
|
|
244
|
+
| Feature | Command | Status |
|
|
245
|
+
| ----------------- | ------------------ | -------------- |
|
|
246
|
+
| Search docs | `cup docs <query>` | :construction: |
|
|
247
|
+
| View page content | `cup doc <id>` | :construction: |
|
|
248
248
|
|
|
249
249
|
### Attachments
|
|
250
250
|
|
|
251
|
-
| Feature | Command
|
|
252
|
-
| ---------------- |
|
|
253
|
-
| Upload file | `
|
|
254
|
-
| List attachments | shown inline in `
|
|
251
|
+
| Feature | Command | Status |
|
|
252
|
+
| ---------------- | -------------------------- | ------------------ |
|
|
253
|
+
| Upload file | `cup attach <id> <file>` | :white_check_mark: |
|
|
254
|
+
| List attachments | shown inline in `cup task` | :white_check_mark: |
|
|
255
255
|
|
|
256
256
|
### :no_entry_sign: Won't add
|
|
257
257
|
|
|
258
258
|
| Feature | Why |
|
|
259
259
|
| --------------------- | --------------------------------------------------------------------------- |
|
|
260
260
|
| Webhooks | Server-side. A CLI can't listen for events. |
|
|
261
|
-
| OAuth flow | `
|
|
261
|
+
| OAuth flow | `cup init` already handles auth with API tokens. |
|
|
262
262
|
| Guest/ACL | Enterprise admin. Not what you reach for in a terminal. |
|
|
263
263
|
| Chat/DM | Use the ClickUp app. Chat doesn't belong in a CLI. |
|
|
264
264
|
| Audit logs | Enterprise admin. |
|
|
265
265
|
| User/group management | Too destructive for a CLI - removing someone from a workspace is permanent. |
|
|
266
266
|
| View CRUD | Views are visual layouts. Configure them in the UI. |
|
|
267
267
|
|
|
268
|
+
### API Limitations
|
|
269
|
+
|
|
270
|
+
These features exist in the ClickUp UI but aren't possible through the API:
|
|
271
|
+
|
|
272
|
+
| Feature | Limitation |
|
|
273
|
+
| ------------------------- | ---------------------------------------------------------------------------------- |
|
|
274
|
+
| Comment attachments | API only supports task-level attachments (`cup attach`), not files within comments |
|
|
275
|
+
| @mention individual users | API provides `--notify-all` but no way to target specific users via @syntax |
|
|
276
|
+
| Comment reactions | No API endpoint for adding or viewing reactions |
|
|
277
|
+
| ClickUp Brain / AI | No public API |
|
|
278
|
+
| In-comment checklists | Only task-level checklists are supported via API |
|
|
279
|
+
| Voice notes / Video | Recording is a UI-only feature |
|
|
280
|
+
|
|
268
281
|
### Setup
|
|
269
282
|
|
|
270
|
-
| Feature | Command
|
|
271
|
-
| ----------------- |
|
|
272
|
-
| First-time setup | `
|
|
273
|
-
| Get/set config | `
|
|
274
|
-
| Shell completions | `
|
|
283
|
+
| Feature | Command | Status |
|
|
284
|
+
| ----------------- | ------------------------ | ------------------ |
|
|
285
|
+
| First-time setup | `cup init` | :white_check_mark: |
|
|
286
|
+
| Get/set config | `cup config` | :white_check_mark: |
|
|
287
|
+
| Shell completions | `cup completion <shell>` | :white_check_mark: |
|
|
275
288
|
|
|
276
289
|
## Output Modes
|
|
277
290
|
|
|
@@ -286,12 +299,13 @@ Most commands scope to your assigned tasks by default - keeping output small and
|
|
|
286
299
|
|
|
287
300
|
### Config file
|
|
288
301
|
|
|
289
|
-
`~/.config/
|
|
302
|
+
`~/.config/cup/config.json` (or `$XDG_CONFIG_HOME/cup/config.json`):
|
|
290
303
|
|
|
291
304
|
```json
|
|
292
305
|
{
|
|
293
306
|
"apiToken": "pk_...",
|
|
294
|
-
"teamId": "12345678"
|
|
307
|
+
"teamId": "12345678",
|
|
308
|
+
"sprintFolderId": "optional - folder ID to skip auto-detection"
|
|
295
309
|
}
|
|
296
310
|
```
|
|
297
311
|
|
|
@@ -314,15 +328,15 @@ ClickUp workspaces can configure custom task IDs with a prefix per space (e.g.,
|
|
|
314
328
|
All commands that accept task IDs work with both native IDs and custom IDs:
|
|
315
329
|
|
|
316
330
|
```bash
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
331
|
+
cup task PROJ-123
|
|
332
|
+
cup update DEV-42 --status done
|
|
333
|
+
cup comment PROJ-456 -m "Fixed in latest commit"
|
|
334
|
+
cup subtasks DEV-100
|
|
321
335
|
```
|
|
322
336
|
|
|
323
|
-
Custom ID resolution uses the `teamId` from your config, which is required (`
|
|
337
|
+
Custom ID resolution uses the `teamId` from your config, which is required (`cup init` sets it up).
|
|
324
338
|
|
|
325
|
-
**Task links with custom IDs:** The `
|
|
339
|
+
**Task links with custom IDs:** The `cup link` command passes both task IDs in a single API request. When both IDs are custom, this works correctly. However, mixing custom and native IDs in a single link command may not work as expected because the ClickUp API applies the `custom_task_ids` flag to all IDs in the request.
|
|
326
340
|
|
|
327
341
|
## Why a CLI and not MCP?
|
|
328
342
|
|