Skip to content

Command reference

Command reference

All commands are invoked as subcommands of clickup. Run clickup --help for a summary, or clickup <command> --help for details on any command.

Every command that produces output supports --json for machine-readable output and --jq for inline filtering. After successful operations, the CLI prints a quick-actions footer suggesting contextual next steps — use --json to suppress these footers for scripting.


auth

Manage authentication credentials.

auth login

Authenticate with a ClickUp account. By default, prompts for a personal API token. The token is validated against the ClickUp API and stored in the system keyring. The login flow also selects a default workspace.

Terminal window
# Interactive token entry (default)
clickup auth login
# Pipe token for CI
echo "pk_12345" | clickup auth login --with-token
# Use OAuth browser flow
clickup auth login --oauth
FlagDescription
--with-tokenRead token from standard input (for CI environments)
--oauthUse OAuth browser flow (requires a registered OAuth app)

auth logout

Remove stored credentials from the system keyring.

Terminal window
clickup auth logout

auth status

Display the current authentication state, including the logged-in user and workspace.

Terminal window
clickup auth status

task

View, list, create, and edit ClickUp tasks.

task view [TASK-ID]

Display detailed information about a single task, including name, status, priority, assignees, watchers, tags, dates, points, time estimate, time spent, URL, description, custom fields, dependencies, linked tasks, checklists, and attachments.

If no task ID is provided, the CLI auto-detects it from the current git branch name.

Terminal window
# Auto-detect task from git branch
clickup task view
# View a specific task
clickup task view 86a3xrwkp
# Output as JSON
clickup task view 86a3xrwkp --json
FlagDescription
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

task list

List tasks from a ClickUp list with optional filters. Displays a table with ID, name, status, priority, assignee, tags, and due date columns.

Terminal window
# List tasks in a ClickUp list
clickup task list --list-id 12345
# Filter by assignee and status
clickup task list --list-id 12345 --assignee me --status "in progress"
FlagDescription
--list-id IDClickUp list ID (required)
--assignee IDFilter by assignee ID(s) (repeatable)
--status STATUSFilter by status(es) (repeatable)
--sprint NAMEFilter by sprint name
--page NPage number for pagination (starts at 0)
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

task create

Create a new task in a ClickUp list. If --name is not provided, the command enters interactive mode and prompts for the task name, description, status, and priority. Supports setting tags, due dates, start dates, time estimates, sprint points, custom fields, parent tasks, and task types at creation time.

When --status is provided, the CLI validates it against the available statuses for the list’s space using fuzzy matching (same strategy as status set). If the provided status fuzzy-matches a valid status, a warning is shown (e.g., Status "prog" matched to "in progress"). If no match is found, an error is returned listing all available statuses.

Terminal window
# Create with flags
clickup task create --list-id 12345 --name "Fix login bug" --priority 2
# Interactive mode
clickup task create --list-id 12345
# Create with due date, points, and custom field
clickup task create --list-id 12345 --name "Fix auth" --priority 2 --due-date 2025-02-14 --points 3 --field "Environment=production"
# Create a subtask
clickup task create --list-id 12345 --name "Subtask" --parent 86abc123
# Create a milestone
clickup task create --list-id 12345 --name "v2.0 Release" --type 1
FlagDescription
--list-id IDClickUp list ID (required)
--name TEXTTask name
--description TEXTTask description
--markdown-description TEXTTask description in markdown
--status STATUSTask status
--priority NPriority: 1=Urgent, 2=High, 3=Normal, 4=Low
--assignee IDAssignee user ID(s) (repeatable)
--tags TAGTags to add (repeatable)
--due-date DATEDue date (YYYY-MM-DD)
--start-date DATEStart date (YYYY-MM-DD)
--due-date-timeInclude time component in due date
--start-date-timeInclude time component in start date
--time-estimate DURTime estimate (e.g. “2h”, “30m”, “1h30m”)
--points NSprint/story points
--parent IDParent task ID (create as subtask)
--links-to IDLink to another task by ID
--type NTask type (0=task, 1=milestone, or custom type ID)
--notify-allNotify all assignees and watchers
--field "Name=value"Set a custom field value (repeatable)
--jsonOutput created task as JSON
--jq EXPRFilter JSON output with a jq expression

task edit [TASK-ID]

Edit fields on an existing task. At least one field flag must be provided. If no task ID is given, it is auto-detected from the current git branch.

When --status is provided, the CLI validates it against available statuses for the task’s space using fuzzy matching. A warning is shown if the match is not exact (e.g., Status "prog" matched to "in progress"). An error is returned if no match is found.

Terminal window
# Edit the task detected from the current branch
clickup task edit --name "Updated title" --priority 2
# Edit a specific task
clickup task edit CU-abc123 --status "in review"
# Set due date and time estimate
clickup task edit --due-date 2025-02-14 --time-estimate 4h
# Remove an assignee
clickup task edit CU-abc123 --remove-assignee 12345
# Set sprint points
clickup task edit --points 5
# Set a custom field
clickup task edit CU-abc123 --field "Environment=production"
# Clear a custom field
clickup task edit CU-abc123 --clear-field "Environment"
# Reparent a task (make it a subtask)
clickup task edit CU-abc123 --parent 86def456
# Change task type to milestone
clickup task edit CU-abc123 --type 1
FlagDescription
--name TEXTNew task name
--description TEXTNew task description
--markdown-description TEXTNew task description in markdown
--status STATUSNew task status
--priority NNew priority: 1=Urgent, 2=High, 3=Normal, 4=Low
--assignee IDAssignee user ID(s) to add (repeatable)
--remove-assignee IDAssignee user ID(s) to remove (repeatable)
--tags TAGSet tags (replaces existing, repeatable)
--due-date DATEDue date (YYYY-MM-DD, “none” to clear)
--start-date DATEStart date (YYYY-MM-DD, “none” to clear)
--due-date-timeInclude time component in due date
--start-date-timeInclude time component in start date
--time-estimate DURTime estimate (e.g. “2h”, “30m”; “0” to clear)
--points NSprint/story points (-1 to clear)
--parent IDParent task ID (reparent task)
--links-to IDLink to another task by ID
--type NTask type (0=task, 1=milestone, or custom type ID)
--notify-allNotify all assignees and watchers
--field "Name=value"Set a custom field value (repeatable)
--clear-field "Name"Clear a custom field value (repeatable)
--jsonOutput updated task as JSON
--jq EXPRFilter JSON output with a jq expression

task search <query>

Search tasks by name with fuzzy matching and optional comment search. The <query> argument matches against task names as a case-insensitive substring. To search by task ID, pass the full ID (e.g., CU-abc123).

If no results are found, the CLI suggests running clickup task recent or clickup sprint current to discover active work. In interactive mode, “Show my recent tasks” is offered as a menu option.

When no exact substring matches are found but fuzzy results exist, a message indicates the results are fuzzy. Use --exact to suppress fuzzy matches and only show exact substring results.

Terminal window
# Search by name substring
clickup task search "geozone" --comments --pick
# Search within a specific folder (use 'task recent' to discover folders)
clickup task search "geozone" --folder "Engineering Sprint"
# Only show exact substring matches (no fuzzy results)
clickup task search "FAQ" --exact
# Search and output as JSON
clickup task search "login bug" --json
FlagDescription
--space NAME_OR_IDLimit search to a specific space (name or ID)
--folder NAMELimit search to a specific folder (name, substring match)
--pickInteractively pick from results and print its task ID
--commentsAlso search within task comment bodies
--exactOnly show exact substring matches (no fuzzy results)
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

task recent

Show recently updated tasks with folder and list context. By default shows tasks assigned to you. Use --all for all team activity. Tasks from archived folders are automatically filtered out.

This command is particularly useful for discovering which folders and lists contain active work, so you can narrow searches with --folder or --space.

Terminal window
# Show your recent tasks with location context
clickup task recent
# Show all team activity
clickup task recent --all
# Only show tasks from sprint folders
clickup task recent --sprint
# JSON output for scripting or AI agents
clickup task recent --json --limit 10
FlagDescription
--limit NMaximum number of tasks to show (default 20)
--allShow all team tasks, not just yours
--sprintOnly show tasks from sprint folders
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

task activity [TASK-ID]

View a task’s details and chronological comment history.

Terminal window
clickup task activity 86a3xrwkp
FlagDescription
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

task time log [TASK-ID]

Log a time entry against a task.

Terminal window
clickup task time log --duration 2h --description "Implemented auth"
FlagDescription
--duration DURDuration to log (required, e.g. “2h”, “30m”, “1h30m”)
--description TEXTDescription of the work performed
--date DATEDate for the time entry (defaults to today)
--billableMark the time entry as billable

task time list [TASK-ID]

View time entries for a task.

Terminal window
clickup task time list 86a3xrwkp
FlagDescription
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

task dependency add <TASK-ID>

Add a dependency relationship between two tasks. Use --depends-on to indicate a task waits on another, or --blocks to indicate a task blocks another.

Terminal window
# This task depends on (waits for) another task
clickup task dependency add 86abc123 --depends-on 86def456
# This task blocks another task
clickup task dependency add 86abc123 --blocks 86def456
FlagDescription
--depends-on IDTask ID that this task depends on (waits for)
--blocks IDTask ID that this task blocks

task dependency remove <TASK-ID>

Remove a dependency relationship between two tasks.

Terminal window
clickup task dependency remove 86abc123 --depends-on 86def456
clickup task dependency remove 86abc123 --blocks 86def456
FlagDescription
--depends-on IDTask ID to remove depends-on relationship with
--blocks IDTask ID to remove blocks relationship with

task checklist add <TASK-ID> <NAME>

Create a checklist on a task.

Terminal window
clickup task checklist add 86abc123 "Deploy Steps"

task checklist remove <CHECKLIST-ID>

Delete a checklist.

Terminal window
clickup task checklist remove b955c4dc-b8ee-4488-b0c1-example

task checklist item add <CHECKLIST-ID> <NAME>

Add an item to a checklist.

Terminal window
clickup task checklist item add b955c4dc-example "Run migrations"

task checklist item resolve <CHECKLIST-ID> <ITEM-ID>

Mark a checklist item as resolved.

Terminal window
clickup task checklist item resolve b955c4dc-example 21e08dc8-example

task checklist item remove <CHECKLIST-ID> <ITEM-ID>

Remove an item from a checklist.

Terminal window
clickup task checklist item remove b955c4dc-example 21e08dc8-example

member

Manage workspace members.

member list

List all members in the configured ClickUp workspace. Displays each member’s ID, username, email, and role. Member IDs are useful for assigning tasks, adding watchers, and tagging users.

Terminal window
# List workspace members
clickup member list
# JSON output for scripting
clickup member list --json
# Get a specific member's ID
clickup member list --json --jq '.[] | select(.username == "Isaac") | .id'
FlagDescription
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

field

Discover custom fields available in your workspace.

field list

List all accessible custom fields for a ClickUp list, showing field name, type, ID, and options (for dropdown/label fields).

Terminal window
# List fields for a list
clickup field list --list-id 12345
# JSON output
clickup field list --list-id 12345 --json
FlagDescription
--list-id IDClickUp list ID (required)
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

comment

Manage comments on ClickUp tasks.

comment add [TASK] [BODY]

Add a comment to a task. If TASK is not provided, the task ID is auto-detected from the current git branch. If BODY is not provided (or --editor is used), your configured editor opens for composing the comment.

@mentions: Use @username in the comment body to mention workspace members. Usernames are resolved against your workspace’s member list (same as clickup member list) using case-insensitive matching. Resolved mentions become real ClickUp @mentions that trigger notifications. Unresolved @ text is left as-is.

Terminal window
# Add a comment to the branch's task
clickup comment add "" "Fixed the login bug"
# Add a comment to a specific task
clickup comment add abc123 "Deployed to staging"
# Mention a teammate
clickup comment add abc123 "Hey @Isaac can you review this?"
# Open your editor to compose the comment
clickup comment add --editor
FlagDescription
-e, --editorOpen editor to compose comment body

comment list [TASK-ID]

List comments on a task.

Terminal window
clickup comment list CU-abc123

comment edit <COMMENT_ID> [BODY]

Edit an existing comment. If BODY is not provided (or --editor is used), your configured editor opens for editing.

Terminal window
# Edit a comment by ID
clickup comment edit 12345 "Updated comment text"
# Open editor to edit the comment
clickup comment edit 12345 --editor
FlagDescription
-e, --editorOpen editor to compose comment body

comment delete <COMMENT_ID>

Delete a comment from a ClickUp task. Find comment IDs with comment list TASK_ID --json.

Terminal window
# Delete a comment (with confirmation prompt)
clickup comment delete 90160162431205
# Delete without confirmation
clickup comment delete 90160162431205 --yes
FlagDescription
-y, --yesSkip confirmation prompt

status

Manage task statuses.

status set <STATUS> [TASK]

Change a task’s status using fuzzy matching. The STATUS argument is matched against available statuses for the task’s space using a three-tier strategy:

  1. Exact match (case-insensitive)
  2. Contains match (case-insensitive)
  3. Fuzzy match using normalized fold ranking

If TASK is not provided, the task ID is auto-detected from the current git branch.

Terminal window
# Set status using auto-detected task from branch
clickup status set "in progress"
# Set status for a specific task
clickup status set "done" CU-abc123
# Fuzzy matching works too
clickup status set "prog" CU-abc123

status list

List all available statuses for the configured space.

Terminal window
clickup status list
# List statuses for a specific space
clickup status list --space 12345
FlagDescription
--space IDSpace ID to list statuses for (defaults to configured space)

Link GitHub artifacts to ClickUp tasks. All link commands update the task idempotently — by default, links are stored in a managed section of the task description using ClickUp’s markdown_description API field, so they render as rich text with clickable links, bold formatting, and code blocks directly in the ClickUp UI. Optionally, configure a link_field in your config to store links in a custom field instead (see Configuration).

Link a GitHub pull request to a ClickUp task. If NUMBER is not provided, the current PR is detected using the GitHub CLI (gh). The ClickUp task ID is auto-detected from the current git branch. The link is stored idempotently — running the command again updates the existing entry rather than creating a duplicate.

Requires the GitHub CLI to be installed and authenticated.

Terminal window
# Link the current branch's PR to the detected task
clickup link pr
# Link a specific PR by number
clickup link pr 42
# Link a PR from any repo to any task
clickup link pr 42 --repo owner/repo --task CU-abc123
FlagDescription
--task IDTarget task ID (overrides auto-detection from branch)
--repo OWNER/REPOTarget GitHub repository (overrides auto-detection)

Sync ClickUp task info into a GitHub PR description and link back to the task. Inserts or updates a table in the PR body showing the task name, status, priority, and assignees. The update is idempotent — running multiple times replaces the existing block rather than duplicating it.

Terminal window
# Sync the current PR
clickup link sync
# Sync a specific PR
clickup link sync 42
# Sync from any repo to any task
clickup link sync 42 --repo owner/repo --task CU-abc123
FlagDescription
--task IDTarget task ID (overrides auto-detection from branch)
--repo OWNER/REPOTarget GitHub repository (overrides auto-detection)

Link the current git branch to a ClickUp task. Stores the branch name and repository as a link entry on the task.

Terminal window
clickup link branch
# Link to a specific task
clickup link branch --task CU-abc123
FlagDescription
--task IDTarget task ID (overrides auto-detection from branch)

Link a git commit to a ClickUp task. Stores the commit SHA, message, and GitHub URL as a link entry on the task. If SHA is not provided, the HEAD commit is used.

Terminal window
# Link the latest commit
clickup link commit
# Link a specific commit
clickup link commit a1b2c3d
# Link to a specific task
clickup link commit a1b2c3d --task CU-abc123 --repo owner/repo
FlagDescription
--task IDTarget task ID (overrides auto-detection from branch)
--repo OWNER/REPOTarget GitHub repository (overrides auto-detection)

sprint

View and manage sprints. Sprints in ClickUp are organized as lists within a folder.

sprint current

Show tasks in the currently active sprint, grouped by status. Displays assignees, priorities, and due dates. The active sprint is determined by finding the list whose start and due dates contain today.

Terminal window
# Show current sprint tasks
clickup sprint current
# Specify a sprint folder
clickup sprint current --folder 132693664
# JSON output
clickup sprint current --json
FlagDescription
--folder IDSprint folder ID (auto-detected if not set)
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

sprint list

List all sprints in the sprint folder, showing ID, name, status (complete, in progress, upcoming), date range, and task count.

Terminal window
# List all sprints
clickup sprint list
# Specify sprint folder
clickup sprint list --folder 132693664
FlagDescription
--folder IDSprint folder ID (auto-detected if not set)
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

space

Manage ClickUp spaces.

space list

List all spaces in the current workspace.

Terminal window
clickup space list

space select [NAME]

Interactively select a default space. If NAME is provided, the CLI selects the first space matching that name (useful for scripting). The selection is saved to the config file.

Terminal window
# Interactive selection
clickup space select
# Select by name
clickup space select "Engineering"
# Save as a directory default
clickup space select --directory
FlagDescription
--directorySave the selection as a directory default for the current working directory

inbox

inbox

Show recent @mentions across your workspace. Scans recently updated tasks for mentions in both comments and task descriptions.

Terminal window
# Show mentions from the last 7 days (default)
clickup inbox
# Look back 30 days
clickup inbox --days 30
# Scan more tasks in a busy workspace
clickup inbox --limit 500
# JSON output for scripting
clickup inbox --json
FlagDescription
--days NHow many days back to search (default: 7)
--limit NMaximum number of tasks to scan (default: 200)
--jsonOutput as JSON
--jq EXPRFilter JSON output with a jq expression

The command checks both task description text and comment bodies for @username mentions. Description mentions show as “mentioned you in description of” to distinguish them from comment mentions. Since ClickUp does not provide a public inbox API, this approximates your inbox by scanning task data directly.


Utility commands

version

Print the CLI version, commit SHA, and build date.

Terminal window
clickup version

completion <SHELL>

Generate shell completion scripts. Supported shells: bash, zsh, fish, powershell.

Terminal window
clickup completion bash
clickup completion zsh
clickup completion fish
clickup completion powershell

See the Installation page for setup instructions.