@krodak/clickup-cli 0.21.0 → 1.1.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 +1 -1
- package/README.md +22 -18
- package/dist/index.js +482 -117
- package/package.json +1 -2
- package/skills/clickup-cli/SKILL.md +97 -72
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@krodak/clickup-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "ClickUp CLI for AI agents and humans",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@eslint/js": "^10.0.1",
|
|
55
|
-
"@inquirer/testing": "^3.3.0",
|
|
56
55
|
"@types/node": "^25.3.0",
|
|
57
56
|
"dotenv": "^17.3.1",
|
|
58
57
|
"eslint": "^10.0.2",
|
|
@@ -11,7 +11,7 @@ Keywords: ClickUp, task management, sprint, project management, agile, backlog,
|
|
|
11
11
|
|
|
12
12
|
## Setup
|
|
13
13
|
|
|
14
|
-
Config at `~/.config/
|
|
14
|
+
Config at `~/.config/cup/config.json` with `apiToken` and `teamId`. Optional: `sprintFolderId` to pin sprint detection to a specific folder. Run `cup init` to set up interactively.
|
|
15
15
|
|
|
16
16
|
Environment variables `CU_API_TOKEN` and `CU_TEAM_ID` override config file when both are set.
|
|
17
17
|
|
|
@@ -38,7 +38,7 @@ All commands support `--help` for full flag details.
|
|
|
38
38
|
| --------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
|
|
39
39
|
| `cup tasks [--status s] [--name q] [--type t] [--list id] [--space id] [--include-closed] [--json]` | My tasks (all types, or filter with --type) |
|
|
40
40
|
| `cup assigned [--status s] [--include-closed] [--json]` | All my tasks grouped by status |
|
|
41
|
-
| `cup sprint [--status s] [--space nameOrId] [--include-closed] [--json]`
|
|
41
|
+
| `cup sprint [--status s] [--space nameOrId] [--folder id] [--include-closed] [--json]` | Tasks in active sprint (auto-detected) |
|
|
42
42
|
| `cup sprints [--space nameOrId] [--json]` | List all sprints (marks active with \*) |
|
|
43
43
|
| `cup search <query> [--status s] [--include-closed] [--json]` | Search my tasks by name (multi-word, fuzzy status) |
|
|
44
44
|
| `cup task <id> [--json]` | Single task details |
|
|
@@ -52,82 +52,92 @@ All commands support `--help` for full flag details.
|
|
|
52
52
|
| `cup lists <spaceId> [--name partial] [--json]` | Lists in a space (including folder lists) |
|
|
53
53
|
| `cup open <query> [--json]` | Open task in browser by ID or name |
|
|
54
54
|
| `cup auth [--json]` | Check authentication status |
|
|
55
|
+
| `cup docs [query] [--json]` | List workspace docs (optionally filter by name) |
|
|
56
|
+
| `cup doc <docId> <pageId> [--json]` | View a doc page (markdown content) |
|
|
55
57
|
|
|
56
58
|
### Write
|
|
57
59
|
|
|
58
|
-
| Command | What it does
|
|
59
|
-
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
60
|
-
| `cup update <id> [-n name] [-d desc] [-s status] [--priority p] [--due-date d] [--time-estimate t] [--assignee id\|me] [--parent id] [--json]` | Update task fields (desc supports markdown)
|
|
61
|
-
| `cup create -n name [-l listId] [-p parentId] [-d desc] [-s status] [--priority p] [--due-date d] [--time-estimate t] [--assignee id\|me] [--tags t] [--custom-item-id n] [--json]` | Create task (desc supports markdown)
|
|
62
|
-
| `cup comment <id> -m text [--notify-all] [--json]` | Post comment on task
|
|
63
|
-
| `cup comment-edit <commentId> -m text [--resolved] [--unresolved] [--json]` | Edit an existing comment
|
|
64
|
-
| `cup assign <id> [--to userId\|me] [--remove userId\|me] [--json]` | Assign/unassign users
|
|
65
|
-
| `cup depend <id> [--on taskId] [--blocks taskId] [--remove] [--json]` | Add/remove task dependencies
|
|
66
|
-
| `cup move <id> [--to listId] [--remove listId] [--json]` | Add/remove task from lists
|
|
67
|
-
| `cup field <id> [--set "Name" value] [--remove "Name"] [--json]` | Set/remove custom field values
|
|
68
|
-
| `cup delete <id> [--confirm] [--json]` | Delete a task (DESTRUCTIVE, irreversible)
|
|
69
|
-
| `cup tag <id> [--add tags] [--remove tags] [--json]` | Add/remove tags on a task
|
|
70
|
-
| `cup checklist view <id> [--json]` | View checklists on a task
|
|
71
|
-
| `cup checklist create <id> <name> [--json]` | Create a checklist
|
|
72
|
-
| `cup checklist delete <checklistId> [--json]` | Delete a checklist
|
|
73
|
-
| `cup checklist add-item <checklistId> <name> [--json]` | Add item to a checklist
|
|
74
|
-
| `cup checklist edit-item <checklistId> <itemId> [--name n] [--resolved] [--unresolved] [--assignee id] [--json]` | Edit a checklist item
|
|
75
|
-
| `cup checklist delete-item <checklistId> <itemId> [--json]` | Delete a checklist item
|
|
76
|
-
| `cup comment-delete <commentId> [--json]` | Delete a comment
|
|
77
|
-
| `cup replies <commentId> [--json]` | List threaded replies on a comment
|
|
78
|
-
| `cup reply <commentId> -m text [--notify-all] [--json]` | Reply to a comment
|
|
79
|
-
| `cup link <taskId> <linksTo> [--remove] [--json]` | Add or remove link between tasks
|
|
80
|
-
| `cup attach <taskId> <filePath> [--json]` | Upload file attachment to a task
|
|
81
|
-
| `cup time start <taskId> [-d desc] [--json]` | Start tracking time on a task
|
|
82
|
-
| `cup time stop [--json]` | Stop the running timer
|
|
83
|
-
| `cup time status [--json]` | Show currently running timer
|
|
84
|
-
| `cup time log <taskId> <duration> [-d desc] [--json]` | Log manual time entry (e.g. "2h", "30m")
|
|
85
|
-
| `cup time list [--days n] [--task id] [--json]` | List recent time entries
|
|
86
|
-
| `cup
|
|
87
|
-
| `cup
|
|
60
|
+
| Command | What it does |
|
|
61
|
+
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
|
62
|
+
| `cup update <id> [-n name] [-d desc] [-s status] [--priority p] [--due-date d] [--time-estimate t] [--assignee id\|me] [--parent id] [--json]` | Update task fields (desc supports markdown) |
|
|
63
|
+
| `cup create -n name [-l listId] [-p parentId] [-d desc] [-s status] [--priority p] [--due-date d] [--time-estimate t] [--assignee id\|me] [--tags t] [--custom-item-id n] [--json]` | Create task (desc supports markdown) |
|
|
64
|
+
| `cup comment <id> -m text [--notify-all] [--json]` | Post comment on task |
|
|
65
|
+
| `cup comment-edit <commentId> -m text [--resolved] [--unresolved] [--json]` | Edit an existing comment |
|
|
66
|
+
| `cup assign <id> [--to userId\|me] [--remove userId\|me] [--json]` | Assign/unassign users |
|
|
67
|
+
| `cup depend <id> [--on taskId] [--blocks taskId] [--remove] [--json]` | Add/remove task dependencies |
|
|
68
|
+
| `cup move <id> [--to listId] [--remove listId] [--json]` | Add/remove task from lists |
|
|
69
|
+
| `cup field <id> [--set "Name" value] [--remove "Name"] [--json]` | Set/remove custom field values |
|
|
70
|
+
| `cup delete <id> [--confirm] [--json]` | Delete a task (DESTRUCTIVE, irreversible) |
|
|
71
|
+
| `cup tag <id> [--add tags] [--remove tags] [--json]` | Add/remove tags on a task |
|
|
72
|
+
| `cup checklist view <id> [--json]` | View checklists on a task |
|
|
73
|
+
| `cup checklist create <id> <name> [--json]` | Create a checklist |
|
|
74
|
+
| `cup checklist delete <checklistId> [--json]` | Delete a checklist |
|
|
75
|
+
| `cup checklist add-item <checklistId> <name> [--json]` | Add item to a checklist |
|
|
76
|
+
| `cup checklist edit-item <checklistId> <itemId> [--name n] [--resolved] [--unresolved] [--assignee id] [--json]` | Edit a checklist item |
|
|
77
|
+
| `cup checklist delete-item <checklistId> <itemId> [--json]` | Delete a checklist item |
|
|
78
|
+
| `cup comment-delete <commentId> [--json]` | Delete a comment |
|
|
79
|
+
| `cup replies <commentId> [--json]` | List threaded replies on a comment |
|
|
80
|
+
| `cup reply <commentId> -m text [--notify-all] [--json]` | Reply to a comment |
|
|
81
|
+
| `cup link <taskId> <linksTo> [--remove] [--json]` | Add or remove link between tasks |
|
|
82
|
+
| `cup attach <taskId> <filePath> [--json]` | Upload file attachment to a task |
|
|
83
|
+
| `cup time start <taskId> [-d desc] [--json]` | Start tracking time on a task |
|
|
84
|
+
| `cup time stop [--json]` | Stop the running timer |
|
|
85
|
+
| `cup time status [--json]` | Show currently running timer |
|
|
86
|
+
| `cup time log <taskId> <duration> [-d desc] [--json]` | Log manual time entry (e.g. "2h", "30m") |
|
|
87
|
+
| `cup time list [--days n] [--task id] [--json]` | List recent time entries |
|
|
88
|
+
| `cup doc-create <title> [-c content] [--json]` | Create a new doc |
|
|
89
|
+
| `cup doc-page-create <docId> <name> [-c content] [--parent-page pageId] [--json]` | Create a page in a doc |
|
|
90
|
+
| `cup doc-page-edit <docId> <pageId> [--name text] [-c content] [--json]` | Edit a doc page |
|
|
91
|
+
| `cup config get <key>` / `cup config set <key> <value>` / `cup config path` | Manage CLI config (keys: apiToken, teamId, sprintFolderId) |
|
|
92
|
+
| `cup completion <shell>` | Shell completions (bash/zsh/fish) |
|
|
88
93
|
|
|
89
94
|
## Quick Reference
|
|
90
95
|
|
|
91
|
-
| Topic | Detail
|
|
92
|
-
| --------------------------- |
|
|
93
|
-
| Task IDs | Native (`abc123def`) or custom (`PROJ-123`). Custom IDs auto-detected by `PREFIX-DIGITS` format
|
|
94
|
-
| `--type` | Filter by task type: `task` (regular), or custom type name/ID (e.g. `initiative`, `Bug`)
|
|
95
|
-
| `--list` on create | Optional when `--parent` is given (auto-detected)
|
|
96
|
-
| `--status` | Fuzzy matching: exact > starts-with > contains. Prints match to stderr.
|
|
97
|
-
| `--priority` | Names (`urgent`, `high`, `normal`, `low`) or numbers (1-4)
|
|
98
|
-
| `--due-date` | `YYYY-MM-DD` format
|
|
99
|
-
| `--assignee` | User ID or `me` (on `cup create`, `cup update`, `cup assign`)
|
|
100
|
-
| `--tags` | Comma-separated (e.g. `--tags "bug,frontend"`)
|
|
101
|
-
| `--time-estimate` | Duration format: `"2h"`, `"30m"`, `"1h30m"`, or raw milliseconds
|
|
102
|
-
| `--custom-item-id` | Custom task type ID for `cup create` (e.g. `1` for initiative)
|
|
103
|
-
| `--on` / `--blocks` | Task dependency direction (used with `cup depend`)
|
|
104
|
-
| `--to` / `--remove` | List ID to add/remove task (used with `cup move`)
|
|
105
|
-
| `cup field --set` | Supports: text, number, checkbox (true/false), dropdown (option name), date (YYYY-MM-DD), url, email
|
|
106
|
-
| `cup field` | Field names resolved case-insensitively; errors list available fields/options
|
|
107
|
-
| `cup delete` | DESTRUCTIVE. Requires `--confirm` in non-interactive mode. Cannot be undone
|
|
108
|
-
| `cup tag --add/--remove` | Comma-separated tag names (e.g. `--add "bug,frontend"`)
|
|
109
|
-
| `--space` | Partial name match or exact ID
|
|
110
|
-
| `--name` | Partial match, case-insensitive
|
|
111
|
-
| `--include-closed` | Include closed/done tasks (on `tasks`, `assigned`, `subtasks`, `sprint`, `search`, `inbox`, `overdue`)
|
|
112
|
-
| `cup assign --to me` | Shorthand for your own user ID
|
|
113
|
-
| `cup search` | Matches all query words against task name, case-insensitive
|
|
114
|
-
| `cup sprint` | Auto-detects active sprint
|
|
115
|
-
| `cup summary` | Categories: completed (done/complete/closed within N hours), in progress, overdue
|
|
116
|
-
| `cup overdue` | Excludes closed tasks, sorted most overdue first
|
|
117
|
-
| `cup open` | Tries task ID first, falls back to name search
|
|
118
|
-
| `cup checklist` | Full CRUD for task checklists: view, create, delete, add-item, edit-item, delete-item
|
|
119
|
-
| `cup time` | Track time: start/stop timer, log entries, list history. Duration format: "2h", "30m", "1h30m"
|
|
120
|
-
| `cup comment-edit` | Edit comment text and resolution status
|
|
121
|
-
| `cup comment-delete` | Delete a comment
|
|
122
|
-
| `cup replies` / `cup reply` | View and post threaded comment replies
|
|
123
|
-
| Custom task IDs | Auto-detected by format (`PROJ-123`). Uses `teamId` from config. All commands support them
|
|
124
|
-
| `cup link` + custom IDs | Both IDs must be the same type (both custom or both native). Mixing may not work
|
|
125
|
-
| `cup link` | Link/unlink tasks (different from dependencies)
|
|
126
|
-
| `cup attach` | Upload files to tasks. Attachments shown in `cup task` detail view
|
|
127
|
-
| `cup
|
|
128
|
-
| `cup
|
|
129
|
-
|
|
|
130
|
-
|
|
|
96
|
+
| Topic | Detail |
|
|
97
|
+
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
98
|
+
| Task IDs | Native (`abc123def`) or custom (`PROJ-123`). Custom IDs auto-detected by `PREFIX-DIGITS` format |
|
|
99
|
+
| `--type` | Filter by task type: `task` (regular), or custom type name/ID (e.g. `initiative`, `Bug`) |
|
|
100
|
+
| `--list` on create | Optional when `--parent` is given (auto-detected) |
|
|
101
|
+
| `--status` | Fuzzy matching: exact > starts-with > contains. Prints match to stderr. |
|
|
102
|
+
| `--priority` | Names (`urgent`, `high`, `normal`, `low`) or numbers (1-4) |
|
|
103
|
+
| `--due-date` | `YYYY-MM-DD` format |
|
|
104
|
+
| `--assignee` | User ID or `me` (on `cup create`, `cup update`, `cup assign`) |
|
|
105
|
+
| `--tags` | Comma-separated (e.g. `--tags "bug,frontend"`) |
|
|
106
|
+
| `--time-estimate` | Duration format: `"2h"`, `"30m"`, `"1h30m"`, or raw milliseconds |
|
|
107
|
+
| `--custom-item-id` | Custom task type ID for `cup create` (e.g. `1` for initiative) |
|
|
108
|
+
| `--on` / `--blocks` | Task dependency direction (used with `cup depend`) |
|
|
109
|
+
| `--to` / `--remove` | List ID to add/remove task (used with `cup move`) |
|
|
110
|
+
| `cup field --set` | Supports: text, number, checkbox (true/false), dropdown (option name), date (YYYY-MM-DD), url, email |
|
|
111
|
+
| `cup field` | Field names resolved case-insensitively; errors list available fields/options |
|
|
112
|
+
| `cup delete` | DESTRUCTIVE. Requires `--confirm` in non-interactive mode. Cannot be undone |
|
|
113
|
+
| `cup tag --add/--remove` | Comma-separated tag names (e.g. `--add "bug,frontend"`) |
|
|
114
|
+
| `--space` | Partial name match or exact ID |
|
|
115
|
+
| `--name` | Partial match, case-insensitive |
|
|
116
|
+
| `--include-closed` | Include closed/done tasks (on `tasks`, `assigned`, `subtasks`, `sprint`, `search`, `inbox`, `overdue`) |
|
|
117
|
+
| `cup assign --to me` | Shorthand for your own user ID |
|
|
118
|
+
| `cup search` | Matches all query words against task name, case-insensitive |
|
|
119
|
+
| `cup sprint` | Auto-detects active sprint by searching for folders named sprint/iteration/cycle/scrum, parses multiple date formats (US, ISO, month-day, European), prompts in TTY when ambiguous. Override with `--folder <id>` or `cup config set sprintFolderId <id>` |
|
|
120
|
+
| `cup summary` | Categories: completed (done/complete/closed within N hours), in progress, overdue |
|
|
121
|
+
| `cup overdue` | Excludes closed tasks, sorted most overdue first |
|
|
122
|
+
| `cup open` | Tries task ID first, falls back to name search |
|
|
123
|
+
| `cup checklist` | Full CRUD for task checklists: view, create, delete, add-item, edit-item, delete-item |
|
|
124
|
+
| `cup time` | Track time: start/stop timer, log entries, list history. Duration format: "2h", "30m", "1h30m" |
|
|
125
|
+
| `cup comment-edit` | Edit comment text and resolution status |
|
|
126
|
+
| `cup comment-delete` | Delete a comment |
|
|
127
|
+
| `cup replies` / `cup reply` | View and post threaded comment replies |
|
|
128
|
+
| Custom task IDs | Auto-detected by format (`PROJ-123`). Uses `teamId` from config. All commands support them |
|
|
129
|
+
| `cup link` + custom IDs | Both IDs must be the same type (both custom or both native). Mixing may not work |
|
|
130
|
+
| `cup link` | Link/unlink tasks (different from dependencies) |
|
|
131
|
+
| `cup attach` | Upload files to tasks. Attachments shown in `cup task` detail view |
|
|
132
|
+
| `cup docs` | List and search workspace docs by name |
|
|
133
|
+
| `cup doc` | View a doc page content (markdown) |
|
|
134
|
+
| `cup doc-create` | Create a new doc with optional initial content |
|
|
135
|
+
| `cup doc-page-create` | Create a page in a doc, optionally nested under a parent page |
|
|
136
|
+
| `cup doc-page-edit` | Edit a doc page name or content |
|
|
137
|
+
| `cup task` | Shows custom fields, checklists, attachments, dependencies, and linked tasks in detail view |
|
|
138
|
+
| `cup lists` | Discovers list IDs needed for `--list` and `cup create -l` |
|
|
139
|
+
| Errors | stderr with exit code 1 |
|
|
140
|
+
| Parsing | Strict - excess/unknown arguments rejected |
|
|
131
141
|
|
|
132
142
|
## Agent Workflow Examples
|
|
133
143
|
|
|
@@ -195,6 +205,20 @@ cup time list --days 7 # recent entries
|
|
|
195
205
|
cup delete abc123def --confirm # irreversible!
|
|
196
206
|
```
|
|
197
207
|
|
|
208
|
+
### Work with docs
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
cup docs # list all docs
|
|
212
|
+
cup docs "design" # search docs by name
|
|
213
|
+
cup doc <docId> <pageId> # view page content
|
|
214
|
+
cup doc-create "Architecture Notes" # create a doc
|
|
215
|
+
cup doc-create "Notes" -c "# Draft" # create with content
|
|
216
|
+
cup doc-page-create <docId> "New Section" # add page to doc
|
|
217
|
+
cup doc-page-create <docId> "Sub" --parent-page <pageId> # nested page
|
|
218
|
+
cup doc-page-edit <docId> <pageId> --name "Renamed" # rename page
|
|
219
|
+
cup doc-page-edit <docId> <pageId> -c "# Updated content" # edit content
|
|
220
|
+
```
|
|
221
|
+
|
|
198
222
|
### Discover workspace structure
|
|
199
223
|
|
|
200
224
|
```bash
|
|
@@ -203,6 +227,7 @@ cup spaces --name "Engineering" # find space ID by name
|
|
|
203
227
|
cup lists <spaceId> # lists in a space (needs ID from cup spaces)
|
|
204
228
|
cup sprints # all sprints across folders
|
|
205
229
|
cup auth # verify token works
|
|
230
|
+
cup config set sprintFolderId <id> # pin sprint detection to a folder
|
|
206
231
|
```
|
|
207
232
|
|
|
208
233
|
### Standup
|