Clickup

Other

Track tasks in ClickUp from an AI agent — check open tasks before starting work, log completed work after, and capture future ideas. Use whenever the user asks for something non-trivial or your agent finishes a meaningful action and needs persistent task tracking outside its memory files.

Install

openclaw skills install dyagil-clickup

ClickUp Task Tracking for AI Agents

This skill is tuned for a specific personal ClickUp workspace, but the patterns generalize. Fork it and edit the list IDs in the Configuration section below.

Principle

ClickUp is the persistent task store that lives next to your agent's daily memory files. Use it for active work, completed work, and future ideas — anything the user might later want to ask "what's open?" or "what did you finish this week?" about.

Iron Rules

Before any meaningful request

Before starting non-trivial work, check if a relevant task is already open:

cu list todo      # open tasks
cu search "term"  # quick fuzzy search

Do check when:

  • The user asks for a complex action (build a feature, fix a bug, add a capability).
  • They say "remember this" / "write that down".
  • An idea comes up that isn't urgent but worth keeping.

Don't bother when:

  • Simple info questions ("what time is it", "what did we do yesterday").
  • Quick chat-style replies.
  • Single-turn requests that finish in the same response.

After any meaningful request

When done, log the result:

# Add a new task
cu add "task description" --desc "full details" --priority 2

# Close one
cu done <task_id>

Priority scale:

  • 1 = Urgent (emergency)
  • 2 = High (important feature / critical bug)
  • 3 = Normal (default)
  • 4 = Low (nice-to-have / future idea)

Lists

ListPurpose
todoOpen — what needs doing / in progress
doneCompleted work. On ClickUp Free, cu done flips status to complete instead of moving lists (free plan blocks cross-list moves). cu list done shows all completed items across lists.
ideasFuture ideas, "maybe one day" features

Commands

cu list                   # default: todo
cu list done              # completed
cu list ideas             # future ideas
cu list all               # everything

cu add "task name"                 # adds to todo
cu add "idea"      --list ideas
cu add "critical bug" --priority 1

cu done <id-or-name>      # close task
cu search "term"
cu spaces                 # debug: show workspace structure

Recommended Patterns

Pattern 1 — New request from the user

  1. User: "Add feature X to project Y"
  2. Agent: cu search "X" or cu list todo first — maybe already tracked?
  3. If not: cu add "X" --priority 2
  4. Do the work.
  5. When done: cu done <id>

Pattern 2 — An idea surfaces mid-conversation

User: "It would be nice if Y existed someday."

  • Agent: cu add "Y" --list ideas --priority 4
  • Continue the conversation without breaking flow.

Pattern 3 — Bug fixed inline

While doing other work you discover and fix a bug:

  • After the fix: cu add "[FIXED] bug in sync flow" --list done

Configuration

Before using this skill, edit ~/.openclaw/credentials/clickup/config.json (or cu.cjs:DEFAULT_CONFIG) with your workspace IDs:

{
  "teamId":   "<your-team-id>",
  "spaceId":  "<your-space-id>",
  "folderId": "<your-folder-id>",
  "lists": {
    "todo":  "<list-id-for-active>",
    "done":  "<list-id-for-completed>",
    "ideas": "<list-id-for-ideas>"
  }
}

Get these by running cu spaces after setting your token — it prints the full structure.

Credentials

  • Token: store at ~/.openclaw/credentials/clickup/api_token (chmod 600).
  • Config: ~/.openclaw/credentials/clickup/config.json (optional override).
  • CLI: ~/bin/cu symlinked to your local cu.cjs (Node.js, plain https, no dependencies).

Get an API token at: https://clickup.com/api → Apps → Generate.

API Notes

  • ClickUp returns task.id without prefix (e.g. 86exjx19r). The web app adds t/ in the URL: https://app.clickup.com/t/86exjx19r.
  • Free tier blocks moving tasks between lists. Close-in-place by setting status to complete instead.

ClickUp vs Daily Memory

These complement each other:

Daily memory (memory/YYYY-MM-DD.md)ClickUp
WhatFree-form journal, in-the-momentFormal task list
Content"Talked to X", "debated Y", moments"Need to build X", "fixed bug Z"
Who reads itAgentAgent + user (in ClickUp app)
FrequencyContinuous during conversationOnly for meaningful actions

Rule of thumb: if the user might ask "what did you finish this week?", it belongs in ClickUp.