@krodak/clickup-cli 1.11.0 → 1.11.1

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clickup-cli",
3
3
  "description": "ClickUp CLI skills for managing tasks, sprints, comments, checklists, custom fields, tags, and time tracking via the cup command",
4
- "version": "1.11.0",
4
+ "version": "1.11.1",
5
5
  "author": {
6
6
  "name": "Krzysztof Rodak"
7
7
  },
package/dist/index.js CHANGED
@@ -2690,6 +2690,7 @@ var commandMetadata = [
2690
2690
  "--time-estimate",
2691
2691
  "--assignee",
2692
2692
  "--parent",
2693
+ "--field",
2693
2694
  "--json"
2694
2695
  ],
2695
2696
  quickReference: [{ section: "write", usage: "update <taskId>", description: "Update a task" }]
@@ -5326,21 +5327,31 @@ function buildProgram(programName = basename(process.argv[1] ?? "cup")) {
5326
5327
  }
5327
5328
  })
5328
5329
  );
5329
- program.command("update <taskId>").description("Update a task").option("-n, --name <text>", "New task name").option("-d, --description <text>", "New description (markdown supported)").option("-s, --status <status>", 'New status (e.g. "in progress", "done")').option("--priority <level>", "Priority: urgent, high, normal, low (or 1-4)").option("--due-date <date>", "Due date (YYYY-MM-DD)").option("--time-estimate <duration>", 'Time estimate (e.g. "2h", "30m", "1h30m")').option("--assignee <userId>", 'Add assignee by user ID or "me"').option("--parent <taskId>", "Set parent task (makes this a subtask)").option("--json", "Force JSON output even in terminal").action(
5330
- wrapAction(async (taskId, opts) => {
5331
- const config = loadConfig(getProfileName());
5332
- if (opts.assignee === "me") {
5333
- const client = new ClickUpClient(config);
5334
- opts.assignee = String(await resolveAssigneeId(client, "me"));
5335
- }
5336
- const payload = buildUpdatePayload(opts);
5337
- const result = await updateTask(config, taskId, payload);
5338
- if (shouldOutputJson(opts.json ?? false)) {
5339
- console.log(JSON.stringify(result, null, 2));
5340
- } else {
5341
- console.log(formatUpdateConfirmation(result.id, result.name));
5330
+ program.command("update <taskId>").description("Update a task").option("-n, --name <text>", "New task name").option("-d, --description <text>", "New description (markdown supported)").option("-s, --status <status>", 'New status (e.g. "in progress", "done")').option("--priority <level>", "Priority: urgent, high, normal, low (or 1-4)").option("--due-date <date>", "Due date (YYYY-MM-DD)").option("--time-estimate <duration>", 'Time estimate (e.g. "2h", "30m", "1h30m")').option("--assignee <userId>", 'Add assignee by user ID or "me"').option("--parent <taskId>", "Set parent task (makes this a subtask)").option("--field <nameAndValue...>", 'Set custom field: --field "Name" value').option("--json", "Force JSON output even in terminal").action(
5331
+ wrapAction(
5332
+ async (taskId, opts) => {
5333
+ const config = loadConfig(getProfileName());
5334
+ if (opts.assignee === "me") {
5335
+ const client = new ClickUpClient(config);
5336
+ opts.assignee = String(await resolveAssigneeId(client, "me"));
5337
+ }
5338
+ const payload = buildUpdatePayload(opts);
5339
+ const result = await updateTask(config, taskId, payload);
5340
+ if (opts.field?.length) {
5341
+ if (opts.field.length % 2 !== 0) {
5342
+ throw new Error('--field requires pairs: --field "Name" value');
5343
+ }
5344
+ for (let i = 0; i < opts.field.length; i += 2) {
5345
+ await setCustomField(config, taskId, { set: [opts.field[i], opts.field[i + 1]] });
5346
+ }
5347
+ }
5348
+ if (shouldOutputJson(opts.json ?? false)) {
5349
+ console.log(JSON.stringify(result, null, 2));
5350
+ } else {
5351
+ console.log(formatUpdateConfirmation(result.id, result.name));
5352
+ }
5342
5353
  }
5343
- })
5354
+ )
5344
5355
  );
5345
5356
  program.command("create").description("Create a new task").option("-l, --list <listId>", "Target list ID (auto-detected from --parent if omitted)").requiredOption("-n, --name <name>", "Task name").option("-d, --description <text>", "Task description (markdown supported)").option("-p, --parent <taskId>", "Parent task ID (list auto-detected from parent)").option("-s, --status <status>", "Initial status").option("--priority <level>", "Priority: urgent, high, normal, low (or 1-4)").option("--due-date <date>", "Due date (YYYY-MM-DD)").option("--assignee <userId>", 'Assignee user ID or "me"').option("--tags <tags>", "Comma-separated tag names").option("--custom-item-id <id>", "Custom task type ID (use to create initiatives)").option("--time-estimate <duration>", 'Time estimate (e.g. "2h", "30m", "1h30m")').option("--template <id>", "Create from a task template").option("--json", "Force JSON output even in terminal").action(
5346
5357
  wrapAction(async (opts) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krodak/clickup-cli",
3
- "version": "1.11.0",
3
+ "version": "1.11.1",
4
4
  "description": "ClickUp CLI for AI agents and humans",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -69,66 +69,66 @@ All commands support `--help` for full flag details. All commands support `--jso
69
69
 
70
70
  ### Write
71
71
 
72
- | Command | What it does |
73
- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------- |
74
- | `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] [--template id]` | Create task |
75
- | `cup update <id> [-n name] [-d desc] [-s status] [--priority p] [--due-date d] [--time-estimate t] [--assignee id\|me] [--parent id]` | Update task fields |
76
- | `cup comment <id> -m text [--notify-all]` | Post comment on task |
77
- | `cup comment-edit <commentId> -m text [--resolved] [--unresolved]` | Edit a comment |
78
- | `cup comment-delete <commentId>` | Delete a comment |
79
- | `cup replies <commentId>` | List threaded replies |
80
- | `cup reply <commentId> -m text [--notify-all]` | Reply to a comment |
81
- | `cup assign <id> [--to userId\|me] [--remove userId\|me]` | Assign/unassign users |
82
- | `cup depend <id> [--on taskId] [--blocks taskId] [--remove]` | Add/remove dependencies |
83
- | `cup move <id> [--to listId] [--remove listId]` | Add/remove task from lists |
84
- | `cup field <id> [--set "Name" value] [--remove "Name"]` | Set/remove custom field values |
85
- | `cup field-create <name> -t <type> [-d desc] [--options "a,b,c"] [--required]` | Create a custom field |
86
- | `cup tag <id> [--add tags] [--remove tags]` | Add/remove tags on a task |
87
- | `cup link <taskId> <linksTo> [--remove]` | Link/unlink tasks |
88
- | `cup attach <taskId> <filePath>` | Upload file attachment |
89
- | `cup delete <id> [--confirm]` | Delete task (DESTRUCTIVE) |
90
- | `cup duplicate <taskId>` | Duplicate a task |
91
- | `cup bulk status <status> <taskIds...>` | Bulk update status |
92
- | `cup checklist view <id>` | View checklists on a task |
93
- | `cup checklist create <id> <name>` | Create a checklist |
94
- | `cup checklist delete <checklistId>` | Delete a checklist |
95
- | `cup checklist add-item <checklistId> <name>` | Add item to checklist |
96
- | `cup checklist edit-item <checklistId> <itemId> [--name n] [--resolved] [--unresolved] [--assignee id]` | Edit checklist item |
97
- | `cup checklist delete-item <checklistId> <itemId>` | Delete checklist item |
98
- | `cup time start <taskId> [-d desc]` | Start timer |
99
- | `cup time stop` | Stop running timer |
100
- | `cup time status` | Show running timer |
101
- | `cup time log <taskId> <duration> [-d desc]` | Log manual entry (e.g. "2h", "30m") |
102
- | `cup time list [--days n] [--task id]` | List recent time entries |
103
- | `cup time update <timeEntryId> [-d desc] [--duration dur]` | Update time entry |
104
- | `cup time delete <timeEntryId>` | Delete time entry |
105
- | `cup goal-create <name> [-d desc] [--color hex]` | Create a goal |
106
- | `cup goal-update <goalId> [-n name] [-d desc] [--color hex]` | Update a goal |
107
- | `cup goal-delete <goalId>` | Delete a goal |
108
- | `cup key-result-create <goalId> <name> [--type t] [--target n]` | Create key result |
109
- | `cup key-result-update <keyResultId> [--progress n] [--note text]` | Update key result |
110
- | `cup key-result-delete <keyResultId>` | Delete key result |
111
- | `cup doc-create <title> [-c content]` | Create a doc |
112
- | `cup doc-page-create <docId> <name> [-c content] [--parent-page pageId]` | Create doc page |
113
- | `cup doc-page-edit <docId> <pageId> [--name text] [-c content]` | Edit doc page |
114
- | `cup doc-delete <docId>` | Delete a doc |
115
- | `cup doc-page-delete <docId> <pageId>` | Delete doc page |
116
- | `cup space-create <name>` | Create a space |
117
- | `cup list-create <spaceId> <name> [--folder folderId]` | Create a list in a space or folder |
118
- | `cup folder-create <spaceId> <name>` | Create a folder in a space |
119
- | `cup tag-create <spaceId> <name> [--fg color] [--bg color]` | Create space tag |
120
- | `cup tag-update <spaceId> <tagName> --name <newName> [--fg c] [--bg c]` | Update space tag |
121
- | `cup tag-delete <spaceId> <name>` | Delete space tag |
122
- | `cup list-from-template <name> --template <id> [--space id] [--folder id]` | Create list from template |
123
- | `cup view-create <listId> <name> -t <type> [--group-by field]` | Create a view on a list |
124
- | `cup view-update <viewId> [-n name] [--group-by field]` | Update a view |
125
- | `cup view-delete <viewId> [--confirm]` | Delete a view (DESTRUCTIVE) |
126
- | `cup profile list [--json]` | List all profiles |
127
- | `cup profile add <name>` | Add a new profile (interactive) |
128
- | `cup profile remove <name>` | Remove a profile |
129
- | `cup profile use <name>` | Set the default profile |
130
- | `cup config get <key>` / `set <key> <value>` / `path` | Manage config |
131
- | `cup completion <shell>` | Shell completions (bash/zsh/fish) |
72
+ | Command | What it does |
73
+ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- |
74
+ | `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] [--template id]` | Create task |
75
+ | `cup update <id> [-n name] [-d desc] [-s status] [--priority p] [--due-date d] [--time-estimate t] [--assignee id\|me] [--parent id] [--field "Name" val]` | Update task fields (including custom fields) |
76
+ | `cup comment <id> -m text [--notify-all]` | Post comment on task |
77
+ | `cup comment-edit <commentId> -m text [--resolved] [--unresolved]` | Edit a comment |
78
+ | `cup comment-delete <commentId>` | Delete a comment |
79
+ | `cup replies <commentId>` | List threaded replies |
80
+ | `cup reply <commentId> -m text [--notify-all]` | Reply to a comment |
81
+ | `cup assign <id> [--to userId\|me] [--remove userId\|me]` | Assign/unassign users |
82
+ | `cup depend <id> [--on taskId] [--blocks taskId] [--remove]` | Add/remove dependencies |
83
+ | `cup move <id> [--to listId] [--remove listId]` | Add/remove task from lists |
84
+ | `cup field <id> [--set "Name" value] [--remove "Name"]` | Set/remove custom field values |
85
+ | `cup field-create <name> -t <type> [-d desc] [--options "a,b,c"] [--required]` | Create a custom field |
86
+ | `cup tag <id> [--add tags] [--remove tags]` | Add/remove tags on a task |
87
+ | `cup link <taskId> <linksTo> [--remove]` | Link/unlink tasks |
88
+ | `cup attach <taskId> <filePath>` | Upload file attachment |
89
+ | `cup delete <id> [--confirm]` | Delete task (DESTRUCTIVE) |
90
+ | `cup duplicate <taskId>` | Duplicate a task |
91
+ | `cup bulk status <status> <taskIds...>` | Bulk update status |
92
+ | `cup checklist view <id>` | View checklists on a task |
93
+ | `cup checklist create <id> <name>` | Create a checklist |
94
+ | `cup checklist delete <checklistId>` | Delete a checklist |
95
+ | `cup checklist add-item <checklistId> <name>` | Add item to checklist |
96
+ | `cup checklist edit-item <checklistId> <itemId> [--name n] [--resolved] [--unresolved] [--assignee id]` | Edit checklist item |
97
+ | `cup checklist delete-item <checklistId> <itemId>` | Delete checklist item |
98
+ | `cup time start <taskId> [-d desc]` | Start timer |
99
+ | `cup time stop` | Stop running timer |
100
+ | `cup time status` | Show running timer |
101
+ | `cup time log <taskId> <duration> [-d desc]` | Log manual entry (e.g. "2h", "30m") |
102
+ | `cup time list [--days n] [--task id]` | List recent time entries |
103
+ | `cup time update <timeEntryId> [-d desc] [--duration dur]` | Update time entry |
104
+ | `cup time delete <timeEntryId>` | Delete time entry |
105
+ | `cup goal-create <name> [-d desc] [--color hex]` | Create a goal |
106
+ | `cup goal-update <goalId> [-n name] [-d desc] [--color hex]` | Update a goal |
107
+ | `cup goal-delete <goalId>` | Delete a goal |
108
+ | `cup key-result-create <goalId> <name> [--type t] [--target n]` | Create key result |
109
+ | `cup key-result-update <keyResultId> [--progress n] [--note text]` | Update key result |
110
+ | `cup key-result-delete <keyResultId>` | Delete key result |
111
+ | `cup doc-create <title> [-c content]` | Create a doc |
112
+ | `cup doc-page-create <docId> <name> [-c content] [--parent-page pageId]` | Create doc page |
113
+ | `cup doc-page-edit <docId> <pageId> [--name text] [-c content]` | Edit doc page |
114
+ | `cup doc-delete <docId>` | Delete a doc |
115
+ | `cup doc-page-delete <docId> <pageId>` | Delete doc page |
116
+ | `cup space-create <name>` | Create a space |
117
+ | `cup list-create <spaceId> <name> [--folder folderId]` | Create a list in a space or folder |
118
+ | `cup folder-create <spaceId> <name>` | Create a folder in a space |
119
+ | `cup tag-create <spaceId> <name> [--fg color] [--bg color]` | Create space tag |
120
+ | `cup tag-update <spaceId> <tagName> --name <newName> [--fg c] [--bg c]` | Update space tag |
121
+ | `cup tag-delete <spaceId> <name>` | Delete space tag |
122
+ | `cup list-from-template <name> --template <id> [--space id] [--folder id]` | Create list from template |
123
+ | `cup view-create <listId> <name> -t <type> [--group-by field]` | Create a view on a list |
124
+ | `cup view-update <viewId> [-n name] [--group-by field]` | Update a view |
125
+ | `cup view-delete <viewId> [--confirm]` | Delete a view (DESTRUCTIVE) |
126
+ | `cup profile list [--json]` | List all profiles |
127
+ | `cup profile add <name>` | Add a new profile (interactive) |
128
+ | `cup profile remove <name>` | Remove a profile |
129
+ | `cup profile use <name>` | Set the default profile |
130
+ | `cup config get <key>` / `set <key> <value>` / `path` | Manage config |
131
+ | `cup completion <shell>` | Shell completions (bash/zsh/fish) |
132
132
 
133
133
  ## Global Flags
134
134