
Clickup
- 48 installs
- 76 repo stars
- Updated August 4, 2026
- vm0-ai/vm0-skills
Helps with ai & agent building tasks during AI-assisted development.
About
clickup is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- clickup
- AI & Agent Building
- AI-coding skill
Clickup by the numbers
- 48 all-time installs (skills.sh)
- Ranked #7,459 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vm0-ai/vm0-skills --skill clickupAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 48 |
|---|---|
| repo stars | ★ 76 |
| Last updated | August 4, 2026 |
| Repository | vm0-ai/vm0-skills ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
Troubleshooting
If requests fail, run zero doctor check-connector --env-name CLICKUP_TOKEN or zero doctor check-connector --url https://api.clickup.com/api/v2/user --method GET
How to Use
All examples below assume you have CLICKUP_TOKEN set.
Base URL: https://api.clickup.com/api/v2
ClickUp uses numeric IDs for all resources. The hierarchy is: Workspace (team) > Space > Folder > List > Task.
User & Workspaces
Get Authorized User
curl -s "https://api.clickup.com/api/v2/user" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.user | {id, username, email}'List Workspaces
curl -s "https://api.clickup.com/api/v2/team" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.teams[] | {id, name}'Spaces
List Spaces in a Workspace
curl -s "https://api.clickup.com/api/v2/team/<team_id>/space?archived=false" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.spaces[] | {id, name}'Get Space Details
curl -s "https://api.clickup.com/api/v2/space/<space_id>" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.'Create Space
Write to /tmp/clickup_request.json:
{
"name": "New Space",
"multiple_assignees": true,
"features": {
"due_dates": { "enabled": true },
"time_tracking": { "enabled": true }
}
}curl -s -X POST "https://api.clickup.com/api/v2/team/<team_id>/space" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name}'Delete Space
curl -s -X DELETE "https://api.clickup.com/api/v2/space/<space_id>" --header "Authorization: Bearer $CLICKUP_TOKEN"Folders
List Folders in a Space
curl -s "https://api.clickup.com/api/v2/space/<space_id>/folder?archived=false" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.folders[] | {id, name}'Create Folder
Write to /tmp/clickup_request.json:
{
"name": "New Folder"
}curl -s -X POST "https://api.clickup.com/api/v2/space/<space_id>/folder" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name}'Update Folder
Write to /tmp/clickup_request.json:
{
"name": "Updated Folder Name"
}curl -s -X PUT "https://api.clickup.com/api/v2/folder/<folder_id>" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name}'Delete Folder
curl -s -X DELETE "https://api.clickup.com/api/v2/folder/<folder_id>" --header "Authorization: Bearer $CLICKUP_TOKEN"Lists
List Lists in a Folder
curl -s "https://api.clickup.com/api/v2/folder/<folder_id>/list?archived=false" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.lists[] | {id, name, task_count}'List Folderless Lists in a Space
curl -s "https://api.clickup.com/api/v2/space/<space_id>/list?archived=false" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.lists[] | {id, name, task_count}'Create List
Write to /tmp/clickup_request.json:
{
"name": "New List",
"content": "List description here"
}curl -s -X POST "https://api.clickup.com/api/v2/folder/<folder_id>/list" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name}'Update List
Write to /tmp/clickup_request.json:
{
"name": "Updated List Name",
"content": "Updated description"
}curl -s -X PUT "https://api.clickup.com/api/v2/list/<list_id>" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name}'Delete List
curl -s -X DELETE "https://api.clickup.com/api/v2/list/<list_id>" --header "Authorization: Bearer $CLICKUP_TOKEN"Tasks
List Tasks in a List
curl -s "https://api.clickup.com/api/v2/list/<list_id>/task?archived=false" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.tasks[] | {id, name, status: .status.status, assignees: [.assignees[].username], due_date}'Get Task Details
curl -s "https://api.clickup.com/api/v2/task/<task_id>" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '{id, name, description, status: .status.status, priority: .priority, due_date, assignees: [.assignees[].username]}'Create Task
Write to /tmp/clickup_request.json:
{
"name": "New Task",
"description": "Task description here",
"status": "to do",
"priority": 3,
"due_date": 1774934400000,
"due_date_time": false
}curl -s -X POST "https://api.clickup.com/api/v2/list/<list_id>/task" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name, status: .status.status}'Create Task with Assignees
Write to /tmp/clickup_request.json:
{
"name": "Assigned Task",
"description": "Task with assignees",
"assignees": [123456],
"status": "to do",
"priority": 2
}curl -s -X POST "https://api.clickup.com/api/v2/list/<list_id>/task" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name, assignees: [.assignees[].username]}'Update Task
Write to /tmp/clickup_request.json:
{
"name": "Updated Task Name",
"description": "Updated description",
"status": "in progress",
"priority": 1
}curl -s -X PUT "https://api.clickup.com/api/v2/task/<task_id>" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '{id, name, status: .status.status}'Delete Task
curl -s -X DELETE "https://api.clickup.com/api/v2/task/<task_id>" --header "Authorization: Bearer $CLICKUP_TOKEN"Get Filtered Team Tasks
curl -s "https://api.clickup.com/api/v2/team/<team_id>/task?statuses[]=to%20do&statuses[]=in%20progress&assignees[]=<user_id>&page=0" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.tasks[] | {id, name, status: .status.status}'Comments
List Task Comments
curl -s "https://api.clickup.com/api/v2/task/<task_id>/comment" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.comments[] | {id, comment_text, user: .user.username, date}'Create Task Comment
Write to /tmp/clickup_request.json:
{
"comment_text": "This is a comment on the task."
}curl -s -X POST "https://api.clickup.com/api/v2/task/<task_id>/comment" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '.'Update Comment
Write to /tmp/clickup_request.json:
{
"comment_text": "Updated comment text."
}curl -s -X PUT "https://api.clickup.com/api/v2/comment/<comment_id>" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '.'Delete Comment
curl -s -X DELETE "https://api.clickup.com/api/v2/comment/<comment_id>" --header "Authorization: Bearer $CLICKUP_TOKEN"Time Tracking
List Time Entries
curl -s "https://api.clickup.com/api/v2/team/<team_id>/time_entries" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.data[] | {id, task: .task.name, duration, start, end}'Create Time Entry
Write to /tmp/clickup_request.json:
{
"description": "Working on task",
"start": 1774934400000,
"duration": 3600000,
"tid": "<task_id>"
}curl -s -X POST "https://api.clickup.com/api/v2/team/<team_id>/time_entries" --header "Authorization: Bearer $CLICKUP_TOKEN" --header "Content-Type: application/json" -d @/tmp/clickup_request.json | jq '.data | {id, duration, start}'Delete Time Entry
curl -s -X DELETE "https://api.clickup.com/api/v2/team/<team_id>/time_entries/<timer_id>" --header "Authorization: Bearer $CLICKUP_TOKEN"Tags
List Space Tags
curl -s "https://api.clickup.com/api/v2/space/<space_id>/tag" --header "Authorization: Bearer $CLICKUP_TOKEN" | jq '.tags[] | {name, tag_fg, tag_bg}'Add Tag to Task
curl -s -X POST "https://api.clickup.com/api/v2/task/<task_id>/tag/<tag_name>" --header "Authorization: Bearer $CLICKUP_TOKEN"Remove Tag from Task
curl -s -X DELETE "https://api.clickup.com/api/v2/task/<task_id>/tag/<tag_name>" --header "Authorization: Bearer $CLICKUP_TOKEN"Guidelines
1. ClickUp uses numeric IDs for all resources. Use jq to extract id and name fields. 2. The resource hierarchy is: Workspace (team) > Space > Folder > List > Task. Lists can also exist directly under a Space (folderless lists). 3. Task statuses are lowercase strings (e.g., to do, in progress, complete). Available statuses depend on the list configuration. 4. Priority values: 1 (urgent), 2 (high), 3 (normal), 4 (low). Use null for no priority. 5. Dates are Unix timestamps in milliseconds. Convert with: date -d "2026-04-01" +%s000. 6. Pagination: tasks endpoint returns up to 100 results per page. Use page=0, page=1, etc. 7. Use archived=false query parameter to exclude archived items from list endpoints. 8. Write request bodies to /tmp/clickup_request.json before sending. 9. Rate limits: ClickUp allows 100 requests per minute per token. Back off on 429 responses. 10. Use <placeholder> for dynamic IDs that the user must replace (e.g., <task_id>, <list_id>).