clickup-cli
A CLI for the ClickUp API, optimized for AI agents and human users. Covers all ~130 endpoints across 28 resource groups and 4 utility commands.
Why?
ClickUp's API responses are massive. A single task list query returns deeply nested JSON — statuses, assignees, priorities, custom fields, checklists, dependencies — easily 12,000+ tokens for just 5 tasks. For AI agents (Claude Code, Cursor, Copilot, etc.) operating within context windows, this is a serious problem: a few API calls can consume most of an agent's available context.
clickup-cli solves this with token-efficient output by default:
Full API JSON for 5 tasks: ~12,000 tokens (450 lines)
clickup-cli table output: ~150 tokens (7 lines)
Reduction: ~98%
The CLI flattens nested objects, selects only essential fields, and renders compact tables. Agents get the information they need without drowning in JSON. When you need the full response, --output json is always available.
Beyond token efficiency, clickup-cli gives AI agents a simple, predictable interface to ClickUp: clickup <resource> <action> [ID] [flags]. No SDK, no auth boilerplate, no JSON parsing — just shell commands with structured output.
Install
macOS (Homebrew)
To upgrade to the latest version:
macOS / Linux (pre-built binary)
Download the latest release for your platform:
# macOS Apple Silicon (M1/M2/M3/M4)
|
# macOS Intel
|
# Linux x86_64
|
# Linux ARM64
|
Windows
Download clickup-windows-x86_64.zip from the latest release, extract it, and add clickup.exe to your PATH.
From source (any platform)
Requires Rust 1.70+:
Verify installation
# clickup 0.5.2
Quick Start
# Configure your API token
# Or non-interactive
# Verify
Usage Examples
# Hierarchy navigation
# Task management
# Comments and collaboration
# Time tracking
# Goals and views
# Tags and custom fields
# Chat (v3)
# Docs (v3)
# Output modes
Command Groups
| Group | Commands |
|---|---|
setup |
Configure token and workspace |
auth |
whoami, check |
workspace |
list, seats, plan |
space |
list, get, create, update, delete |
folder |
list, get, create, update, delete |
list |
list, get, create, update, delete, add-task, remove-task |
task |
list, search, get, create, update, delete, time-in-status, add-tag, remove-tag, add-dep, remove-dep, link, unlink, move, set-estimate, replace-estimates |
checklist |
create, update, delete, add-item, update-item, delete-item |
comment |
list, create, update, delete, replies, reply |
tag |
list, create, update, delete |
field |
list, set, unset |
task-type |
list |
attachment |
list, upload |
time |
list, get, current, create, update, delete, start, stop, tags, add-tags, remove-tags, rename-tag, history |
goal |
list, get, create, update, delete, add-kr, update-kr, delete-kr |
view |
list, get, create, update, delete, tasks |
member |
list |
user |
invite, get, update, remove |
chat |
channel-list, channel-create, channel-get, channel-update, channel-delete, dm, message-list, message-send, message-update, message-delete, reaction-list, reaction-add, reaction-remove, reply-list, reply-send, and more |
doc |
list, create, get, pages, add-page, page, edit-page |
webhook |
list, create, update, delete |
template |
list, apply-task, apply-list, apply-folder |
guest |
invite, get, update, remove, share-task, unshare-task, share-list, unshare-list, share-folder, unshare-folder |
group |
list, create, update, delete |
role |
list |
shared |
list |
audit-log |
query |
acl |
update |
| Utilities | |
status |
Show current config, token (masked), workspace |
completions |
Generate shell completions (bash, zsh, fish, powershell) |
agent-config |
show, inject — CLI reference for AI agent configs |
mcp |
serve — MCP server for native LLM tool integration |
AI Agent Integration
Two ways to connect AI agents to ClickUp:
Recommended: CLI Mode (shell commands)
The CLI approach is the most token-efficient way to give an agent ClickUp access. Injecting the command reference costs ~1,000 tokens once, and every command returns compact table output (~150 tokens for 5 tasks). There are no tool schemas consuming context. Works with any LLM/agent framework.
Auto-detection checks for existing files in order: CLAUDE.md, agent.md, AGENT.md, .cursorrules, .github/copilot-instructions.md. Falls back to creating CLAUDE.md if none exist.
The agent then runs CLI commands directly — the full ClickUp API in ~1,000 tokens of instructions.
Alternative: MCP Server (native tool calls)
For Claude Desktop, Cursor, and other MCP-capable tools that prefer native tool integration. Note: MCP tool schemas consume more tokens in the agent's context than the CLI reference approach.
This exposes 18 tools (task CRUD, search, comments, time tracking, and more) as native tool calls — no shell commands needed. See the MCP documentation for full setup.
Configuration
Config Files
| Level | File | Use case |
|---|---|---|
| Project | .clickup.toml |
Per-project token/workspace (team repos, CI) |
| Global | ~/.config/clickup-cli/config.toml |
Personal default |
Create a project-level config:
This creates .clickup.toml in the current directory. Add it to .gitignore if it contains a token. Project config takes priority over global config.
Token Resolution (highest priority wins)
--tokenCLI flagCLICKUP_TOKENenvironment variable.clickup.toml(project-level)~/.config/clickup-cli/config.toml(global)
Workspace Resolution
--workspaceCLI flagCLICKUP_WORKSPACEenvironment variable.clickup.toml(project-level)~/.config/clickup-cli/config.toml(global)
Check Current Config
clickup-cli v0.5.2
Config: ~/.config/clickup-cli/config.toml
Token: pk_441...RB4Y
Workspace: 2648001
Shell Completions
# Bash
# Zsh
# Fish
# PowerShell
Output Modes
| Flag | Description |
|---|---|
| (default) | Aligned table with essential fields |
--output json |
Full API response |
--output json-compact |
Default fields as JSON |
--output csv |
CSV format |
-q / --quiet |
IDs only, one per line |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Client error (bad input) |
| 2 | Auth/permission error (401, 403) |
| 3 | Not found (404) |
| 4 | Rate limited (429) |
| 5 | Server error (5xx) |
License
Apache-2.0