@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.
@@ -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.37.0",
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.detach) {
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, --detach, --archive, --unarchive, --type"
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
- markdown_content: task.markdown_content,
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("--detach", "Remove parent task (promote subtask to top-level)").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(
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
- 'Mention a user (ID, email, username, or "me"). Repeatable.',
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
- 'Mention a user (ID, email, username, or "me"). Repeatable.',
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
- 'Mention a user (ID, email, username, or "me"). Repeatable.',
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
- 'Mention a user (ID, email, username, or "me"). Repeatable.',
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
- 'Mention a user (ID, email, username, or "me"). Repeatable.',
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@krodak/clickup-cli",
3
- "version": "1.37.0",
3
+ "version": "1.38.1",
4
4
  "description": "ClickUp CLI for AI agents and humans",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -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.37.0
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.37.0, update with `npm install -g @krodak/clickup-cli` and refresh this skill with `cup skill`.
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] [--detach] [--archive] [--unarchive] [--type type] [--field "Name" val]` | Update task fields (including custom fields and group assignees) |
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 |