Your Projects, Controlled by Agents.
Tasks. Goals. Time. Views. 105 commands. Every one doubles as an MCP tool.
ClickUp has no official CLI for agents.
So we built clickup-cli — the missing CLI for agents on ClickUp.


Why clickup-cli Exists
Without clickup-cli
- No official CLI — ClickUp only offers a web UI and REST API
- Agents can’t programmatically manage tasks or projects without custom API wrappers
- Manual API token management per request
- No MCP support — agents can’t call ClickUp as a native tool
- Deep workspace hierarchies require chained API calls with no tooling
With clickup-cli
- 105 commands covering the full ClickUp API v2 surface
- Single API token, 3-tier resolution: flag → env var → config file
- Every command is also an MCP tool — plug into any AI agent
- JSON-first output — pipe to jq, save to files, feed to agents
- Full hierarchy traversal: workspace → space → folder → list → task
Why Use clickup-cli?
Agency Project Management
Agents create client spaces, scaffold projects, assign tasks, and track time — all autonomously. No more manual ClickUp setup for every new client.
Sprint Automation
Break down epics into subtasks, set dependencies, assign team members, and track progress. Sprint planning that takes seconds, not hours.
Time & Resource Tracking
Start/stop timers, log time entries, and generate utilization reports. Know exactly how your team spends their hours.
Goal & OKR Management
Create goals with measurable targets, track progress, and get AI-generated status reports. Keep your team aligned on quarterly objectives.
Cross-Tool Orchestration
Combine with hubspot-cli, instantly-cli, and other TOFU CLIs. Close a deal in HubSpot → auto-create an onboarding project in ClickUp.
Real-Time Event Hooks
Set up webhooks for task status changes, new comments, and assignment updates. Build event-driven workflows that react instantly.
Quick Start
1. Install
npm install -g @bcharleson/clickup-cli2. Get your API token
1. In ClickUp, click your avatar (bottom left) → Settings
2. Navigate to Apps in the left sidebar
3. Under API Token, click Generate (or copy your existing token)
Token starts with pk_ — this is a personal token with your permissions
3. Authenticate
# Option A: environment variable (recommended for agents)
export CLICKUP_API_TOKEN=pk_xxxxx
# Option B: interactive login (saves to ~/.clickup-cli/config.json)
clickup login4. Verify
clickup workspaces list --pretty
# Returns your workspaces as formatted JSON
clickup tasks list --list-id 12345 --pretty
# Returns tasks in the specified listWhat clickup-cli Gives Your Agent
Workspaces & Hierarchy
Full workspace, space, folder, and list management. Navigate and manage the complete ClickUp hierarchy from the terminal.
Tasks & Subtasks
Complete task lifecycle — create, update, assign, set priorities, manage subtasks, and close tasks. Full CRUD with field filtering.
Comments & Checklists
Add threaded comments to tasks, manage checklists and checklist items. Keep task context and progress tracked programmatically.
Time Tracking & Goals
Start/stop timers, log manual time entries, and track goals with targets. Full time tracking and OKR management from the CLI.
Views & Custom Fields
Create and manage views (list, board, calendar, gantt, timeline). Set and update custom fields and tags on any task.
MCP Server
Every command is exposed as an MCP tool. Claude, Cursor, OpenClaw, and any MCP client can call all 105 commands natively.
Agent Workflows
Real prompts agents use to manage ClickUp end-to-end.
New Client Onboarding → Full Project Setup
Agent Prompt
“A new client just signed — create a space called "Acme Corp", add folders for "Onboarding", "Deliverables", and "Meetings", then create a task list in each with the standard onboarding checklist.”
Agent creates the full workspace hierarchy, populates lists with templated tasks, and sets due dates — complete project scaffolding in one autonomous flow.
clickup spaces create --team-id $TEAM --name "Acme Corp"Create the client space
clickup folders create --space-id $SPACE --name "Onboarding"Create onboarding folder
clickup lists create --folder-id $FOLDER --name "Setup Tasks"Create task list in folder
clickup tasks create --list-id $LIST --name "Kickoff call" --priority 2 --assignees $USERCreate first onboarding task
Morning Standup Report
Agent Prompt
“Pull my tasks due today, anything overdue, and what I completed yesterday. Format it as a standup update.”
Agent queries tasks by assignee and due date, filters by status, and compiles a structured standup report — daily standups automated.
clickup tasks list --list-id $LIST --assignees $ME --due-date-lt today --statuses openFind overdue tasks
clickup tasks list --list-id $LIST --assignees $ME --due-date todayGet tasks due today
clickup tasks list --list-id $LIST --assignees $ME --statuses closed --date-updated-gt yesterdayCompleted yesterday
Sprint Planning → Task Breakdown
Agent Prompt
“Break down the "Launch Marketing Site" task into subtasks: design mockups, copy writing, development, QA testing, and deployment. Set priorities and assign to the team.”
Agent creates subtasks with priorities, assigns team members, adds checklists, and sets dependencies — sprint planning done in seconds.
clickup tasks get $TASK_IDGet parent task details
clickup tasks create --list-id $LIST --name "Design Mockups" --parent $TASK_ID --priority 2Create subtask
clickup checklists create --task-id $SUBTASK --name "Design Review"Add checklist to subtask
clickup dependencies create --task-id $DEV --depends-on $DESIGNSet dependency chain
Time Tracking Summary
Agent Prompt
“How much time did the team log on the Acme Corp project this week? Break it down by task and person.”
Agent pulls time entries across all tasks in a space, aggregates by assignee and task, and produces a time utilization report.
clickup tasks list --list-id $LIST --include-subtasks trueGet all project tasks
clickup time-tracking list --task-id $TASKPull time entries per task
clickup members list --list-id $LISTMap user IDs to names
Goal Progress Check
Agent Prompt
“Check our Q2 goals — which targets are on track and which are behind? Update the "Revenue" goal target to $500K.”
Agent pulls all goals, checks target progress, identifies at-risk items, and updates targets — OKR management from the terminal.
clickup goals list --team-id $TEAMList all workspace goals
clickup goals get $GOAL_IDGet goal with target progress
clickup goals update $GOAL_ID --name "Q2 Revenue" --due-date 2026-06-30Update goal metadata
Webhook → Real-Time Automation
Agent Prompt
“Set up a webhook that fires whenever a task is moved to "Done" in the Acme Corp space, so our billing agent can trigger an invoice.”
Agent creates a webhook subscription for task status changes, enabling downstream automations without polling.
clickup webhooks list --team-id $TEAMCheck existing webhooks
clickup webhooks create --team-id $TEAM --endpoint https://api.example.com/invoice --events taskStatusUpdated --space-id $SPACECreate status change webhook
clickup webhooks get $WEBHOOK_IDVerify webhook configuration
Commands Reference
clickup workspaces listList all workspaces (teams) you have access toclickup workspaces get <team-id>Get workspace detailsclickup workspaces seats <team-id>View workspace seat usageclickup spaces list --team-id <id>List all spaces in a workspaceclickup spaces get <space-id>Get space details and featuresclickup spaces create --team-id <id> --name <name>Create a new spaceclickup spaces update <space-id> --name <name>Update space name or settingsclickup spaces delete <space-id>Delete a spaceclickup folders list --space-id <id>List all folders in a spaceclickup folders get <folder-id>Get folder details with listsclickup folders create --space-id <id> --name <name>Create a new folderclickup folders delete <folder-id>Delete a folderclickup lists list --folder-id <id>List all lists in a folderclickup lists get <list-id>Get list detailsclickup lists create --folder-id <id> --name <name>Create a new listclickup lists delete <list-id>Delete a listclickup tasks list --list-id <id> [--assignees] [--statuses] [--due-date]List tasks with filtersclickup tasks get <task-id>Get full task detailsclickup tasks create --list-id <id> --name <name> [--priority] [--assignees] [--due-date]Create a new taskclickup tasks update <task-id> [--name] [--status] [--priority] [--assignees]Update task propertiesclickup tasks delete <task-id>Delete a taskclickup tasks create --list-id <id> --name <name> --parent <task-id>Create a subtaskclickup tasks members <task-id>List task membersclickup tasks tags <task-id>List task tagsclickup comments list --task-id <id>List all comments on a taskclickup comments create --task-id <id> --comment-text <text>Add a comment to a taskclickup comments update <comment-id> --comment-text <text>Update a commentclickup comments delete <comment-id>Delete a commentclickup comments list --list-id <id>List comments on a list (threaded)clickup checklists create --task-id <id> --name <name>Create a checklist on a taskclickup checklists update <checklist-id> --name <name>Rename a checklistclickup checklists delete <checklist-id>Delete a checklistclickup checklists create-item <checklist-id> --name <name>Add an item to a checklistclickup checklists update-item <checklist-id> <item-id> --resolved trueCheck/uncheck a checklist itemclickup custom-fields list --list-id <id>List available custom fields on a listclickup custom-fields set --task-id <id> --field-id <id> --value <val>Set a custom field value on a taskclickup custom-fields remove --task-id <id> --field-id <id>Remove a custom field valueclickup tags list --space-id <id>List all tags in a spaceclickup tags create --space-id <id> --name <name>Create a new tagclickup tags add --task-id <id> --tag-name <name>Add tag to a taskclickup tags remove --task-id <id> --tag-name <name>Remove tag from a taskclickup dependencies create --task-id <id> --depends-on <id>Create a dependency between tasksclickup dependencies delete --task-id <id> --depends-on <id>Remove a dependencyclickup dependencies links --task-id <id>List all task links and dependenciesclickup views list --space-id <id>List views in a spaceclickup views get <view-id>Get view configurationclickup views create --space-id <id> --name <name> --type list|board|calendarCreate a viewclickup views update <view-id> [--name] [--settings]Update view settingsclickup views delete <view-id>Delete a viewclickup time-tracking list --task-id <id>List time entries on a taskclickup time-tracking create --task-id <id> --duration <ms> --start <timestamp>Log a manual time entryclickup time-tracking start --task-id <id>Start a timer on a taskclickup time-tracking stop --task-id <id>Stop the running timerclickup time-tracking delete <interval-id> --task-id <id>Delete a time entryclickup goals list --team-id <id>List all workspace goalsclickup goals get <goal-id>Get goal with targets and progressclickup goals create --team-id <id> --name <name> --due-date <date>Create a goalclickup goals update <goal-id> [--name] [--due-date]Update goal metadataclickup goals delete <goal-id>Delete a goalclickup webhooks list --team-id <id>List all active webhooksclickup webhooks get <webhook-id>Get webhook detailsclickup webhooks create --team-id <id> --endpoint <url> --events <events>Create a webhook subscriptionclickup webhooks update <webhook-id> --endpoint <url>Update a webhookclickup webhooks delete <webhook-id>Delete a webhookclickup users get --team-id <id>Get authorized user detailsclickup guests invite --team-id <id> --email <email>Invite a guest to workspaceclickup guests get --team-id <id> --guest-id <id>Get guest detailsclickup guests remove --team-id <id> --guest-id <id>Remove a guestclickup members list --list-id <id>List members of a listclickup members list --task-id <id>List members of a taskclickup roles list --team-id <id>List available rolesclickup roles create --team-id <id> --name <name>Create a custom roleclickup templates list --team-id <id>List available task templatesclickup templates create --list-id <id> --template-id <id>Create task from templateclickup login [--token <token>]Authenticate and save token to config fileclickup logoutClear saved credentialsclickup status [--pretty]Show authentication state and workspace infoMCP Server Setup
Every command is available as an MCP tool. Configure once and your agent has full ClickUp access.
{
"mcpServers": {
"clickup": {
"command": "npx",
"args": ["@bcharleson/clickup-cli", "mcp"],
"env": {
"CLICKUP_API_TOKEN": "pk_xxxxx"
}
}
}
}MCP tools registered (105 total):
OpenClaw Agent Setup
Give any OpenClaw agent full ClickUp access. Install once, set the token, and the agent manages your projects autonomously.
Architecture
Every API endpoint is a CommandDefinition — one source of truth powering both the CLI subcommand and the MCP tool. Metadata-driven with Zod validation and declarative endpoint definitions.
src/
├── core/
│ ├── types.ts # CommandDefinition, ClickUpClient interfaces
│ ├── client.ts # REST client (exponential backoff, rate limiting)
│ ├── auth.ts # 3-tier token resolution
│ ├── config.ts # ~/.clickup-cli/config.json
│ └── output.ts # JSON output + --fields filtering
├── commands/
│ ├── workspaces/ # 3 commands
│ ├── spaces/ # 5 commands
│ ├── folders/ # 4 commands
│ ├── lists/ # 4 commands
│ ├── tasks/ # 8 commands
│ ├── comments/ # 5 commands
│ ├── checklists/ # 5 commands
│ ├── custom-fields/ # 3 commands
│ ├── tags/ # 4 commands
│ ├── dependencies/ # 3 commands
│ ├── views/ # 5 commands
│ ├── time-tracking/ # 5 commands
│ ├── goals/ # 5 commands
│ ├── webhooks/ # 5 commands
│ ├── users/ # 1 command
│ ├── guests/ # 3 commands
│ ├── members/ # 2 commands
│ ├── templates/ # 2 commands
│ └── roles/ # 2 commands
└── mcp/
└── server.ts # MCP server (auto-registers all commands as tools)Same pattern as all TOFU CLIs
The CommandDefinition architecture is shared across instantly-cli, clay-gtm-cli, hubspot-cli, partnerstack-cli, heyreach-cli, and ms365-cli. One schema definition generates the Commander.js subcommand, the Zod schema, and the MCP tool — zero duplication.
ClickUp API v2 Specifics
Uses Authorization header with personal API tokens. Deep workspace hierarchy (workspace → space → folder → list → task). Rate limiting with exponential backoff. Separate endpoints for each resource type.
Ready to give your agent full project control?
Install clickup-cli, set your API token in 60 seconds, and your agent can create tasks, track time, manage goals, and run your entire ClickUp workspace.
Need agents managing your ClickUp projects? We deploy and manage the full setup.