Clickup

ToolByIronHubVersion0.1.0

No description.

Install
$ironclaw hub install clickup

Description

ClickUp integration tool for the IronClaw agent runtime. Wraps the ClickUp v2 REST API across workspaces, spaces, folders, lists, tasks, task comments, time tracking, goals, and the authenticated user. OAuth 2.0 user-context authentication against app.clickup.com.

Actions

ActionSurfaceNotes
get_authenticated_useridentityReturns the authenticated user's id, username, email, color, profile picture.
list_workspacesworkspacesThe v2 API uses the legacy term team; this action surfaces the modern name.
list_spacesspacesWorkspace-scoped. Optional archived toggle.
get_spacespacesReturns statuses, features, and multiple-assignees configuration.
list_foldersfoldersSpace-scoped. Optional archived toggle.
get_folderfoldersIncludes nested lists.
list_listslistsFolder-scoped.
list_folderless_listslistsLists that live directly under a space without a folder parent.
get_listlistsReturns assignee, due date, priority metadata.
create_listlistsFolder-scoped. Optional content, due date, priority, assignee, status.
list_taskstasksList-scoped with status, assignee, tag, and due-date filters.
list_filtered_team_taskstasksWorkspace-scoped cross-list filter. The exec workhorse.
get_tasktasksOptional custom_task_ids for human-readable IDs (requires workspace_id).
create_tasktasksName plus optional description, assignees, tags, status, priority, due/start dates, parent.
update_tasktasksPartial update. Assignees use assignees_add and assignees_rem for incremental change.
delete_tasktasksHard delete.
add_task_tagtasksTag must already exist on the parent space.
remove_task_tagtasksRemoves the tag association without deleting the tag.
list_task_commentscommentsCursor pagination via start (timestamp ms) and start_id.
create_task_commentcommentsOptional assignee for accountability comments.
update_commentcommentsEdit body, reassign, or mark resolved.
delete_commentcommentsHard delete.
list_time_entriestime trackingWorkspace-scoped with date range, assignee, and location filters.
get_running_time_entrytime trackingThe currently running timer for the authenticated user (or any assignee).
list_goalsgoalsWorkspace-scoped. Optional include-completed toggle.
get_goalgoalsReturns key results and progress.

Authentication

OAuth 2.0 user-context against app.clickup.com. ClickUp's OAuth implementation is non-standard:

  • Authorization URL: https://app.clickup.com/api (not /oauth/authorize).
  • Token URL: https://api.clickup.com/api/v2/oauth/token. Accepts JSON or form-encoded body.
  • No scope parameter. The issued token grants the consenting user's full account authority.
  • No PKCE support.
  • Tokens do not expire and no refresh tokens are issued. Re-authentication is required only when the user revokes the app from their ClickUp Settings.

The host injects Authorization: Bearer <token> on api.clickup.com/api/v2/ requests. The WASM tool never sees the raw token.

Setup

  1. Sign in to https://app.clickup.com and open Settings, Apps, ClickUp API for the workspace that will host the integration.

  2. Create OAuth App. Set Name (e.g. IronClaw ClickUp Tool) and Redirect URL http://localhost:9876/callback.

  3. Save the app. Copy the Client ID into CLICKUP_OAUTH_CLIENT_ID and the Client Secret into CLICKUP_OAUTH_CLIENT_SECRET.

  4. Export the client id and secret on the IronClaw host (or write them to ~/.ironclaw/.env):

    export CLICKUP_OAUTH_CLIENT_ID=...
    export CLICKUP_OAUTH_CLIENT_SECRET=...
    
  5. Run ironclaw tool auth clickup. A browser opens to the consent screen, the callback lands on localhost:9876, and the host stores the token.

Inputs

The schema is derived from the ClickupAction tagged enum in src/types.rs via schemars and surfaced through the schema() Guest function. The agent discovers the action surface by calling tool_info.

Identifier shapes

ClickUp identifiers are short alphanumeric strings (abc123), not numeric. Every *_id parameter is a String. The exception is assignee and member IDs, which are user-account integers.

For tasks, ClickUp also exposes a "custom task ID" (CTI) format like CU-123. To address a task by its CTI rather than its native id, set custom_task_ids: true and pass the workspace id via workspace_id. The v2 API treats the workspace id as team_id on the wire; the tool handles the rename.

Workspace vs team

The v2 API uses /team as the workspace endpoint root. The tool exposes list_workspaces for clarity but reads from /team. Path parameters that the API names team_id are surfaced as workspace_id in tool inputs.

Out of scope (v1)

Custom field manipulation, view CRUD, webhook CRUD, attachment upload, checklist item editing, dependency and task-link management, guest management, user group/role/seat administration, task templates. The manifest format leaves room to add these later without breaking changes.

Build

cargo build --release --target wasm32-wasip2

Produces target/wasm32-wasip2/release/clickup_tool.wasm. Install into IronClaw by copying that file plus clickup-tool.capabilities.json into ~/.ironclaw/tools/.

License

Dual MIT and Apache-2.0. See the repository root for license files.

Specifications

WIT Interface0.3.0
Action Capacity26 actions
Auth ModelOAuth 2.0 user-context
Source Pathtools/clickup

Security & Network

Network Allowlist
api.clickup.comapp.clickup.com
Required Secrets
clickup_oauth_token

Constraints & Tags

Known Limits
  • Produces `target/wasm32-wasip2/release/clickup_tool.wasm`. Install into IronClaw by copying that file plus `clickup-tool.capabilities.json` into `~/.ironclaw/tools/`.
Technical Tags
WASM toolOAuthHTTP allowlist

Standalone tool trunk without current skill branches.