Releases: krodak/clickup-cli
v1.5.0
Bug Fixes
- Duplicate priority bug -
cup duplicatewas producing NaN for task priorities (mapping "urgent" throughNumber()instead of a lookup table) - API client deduplication -
request()andrequestV3()shared 50 lines of identical error handling logic, now extracted into a shared_fetch()method - Shell completions -
time updateandtime deletewere missing from tab completion in all 3 shells - Bulk error reporting -
cup bulk statusnow reports the specific error reason for each failed task instead of just the ID
New Commands
Delete operations
cup goal-delete <goalId>
cup key-result-delete <keyResultId>
cup doc-delete <docId>
cup doc-page-delete <docId> <pageId>Tag rename
cup tag-update <spaceId> <tagName> --name "new name"Task types
cup task-types # list available custom task typesTask templates
cup templates # list available task templates
cup create --list <id> --name "New Task" --template <templateId>The README previously said templates had no public API - turns out they do.
Other
- API coverage table updated with new "won't add" entries (list/folder/space CRUD, view/chat comments, user groups)
- 666 tests across 54 files
v1.4.0
Workspace Members
cup members # list all workspace members with IDs and emails
cup members --json # get member data for scriptingAgents can now look up user IDs for assignments without guessing.
Custom Fields Discovery
cup fields <listId> # show available fields with types and optionsSee what fields exist on a list before setting them with cup field.
Duplicate Tasks
cup duplicate <taskId> # copy a task (name, description, priority, tags)No native duplicate API in ClickUp, so this reads the task and creates a copy.
Space Tag Management
cup tag-create <spaceId> <name> # create a tag in a space
cup tag-delete <spaceId> <name> # delete a tag from a spaceBulk Status Updates
cup bulk status "done" task1 task2 task3Update status on multiple tasks in one command.
Goals and Key Results
cup goals # list all goals
cup goal-create "Q2 Target" # create a goal
cup goal-update <goalId> --name "Updated" # update a goal
cup key-results <goalId> # list key results
cup key-result-create <goalId> "Ship v2" --target 100
cup key-result-update <krId> --progress 42Other Changes
- "Create from template" moved to Won't Add (no public API for task templates)
- 639 tests across 52 files
v1.3.0
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Full Changelog: v1.1.0...v1.2.0
v1.1.0
v1.0.0
1.0.0
First major release. The binary is now cup (the cu name is retired).
Breaking Changes
- Binary renamed:
cu->cup. Update scripts and aliases. - Config directory moved:
~/.config/cu/->~/.config/cup/. Automatic migration handles this on first run.
Sprint Detection Overhaul
Sprint auto-detection is now much more flexible:
cup sprint # auto-detect active sprint
cup sprint --folder 12345 # use specific folder
cup config set sprintFolderId 12345 # save default folder- Searches for folders named "sprint", "iteration", "cycle", or "scrum"
- Parses multiple date formats:
(2/12 - 2/25),(2025-02-12 - 2025-02-25),(Feb 12 - Feb 25),(12.02 - 25.02) - Falls back to ClickUp list start_date/due_date when names don't have dates
- Prompts to pick when multiple sprints match (TTY mode)
Code Quality
- All date/time formatters consolidated into
date.tsusing local time (fixed UTC midnight bug) cup replies,cup checklist view,cup timenow output clean markdown when piped- Fixed
parseDueDateUTC midnight issue (dates no longer shift by a day) - Removed unused
@inquirer/testingdependency - 556 tests across 43 files
v0.21.0
Binary renamed: cu -> cup
The cu binary has been retired. The CLI is now cup only.
The previous name conflicted with the Unix cu(1) serial communication utility, causing issues on systems where it's installed. cup is short, memorable, and conflict-free.
npm install -g @krodak/clickup-cli && cup initAll commands use cup now:
cup tasks
cup task abc123
cup sprint
cup update abc123 -s doneConfig directory (~/.config/cu/) and environment variables (CU_API_TOKEN, CU_TEAM_ID) are unchanged - no migration needed for existing users.
API Limitations documented
README now lists features that exist in the ClickUp UI but aren't possible via API: comment-level attachments, @mention targeting, reactions, Brain/AI, in-comment checklists, voice/video.
Changes
- Binary:
curemoved,cupis the only binary - All docs updated (README, SKILL.md, commands.md, AGENTS.md, shell completions)
- 514 tests across 43 files
v0.20.0
Task Detail View: Dependencies and Linked Tasks
cu task <id> now shows dependencies (waiting on / blocking) and linked tasks in the detail output, in both TTY and markdown modes.
--notify-all Flag
cu comment and cu reply now accept --notify-all to ping all assignees when posting.
cu comment abc123 -m "Ready for review" --notify-all
cu reply <commentId> -m "Fixed" --notify-allWhat's not possible via API
- Comment-level attachments (only task-level via
cu attach) - @mention targeting individual users (use
--notify-allinstead) - Comment reactions (no API endpoint)
- ClickUp Brain / AI features (no public API)
Changes
- 514 tests across 43 files
v0.19.0
Custom Task ID Support
All commands that accept task IDs now work with ClickUp custom task IDs (the PREFIX-DIGITS format like PROJ-123 or DEV-42). Detection is automatic based on format - no flags or config changes needed.
cu task PROJ-123
cu update DEV-42 --status done
cu comment ENG-100 "shipping it"
cu time start PROJ-456
cu open PROJ-123When a custom task ID is detected, the CLI appends custom_task_ids=true and team_id to the API request. The teamId from your config (already required) is used for resolution. Native alphanumeric IDs continue to work as before.
This covers all 20 commands that accept task IDs, including time tracking, dependencies, links, checklists, attachments, and custom fields.
Closes #13.
512 tests across 43 files.
v0.18.0
cup binary alias
Both cu and cup are now installed as binaries. They're identical - cup just avoids the conflict with the Unix cu(1) utility that ships on macOS and some Linux distros.
cup tasks
cup sprint --status "in progress"
cup completion fish > ~/.config/fish/completions/cup.fishThe program name, help text, and shell completions all adapt to whichever binary you invoke. The skill file documents both names so agents pick up on cup being available.
Other Changes
- Shell completion scripts are now parameterized by binary name instead of hardcoding
cu - Skill file, README, AGENTS.md, and plugin manifest updated to reference both binary names
496 tests across 43 files.