/clickup:list - List ClickUp Tasks
Purpose
Fetch and display user stories/bugs from ClickUp filtered by status.
Usage
/clickup:list # Default: "To Do" tasks
/clickup:list --status "in progress" # Tasks currently being worked on
/clickup:list --status "to review" # Tasks ready for review
/clickup:list --all # All tasks (all statuses)
Common Status Filters
| Status |
Use Case |
to do |
Tasks ready to start (default) |
in progress |
Tasks currently being worked on |
to review |
Tasks awaiting review |
done |
Completed tasks |
--all |
All tasks across all statuses |
Behavioral Flow
When this command is invoked:
Load Environment: Read ClickUp credentials from the project's .env file:
CLICKUP_TOKEN - API authentication token
CLICKUP_LIST_ID - The ClickUp list to fetch tasks from
Parse Status Filter:
- Default:
To Do
- If
--status provided, use that status (URL encode spaces as %20)
Fetch Tasks: Call ClickUp API with the specified status and format with jq:
# IMPORTANT:
# - Always use jq to format output compactly to avoid truncation
# - Use subtasks=true to ensure ALL tasks are returned (not just first page)
# - The API may paginate results; subtasks=true bypasses this for most cases
# Default (To Do) - formatted output
curl -s "https://api.clickup.com/api/v2/list/${CLICKUP_LIST_ID}/task?statuses[]=To%20Do&include_closed=false&subtasks=true" \
-H "Authorization: ${CLICKUP_TOKEN}" | jq -r '
"📋 Tasks Ready for Development (To Do)\n",
(.tasks[] | "• [\(.id)] \(if (.tags | map(.name) | contains(["bug"])) then "🐛" elif (.tags | map(.name) | contains(["story"])) then "📖" else " " end) \(.name)"),
"",
"Found \(.tasks | length) tasks ready for development.",
"",
"💡 Use: /clickup:process <id> to set up a worktree and start"
'
# In Progress - with branch info
curl -s "https://api.clickup.com/api/v2/list/${CLICKUP_LIST_ID}/task?statuses[]=in%20progress&include_closed=false&subtasks=true" \
-H "Authorization: ${CLICKUP_TOKEN}" | jq -r '
"📋 Tasks In Progress\n",
(.tasks[] | "• [\(.id)] \(if (.tags | map(.name) | contains(["bug"])) then "🐛" elif (.tags | map(.name) | contains(["story"])) then "📖" else " " end) \(.name)\n Branch: \((.custom_fields[] | select(.name == "branch") | .value) // "not set")"),
"",
"Found \(.tasks | length) tasks in progress.",
"",
"💡 Use: /clickup:work <id> to spawn a subagent to work on a task",
"💡 Use: /clickup:work --all to work on all in-progress tasks",
"💡 Use: /clickup:done to complete a task"
'
# All statuses - comprehensive view
curl -s "https://api.clickup.com/api/v2/list/${CLICKUP_LIST_ID}/task?include_closed=false&subtasks=true" \
-H "Authorization: ${CLICKUP_TOKEN}" | jq -r '
"📋 All Tasks\n",
(.tasks[] | "• [\(.id)] \(if (.tags | map(.name) | contains(["bug"])) then "🐛" elif (.tags | map(.name) | contains(["story"])) then "📖" else " " end) [\(.status.status)] \(.name)"),
"",
"Found \(.tasks | length) total tasks."
'
Format Output: Display tasks in a formatted table with:
- Task ID (for use with
/clickup:process or /clickup:work)
- Type (bug or story based on tags)
- Priority (Urgent, High, Normal, Low)
- Title
- Branch (if available, for "In Progress" tasks)
Show Next Steps: Context-aware suggestions based on status
Expected Output Format
"To Do" Tasks (Default)
📋 Tasks Ready for Development (To Do)
• [86bqy2f6j] 🐛 Fix payment webhook race condition
• [86bqy3abc] 📖 Add user profile avatar upload
• [def456uvw] 📖 Update dashboard layout for better mobile responsiveness
Found 48 tasks ready for development.
💡 Use: /clickup:process <id> to set up a worktree and start
"In Progress" Tasks
📋 Tasks In Progress
• [86bqy2f6j] 🐛 Fix payment webhook race condition
Branch: fix/86bqy2f6j-payment-webhook
• [abc123def] 📖 Add user profile feature with avatar upload support
Branch: feature/abc123def-user-profile
Found 2 tasks in progress.
💡 Use: /clickup:work <id> to spawn a subagent to work on a task
💡 Use: /clickup:work --all to work on all in-progress tasks
💡 Use: /clickup:done to complete a task
All Tasks (--all)
📋 All Tasks
• [86bqy2f6j] 🐛 [in progress] Fix payment webhook race condition
• [86bqy3abc] 📖 [to do] Add user profile avatar upload
• [def456uvw] 📖 [to review] Update dashboard layout for better mobile responsiveness
Found 50 total tasks.
Error Handling
- If
CLICKUP_TOKEN is not set: Show error with instructions to set it in .env
- If
CLICKUP_LIST_ID is not set: Show error with instructions
- If API call fails: Show error message from ClickUp
- If no tasks found: Show friendly message that no tasks match the filter
Tool Coordination
- Bash: Execute curl commands for ClickUp API calls
- Read: Load
.env file to get credentials
ARGUMENTS: $ARGUMENTS
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: list3description: Fetch and display ClickUp tasks ready for development Use when this capability is needed.4---56# /clickup:list - List ClickUp Tasks78## Purpose9Fetch and display user stories/bugs from ClickUp filtered by status.1011## Usage12```13/clickup:list # Default: "To Do" tasks14/clickup:list --status "in progress" # Tasks currently being worked on15/clickup:list --status "to review" # Tasks ready for review16/clickup:list --all # All tasks (all statuses)17```1819## Common Status Filters20| Status | Use Case |21|--------|----------|22| `to do` | Tasks ready to start (default) |23| `in progress` | Tasks currently being worked on |24| `to review` | Tasks awaiting review |25| `done` | Completed tasks |26| `--all` | All tasks across all statuses |2728## Behavioral Flow2930When this command is invoked:31321. **Load Environment**: Read ClickUp credentials from the project's `.env` file:33 - `CLICKUP_TOKEN` - API authentication token34 - `CLICKUP_LIST_ID` - The ClickUp list to fetch tasks from35362. **Parse Status Filter**:37 - Default: `To Do`38 - If `--status` provided, use that status (URL encode spaces as `%20`)39403. **Fetch Tasks**: Call ClickUp API with the specified status and format with jq:41 ```bash42 # IMPORTANT:43 # - Always use jq to format output compactly to avoid truncation44 # - Use subtasks=true to ensure ALL tasks are returned (not just first page)45 # - The API may paginate results; subtasks=true bypasses this for most cases4647 # Default (To Do) - formatted output48 curl -s "https://api.clickup.com/api/v2/list/${CLICKUP_LIST_ID}/task?statuses[]=To%20Do&include_closed=false&subtasks=true" \49 -H "Authorization: ${CLICKUP_TOKEN}" | jq -r '50 "📋 Tasks Ready for Development (To Do)\n",51 (.tasks[] | "• [\(.id)] \(if (.tags | map(.name) | contains(["bug"])) then "🐛" elif (.tags | map(.name) | contains(["story"])) then "📖" else " " end) \(.name)"),52 "",53 "Found \(.tasks | length) tasks ready for development.",54 "",55 "💡 Use: /clickup:process <id> to set up a worktree and start"56 '5758 # In Progress - with branch info59 curl -s "https://api.clickup.com/api/v2/list/${CLICKUP_LIST_ID}/task?statuses[]=in%20progress&include_closed=false&subtasks=true" \60 -H "Authorization: ${CLICKUP_TOKEN}" | jq -r '61 "📋 Tasks In Progress\n",62 (.tasks[] | "• [\(.id)] \(if (.tags | map(.name) | contains(["bug"])) then "🐛" elif (.tags | map(.name) | contains(["story"])) then "📖" else " " end) \(.name)\n Branch: \((.custom_fields[] | select(.name == "branch") | .value) // "not set")"),63 "",64 "Found \(.tasks | length) tasks in progress.",65 "",66 "💡 Use: /clickup:work <id> to spawn a subagent to work on a task",67 "💡 Use: /clickup:work --all to work on all in-progress tasks",68 "💡 Use: /clickup:done to complete a task"69 '7071 # All statuses - comprehensive view72 curl -s "https://api.clickup.com/api/v2/list/${CLICKUP_LIST_ID}/task?include_closed=false&subtasks=true" \73 -H "Authorization: ${CLICKUP_TOKEN}" | jq -r '74 "📋 All Tasks\n",75 (.tasks[] | "• [\(.id)] \(if (.tags | map(.name) | contains(["bug"])) then "🐛" elif (.tags | map(.name) | contains(["story"])) then "📖" else " " end) [\(.status.status)] \(.name)"),76 "",77 "Found \(.tasks | length) total tasks."78 '79 ```80814. **Format Output**: Display tasks in a formatted table with:82 - Task ID (for use with `/clickup:process` or `/clickup:work`)83 - Type (bug or story based on tags)84 - Priority (Urgent, High, Normal, Low)85 - Title86 - Branch (if available, for "In Progress" tasks)87885. **Show Next Steps**: Context-aware suggestions based on status8990## Expected Output Format9192### "To Do" Tasks (Default)93```94📋 Tasks Ready for Development (To Do)9596• [86bqy2f6j] 🐛 Fix payment webhook race condition97• [86bqy3abc] 📖 Add user profile avatar upload98• [def456uvw] 📖 Update dashboard layout for better mobile responsiveness99100Found 48 tasks ready for development.101102💡 Use: /clickup:process <id> to set up a worktree and start103```104105### "In Progress" Tasks106```107📋 Tasks In Progress108109• [86bqy2f6j] 🐛 Fix payment webhook race condition110 Branch: fix/86bqy2f6j-payment-webhook111• [abc123def] 📖 Add user profile feature with avatar upload support112 Branch: feature/abc123def-user-profile113114Found 2 tasks in progress.115116💡 Use: /clickup:work <id> to spawn a subagent to work on a task117💡 Use: /clickup:work --all to work on all in-progress tasks118💡 Use: /clickup:done to complete a task119```120121### All Tasks (--all)122```123📋 All Tasks124125• [86bqy2f6j] 🐛 [in progress] Fix payment webhook race condition126• [86bqy3abc] 📖 [to do] Add user profile avatar upload127• [def456uvw] 📖 [to review] Update dashboard layout for better mobile responsiveness128129Found 50 total tasks.130```131132## Error Handling133134- If `CLICKUP_TOKEN` is not set: Show error with instructions to set it in `.env`135- If `CLICKUP_LIST_ID` is not set: Show error with instructions136- If API call fails: Show error message from ClickUp137- If no tasks found: Show friendly message that no tasks match the filter138139## Tool Coordination140141- **Bash**: Execute curl commands for ClickUp API calls142- **Read**: Load `.env` file to get credentials143144ARGUMENTS: $ARGUMENTS145146---147> Converted and distributed by [TomeVault](https://tomevault.io/claim/methuz) — claim your Tome and manage your conversions.148<!-- tomevault:4.0:skill_md:2026-04-13 -->