Skip to content

Releases: krodak/clickup-cli

v0.17.0

19 Mar 14:35

Choose a tag to compare

New Command: cu attach - File uploads

Upload files to tasks directly from the terminal or via agents.

cu attach abc123 ./screenshot.png
cu attach abc123 /path/to/report.pdf --json

Uses multipart upload with a 60s timeout. Attachments also show inline in cu task <id> detail views (both TTY and markdown output).

Changes

  • Attachment type and rendering in task detail views
  • 492 tests across 43 files

v0.16.0

18 Mar 15:10

Choose a tag to compare

New Commands

cu comment-delete - Delete comments

cu comment-delete <commentId>

cu replies / cu reply - Threaded comment replies

cu replies <commentId>                     # list replies on a comment
cu reply <commentId> -m "Agreed, fixing"   # post a threaded reply

cu link - Task links

Link two tasks together (separate from dependencies - links indicate a relationship without implying order).

cu link abc123 def456            # link two tasks
cu link abc123 def456 --remove   # remove the link

Other Changes

  • Claude Code plugin.json updated to v0.16.0 with current description
  • Added claude plugin add as primary Claude Code install method in README
  • README "Won't add" section rewritten with clearer rationale
  • 490 tests across 42 files

v0.15.0

18 Mar 08:41

Choose a tag to compare

New Command Group: cu time - Time Tracking

Five subcommands for tracking time on tasks:

cu time start abc123 -d "Working on feature"   # start timer
cu time stop                                    # stop running timer
cu time status                                  # check what's running
cu time log abc123 2h -d "Code review"          # log manual entry
cu time list --days 7                           # recent time entries
  • start creates a running timer on a task (optional description)
  • stop stops whatever timer is currently running
  • status shows the active timer with elapsed time, or "No timer running"
  • log accepts human-readable duration format ("2h", "30m", "1h30m")
  • list defaults to last 7 days, filterable by --task <id>
  • All subcommands support --json

Other Changes

  • README restructured: purpose-based command tables, agent icons on setup sections, "coming soon" features listed
  • Shell completions updated for all 3 shells
  • 6 new API methods for time tracking
  • 474 tests across 39 files

v0.14.0

18 Mar 00:52

Choose a tag to compare

New Commands

cu checklist - Full checklist management

Six subcommands for managing checklists on tasks:

cu checklist view abc123                           # view all checklists
cu checklist create abc123 "QA Steps"              # add a checklist
cu checklist delete <checklistId>                  # remove a checklist
cu checklist add-item <checklistId> "Run tests"    # add an item
cu checklist edit-item <clId> <itemId> --resolved  # check off an item
cu checklist delete-item <clId> <itemId>           # remove an item
  • edit-item supports --name, --resolved, --unresolved, --assignee
  • All subcommands support --json
  • 7 new API methods: createChecklist, deleteChecklist, createChecklistItem, editChecklistItem, deleteChecklistItem, getListCustomFields, updateComment

cu comment-edit - Edit existing comments

cu comment-edit <commentId> -m "Updated text"
cu comment-edit <commentId> -m "Fixed" --resolved
cu comment-edit <commentId> -m "Reopening" --unresolved

Checklist rendering in task detail views

cu task <id> now shows checklists inline with progress counts and checkbox indicators - both in TTY mode (chalk) and markdown mode (piped output).

Other Changes

  • Removed dead code files (untag.ts, field-set.ts, field-remove.ts, fields.ts) that were superseded by existing commands
  • Fixed 22 typecheck errors on main from unintegrated dead code
  • Shell completions updated for all 3 shells (bash, zsh, fish)
  • 451 tests across 38 files

v0.13.2

10 Mar 13:48

Choose a tag to compare

--assignee me now works on cu create and cu update, matching the existing cu assign --to me behavior. No more looking up your numeric user ID.

cu create -n "Fix bug" -l <listId> --assignee me
cu update abc123 --assignee me

v0.13.1

09 Mar 16:45

Choose a tag to compare

Replace cu initiatives with generic --type flag on cu tasks.

  • cu tasks now shows all task types by default (tasks, initiatives, custom types)
  • cu tasks --type task for regular tasks only
  • cu tasks --type initiative for initiatives only
  • cu tasks --type "Bug" for any custom task type (name or ID, case-insensitive)
  • Custom task type names resolved via ClickUp API and shown in task_type field
  • Removed cu initiatives command (use cu tasks --type initiative instead)
  • 29 commands (down from 30)

v0.13.0

07 Mar 15:13

Choose a tag to compare

New Commands

cu field - Custom field management

  • --set "Field Name" <value> to set a custom field by name
  • --remove "Field Name" to clear a custom field value
  • Both flags can be used together in one call
  • Type-aware value parsing: text, number, checkbox (true/false), dropdown (by option name), date (YYYY-MM-DD), url, email
  • Case-insensitive field name resolution
  • Error messages list available fields and dropdown options

cu delete - Task deletion

  • Interactive confirmation prompt in TTY mode (default: No)
  • --confirm flag required in non-interactive/piped mode (safety guard for scripts and agents)
  • Destructive, irreversible operation

cu tag - Tag management

  • --add bug,urgent to add comma-separated tags
  • --remove wontfix to remove tags
  • Both flags work together in one call
  • Partial failure reporting when adds succeed but removes fail

Other Changes

  • 5 new API methods: setCustomFieldValue, removeCustomFieldValue, deleteTask, addTagToTask, removeTagFromTask
  • Shell completions updated for all 3 shells (bash, zsh, fish)
  • SKILL.md includes delete safety guidance for AI agents
  • 429 tests across 36 test files

v0.12.3

07 Mar 14:17

Choose a tag to compare

Cleanup

Dead code removed

  • updateDescription() from update command (unused wrapper)
  • updateTaskMarkdown(), getMyTasksFromList(), getAssignedListIds() from API client (unused wrappers)
  • Narrowed 14 interface exports to file-private (only used internally, never imported elsewhere)

Shell completions fixed

  • Added 6 missing commands to all 3 shells: auth, search, depend, move, sprints, activity
  • Added missing flags to 9 existing commands across all shells (--include-closed, --time-estimate, --parent, --status, --name, --json, --custom-item-id)

Tests

  • Added tests/unit/date.test.ts for shared date formatting utility
  • Removed 5 tests for deleted dead code
  • 395 tests across 33 test files

v0.12.2

07 Mar 01:14

Choose a tag to compare

Fixes

  • cu move partial failure reporting - when --to succeeds but --remove fails, the error now includes which operation succeeded
  • Deduplicated date formatting - extracted shared formatDate to src/date.ts, removing identical implementations from tasks.ts and markdown.ts
  • Clean JSON output for cu move and cu depend - no longer leaks internal Commander opts (like json: true) into JSON output
  • Test coverage - added --include-closed passthrough tests for inbox and overdue, markdown_content fallback preference test, and move partial failure tests (+8 tests, 396 total)

v0.12.1

06 Mar 23:58

Choose a tag to compare

What's New

--parent flag on cu update

Set or change a task's parent, making it a subtask of another task or initiative.

cu update abc123 --parent parentTaskId