@krodak/clickup-cli 1.37.0 → 1.38.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.
- package/.claude-plugin/plugin.json +1 -1
- package/dist/index.js +11 -16
- package/package.json +1 -1
- package/skills/clickup-cli/SKILL.md +3 -3
|
@@ -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.
|
|
4
|
+
"version": "1.38.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Krzysztof Rodak"
|
|
7
7
|
},
|
package/dist/index.js
CHANGED
|
@@ -2263,9 +2263,6 @@ function buildUpdatePayload(opts, timezone) {
|
|
|
2263
2263
|
if (opts.archive && opts.unarchive) {
|
|
2264
2264
|
throw new Error("Cannot use --archive and --unarchive together");
|
|
2265
2265
|
}
|
|
2266
|
-
if (opts.parent !== void 0 && opts.detach) {
|
|
2267
|
-
throw new Error("Cannot use --parent and --detach together");
|
|
2268
|
-
}
|
|
2269
2266
|
const payload = {};
|
|
2270
2267
|
if (opts.name !== void 0) {
|
|
2271
2268
|
if (!opts.name.trim()) throw new Error("Task name cannot be empty");
|
|
@@ -2308,9 +2305,7 @@ function buildUpdatePayload(opts, timezone) {
|
|
|
2308
2305
|
if (opts.timeEstimate !== void 0) {
|
|
2309
2306
|
payload.time_estimate = parseTimeEstimate(opts.timeEstimate);
|
|
2310
2307
|
}
|
|
2311
|
-
if (opts.
|
|
2312
|
-
payload.parent = null;
|
|
2313
|
-
} else if (opts.parent !== void 0) {
|
|
2308
|
+
if (opts.parent !== void 0) {
|
|
2314
2309
|
payload.parent = opts.parent;
|
|
2315
2310
|
}
|
|
2316
2311
|
if (opts.archive) payload.archived = true;
|
|
@@ -2353,7 +2348,7 @@ async function resolveTaskType2(client, teamId, typeInput) {
|
|
|
2353
2348
|
async function updateTask(config, taskId, options, typeInput) {
|
|
2354
2349
|
if (!hasUpdateFields(options) && typeInput === void 0)
|
|
2355
2350
|
throw new Error(
|
|
2356
|
-
"Provide at least one of: --name, --description, --status, --priority, --due-date, --start-date, --time-estimate, --assignee, --remove-assignee, --group-assignee, --remove-group-assignee, --parent, --
|
|
2351
|
+
"Provide at least one of: --name, --description, --status, --priority, --due-date, --start-date, --time-estimate, --assignee, --remove-assignee, --group-assignee, --remove-group-assignee, --parent, --archive, --unarchive, --type"
|
|
2357
2352
|
);
|
|
2358
2353
|
const client = new ClickUpClient(config);
|
|
2359
2354
|
const resolved = { ...options };
|
|
@@ -3859,7 +3854,6 @@ var commandMetadata = [
|
|
|
3859
3854
|
"--group-assignee",
|
|
3860
3855
|
"--remove-group-assignee",
|
|
3861
3856
|
"--parent",
|
|
3862
|
-
"--detach",
|
|
3863
3857
|
"--archive",
|
|
3864
3858
|
"--unarchive",
|
|
3865
3859
|
"--type",
|
|
@@ -5229,7 +5223,6 @@ ${renderZshTopLevelCommands(name)}
|
|
|
5229
5223
|
'--assignee[Add assignee]:user_id:' \\
|
|
5230
5224
|
'--remove-assignee[Remove assignee]:user_id:' \\
|
|
5231
5225
|
'--parent[Set parent task]:task_id:' \\
|
|
5232
|
-
'--detach[Remove parent task]' \\
|
|
5233
5226
|
'--archive[Archive the task]' \\
|
|
5234
5227
|
'--unarchive[Unarchive the task]' \\
|
|
5235
5228
|
'--field[Set custom field]:field_name_and_value:' \\
|
|
@@ -7556,7 +7549,9 @@ async function duplicateTask(config, taskId) {
|
|
|
7556
7549
|
const created = await client.createTask(task.list.id, {
|
|
7557
7550
|
name: `${task.name} (copy)`,
|
|
7558
7551
|
description: task.description,
|
|
7559
|
-
|
|
7552
|
+
// getTask requests include_markdown_description=true, so the source markdown
|
|
7553
|
+
// lives in markdown_description (markdown_content is always null on read).
|
|
7554
|
+
markdown_content: task.markdown_description ?? task.description,
|
|
7560
7555
|
priority: task.priority ? parsePriority(task.priority.priority.toLowerCase()) : void 0,
|
|
7561
7556
|
tags: task.tags?.map((t) => t.name),
|
|
7562
7557
|
time_estimate: task.time_estimate ?? void 0
|
|
@@ -8728,7 +8723,7 @@ function buildProgram(programName = basename(process.argv[1] ?? "cup")) {
|
|
|
8728
8723
|
).option(
|
|
8729
8724
|
"--remove-group-assignee <groupIds...>",
|
|
8730
8725
|
"Remove group assignee (UUID or @handle, can repeat or comma-separated)"
|
|
8731
|
-
).option("--parent <taskId>", "Set parent task (makes this a subtask)").option("--
|
|
8726
|
+
).option("--parent <taskId>", "Set parent task (makes this a subtask)").option("--archive", "Archive the task").option("--unarchive", "Unarchive the task").option("--type <type>", "Change task type (name or custom_item_id)").option("--field <nameAndValue...>", 'Set custom field: --field "Name" value').option("--json", "Force JSON output even in terminal").action(
|
|
8732
8727
|
wrapAction(
|
|
8733
8728
|
async (taskId, opts) => {
|
|
8734
8729
|
const config = loadConfig(getProfileName());
|
|
@@ -8884,7 +8879,7 @@ function buildProgram(programName = basename(process.argv[1] ?? "cup")) {
|
|
|
8884
8879
|
);
|
|
8885
8880
|
program.command("comment <taskId>").description("Post a comment on a task").requiredOption("-m, --message <text>", "Comment text").option("--notify-all", "Notify all assignees").option(
|
|
8886
8881
|
"--mention <user>",
|
|
8887
|
-
'
|
|
8882
|
+
'Prepend an @mention (ID, email, username, or "me"), repeatable. For a mid-sentence mention, put a <@userId> token in -m instead; bare @Name is not parsed.',
|
|
8888
8883
|
collect,
|
|
8889
8884
|
[]
|
|
8890
8885
|
).option("--json", "Force JSON output even in terminal").action(
|
|
@@ -8911,7 +8906,7 @@ function buildProgram(programName = basename(process.argv[1] ?? "cup")) {
|
|
|
8911
8906
|
);
|
|
8912
8907
|
program.command("comment-edit <commentId>").description("Edit an existing comment").option("-m, --message <text>", "New comment text").option("--resolved", "Mark comment as resolved").option("--unresolved", "Mark comment as unresolved").option(
|
|
8913
8908
|
"--mention <user>",
|
|
8914
|
-
'
|
|
8909
|
+
'Prepend an @mention (ID, email, username, or "me"), repeatable. For a mid-sentence mention, put a <@userId> token in -m instead; bare @Name is not parsed.',
|
|
8915
8910
|
collect,
|
|
8916
8911
|
[]
|
|
8917
8912
|
).option("--json", "Force JSON output even in terminal").action(
|
|
@@ -8984,7 +8979,7 @@ function buildProgram(programName = basename(process.argv[1] ?? "cup")) {
|
|
|
8984
8979
|
);
|
|
8985
8980
|
program.command("reply <commentId>").description("Reply to a comment").requiredOption("-m, --message <text>", "Reply text").option("--notify-all", "Notify all assignees").option(
|
|
8986
8981
|
"--mention <user>",
|
|
8987
|
-
'
|
|
8982
|
+
'Prepend an @mention (ID, email, username, or "me"), repeatable. For a mid-sentence mention, put a <@userId> token in -m instead; bare @Name is not parsed.',
|
|
8988
8983
|
collect,
|
|
8989
8984
|
[]
|
|
8990
8985
|
).option("--json", "Force JSON output even in terminal").action(
|
|
@@ -10824,7 +10819,7 @@ function buildProgram(programName = basename(process.argv[1] ?? "cup")) {
|
|
|
10824
10819
|
);
|
|
10825
10820
|
program.command("list-comment <listId>").description("Post a comment on a list").requiredOption("-m, --message <text>", "Comment text").option("--notify-all", "Notify all assignees").option(
|
|
10826
10821
|
"--mention <user>",
|
|
10827
|
-
'
|
|
10822
|
+
'Prepend an @mention (ID, email, username, or "me"), repeatable. For a mid-sentence mention, put a <@userId> token in -m instead; bare @Name is not parsed.',
|
|
10828
10823
|
collect,
|
|
10829
10824
|
[]
|
|
10830
10825
|
).option("--json", "Force JSON output even in terminal").action(
|
|
@@ -10857,7 +10852,7 @@ function buildProgram(programName = basename(process.argv[1] ?? "cup")) {
|
|
|
10857
10852
|
);
|
|
10858
10853
|
program.command("view-comment <viewId>").description("Post a comment on a view").requiredOption("-m, --message <text>", "Comment text").option("--notify-all", "Notify all assignees").option(
|
|
10859
10854
|
"--mention <user>",
|
|
10860
|
-
'
|
|
10855
|
+
'Prepend an @mention (ID, email, username, or "me"), repeatable. For a mid-sentence mention, put a <@userId> token in -m instead; bare @Name is not parsed.',
|
|
10861
10856
|
collect,
|
|
10862
10857
|
[]
|
|
10863
10858
|
).option("--json", "Force JSON output even in terminal").action(
|
package/package.json
CHANGED
|
@@ -3,11 +3,11 @@ name: clickup
|
|
|
3
3
|
description: 'Use when managing ClickUp tasks, sprints, or comments via the `cup` CLI tool. Triggers: task queries, status updates, sprint tracking, creating subtasks, posting comments, threaded replies, standup summaries, searching tasks, checking overdue items, assigning tasks, listing spaces and lists, opening tasks in browser, checking auth or config, setting custom fields, deleting tasks, managing tags, managing checklists, editing comments, task links, time tracking, attachments, file uploads, listing members, listing fields, duplicating tasks, bulk operations, goals, key results, saved filters, favorites.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# ClickUp CLI (`cup`) - skill version 1.
|
|
6
|
+
# ClickUp CLI (`cup`) - skill version 1.38.1
|
|
7
7
|
|
|
8
8
|
Reference for AI agents using the `cup` CLI tool. Covers task management, sprint tracking, comments, time tracking, custom fields, goals, docs, and project workflows.
|
|
9
9
|
|
|
10
|
-
> **Version check:** Run `cup --version`. If your installed version is older than 1.
|
|
10
|
+
> **Version check:** Run `cup --version`. If your installed version is older than 1.38.1, update with `npm install -g @krodak/clickup-cli` and refresh this skill with `cup skill`.
|
|
11
11
|
|
|
12
12
|
## Install & Configure
|
|
13
13
|
|
|
@@ -164,7 +164,7 @@ All commands support `--help` for full flag details. All commands support `--jso
|
|
|
164
164
|
| Command | What it does |
|
|
165
165
|
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
166
166
|
| `cup create -n name [-l listId\|sprint:current] [-p parentId] [-d desc] [-s status] [--priority p] [--due-date d] [--start-date d] [--time-estimate t] [--assignee id\|me] [--group-assignee uuid\|@handle,...] [--tags t] [--custom-item-id n] [--template id] [--field "Name" val]` | Create task (`--list` accepts `sprint:current`, `--field` sets custom fields inline) |
|
|
167
|
-
| `cup update <id> [-n name] [-d desc] [-s status] [--priority p] [--due-date d\|none] [--start-date d] [--time-estimate t] [--assignee id\|me] [--remove-assignee id\|me] [--group-assignee uuid\|@handle] [--remove-group-assignee uuid\|@handle] [--parent id] [--
|
|
167
|
+
| `cup update <id> [-n name] [-d desc] [-s status] [--priority p] [--due-date d\|none] [--start-date d] [--time-estimate t] [--assignee id\|me] [--remove-assignee id\|me] [--group-assignee uuid\|@handle] [--remove-group-assignee uuid\|@handle] [--parent id] [--archive] [--unarchive] [--type type] [--field "Name" val]` | Update task fields (including custom fields and group assignees) |
|
|
168
168
|
| `cup comment <id> -m text [--notify-all] [--mention user]` | Post comment (markdown auto-converted to rich text; `--mention` for real @mentions, repeatable) |
|
|
169
169
|
| `cup comment-edit <commentId> -m text [--resolved] [--unresolved] [--mention user]` | Edit a comment (markdown auto-converted to rich text; `--mention` for real @mentions) |
|
|
170
170
|
| `cup comment-delete <commentId>` or `cup comment-delete --task <taskId> --mine [--match text]` | Delete a comment by ID or delete one of your task comments |
|