npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

clickup-cu

v0.1.14

Published

Fast ClickUp CLI for daily task workflow, with optional Pi prompt shortcut.

Readme

clickup-cu

Fast zero-dependency ClickUp CLI for daily task control from terminal or Pi.

cu today
cu start TASK_ID
cu stop
cu estimate TASK_ID 2h
cu done TASK_ID

TASK_ID, PARENT_TASK_ID, USER_ID, WORKSPACE_ID, and LIST_ID are placeholders. Replace them with your ClickUp values.

Why

Use cu when opening ClickUp just to check tasks, start/stop timers, change status, or set estimates feels slow.

cu talks directly to the ClickUp REST API:

Terminal/Pi -> cu -> ClickUp REST API

It is faster and simpler than using MCP for daily repeated actions. Use ClickUp UI or MCP for rare/complex operations.

Install

Requires Node.js 18+.

npm install -g clickup-cu
cu help

Use global install. Local install inside another project usually is not needed.

If another system cu exists, check PATH:

command -v cu      # macOS/Linux
where.exe cu       # Windows

Setup

Get a ClickUp API token:

ClickUp -> Profile/avatar -> Settings -> Apps -> API Token -> Generate

Save it:

cu token pk_your_token_here

Then create config:

cu init

Files:

~/.config/cu/token
~/.config/cu/config.json

Both are written with owner-only permissions (0600). Environment variables also work and override the token file:

export CLICKUP_API_TOKEN="pk_your_token_here"
# or
export CLICKUP_TOKEN="pk_your_token_here"

Example config:

{
  "workspaceId": "YOUR_WORKSPACE_ID",
  "userId": "YOUR_USER_ID",
  "defaultListId": "YOUR_LIST_ID",
  "statuses": {
    "backlog": "BACKLOG",
    "todo": "TO-DO",
    "start": "IN PROGRESS",
    "review": "REVIEW",
    "qa": "QA/TESTING",
    "blocked": "BLOCKED",
    "release": "READY FOR RELEASE",
    "done": "DONE"
  }
}

Daily workflow

cu today                         # dashboard: timer + due/active/blocked/open tasks
cu list                          # list your open tasks
cu list all                      # list open tasks without assignee filter
cu list status "IN PROGRESS"     # list by status
cu show TASK_ID                  # show task details

cu start TASK_ID                 # set IN PROGRESS + start timer
cu progress TASK_ID              # set IN PROGRESS only
cu stop                          # stop current timer
cu done TASK_ID                  # set DONE

Status shortcuts:

cu backlog TASK_ID
cu todo TASK_ID
cu review TASK_ID
cu qa TASK_ID
cu testing TASK_ID
cu blocked TASK_ID
cu release TASK_ID

Time:

cu estimate TASK_ID 2h
cu estimate TASK_ID 2h 30m
cu estimate TASK_ID 45m
cu addtime TASK_ID 45m "backend work"

Create/update:

cu create "Fix login bug"
cu subtask PARENT_TASK_ID "Add API validation"
cu assign TASK_ID me
cu assign TASK_ID USER_ID ANOTHER_USER_ID

Commands

| Command | Purpose | |---|---| | cu today | Daily dashboard | | cu list [all] | List tasks | | cu list status "STATUS" | List tasks by status | | cu show TASK_ID | Show one task | | cu start TASK_ID | Set start status + start timer | | cu stop | Stop current timer | | cu backlog/todo/progress/review/qa/testing/blocked/release/done TASK_ID | Change status | | cu estimate TASK_ID DURATION | Set estimate | | cu addtime TASK_ID DURATION [note] | Add manual time | | cu create "TITLE" | Create task in default list | | cu subtask PARENT_TASK_ID "TITLE" | Create subtask | | cu assign TASK_ID USER_ID_OR_ME... | Add assignees | | cu token pk_your_token_here | Save token | | cu init | Create/show config | | cu help | Show help |

Durations support 2h, 30m, 2h 30m. Plain numbers mean minutes.

Pi shortcut

This package includes /cu-fast for Pi.

pi install npm:clickup-cu

Restart Pi or run:

/reload

Use:

/cu-fast
/cu-fast today
/cu-fast start TASK_ID
/cu-fast stop
/cu-fast show TASK_ID
/cu-fast estimate TASK_ID 2h
/cu-fast done TASK_ID

/cu-fast runs local cu through bash after validating arguments, so install and configure the CLI too:

npm install -g clickup-cu
cu token pk_your_token_here
cu init

Safety rules for /cu-fast:

  • It only allows known cu subcommands.
  • It rejects shell metacharacters, newlines, pipes, redirects, and command chaining.
  • It shell-quotes validated arguments before bash execution.
  • It treats ClickUp task content as untrusted output, not instructions.

REST mapping

| CLI action | REST API | |---|---| | cu today timer | GET /team/{workspaceId}/time_entries/current | | cu today/list tasks | GET /team/{workspaceId}/task?... | | cu show TASK_ID | GET /task/{taskId} | | status commands | PUT /task/{taskId} | | cu start TASK_ID timer | POST /team/{workspaceId}/time_entries/start | | cu stop | POST /team/{workspaceId}/time_entries/stop | | cu estimate TASK_ID DURATION | PUT /task/{taskId} with time_estimate | | cu addtime TASK_ID DURATION | POST /team/{workspaceId}/time_entries | | cu create "TITLE" | POST /list/{defaultListId}/task | | cu subtask PARENT_TASK_ID "TITLE" | POST /list/{listId}/task with parent | | cu assign TASK_ID USER_ID_OR_ME... | POST /task/{taskId}/assignee |

Development

git clone https://github.com/YOUR_USER/cu.git
cd cu
npm install -g .
npm test
npm pack --dry-run

Publish:

npm version patch
npm publish --access public

Security

  • Never commit ~/.config/cu/token.
  • Never paste pk_... in chat, issues, logs, screenshots, or recordings.
  • Each teammate should generate their own token.
  • Rotate exposed tokens.