A fast, beautiful terminal UI for ClickUp. Browse tasks, filter by list or assignee, create tickets, update statuses, and post comments — all from the command line.
Prerequisite: Node.js 18+
curl -fsSL https://raw.githubusercontent.com/hipsterreed/clickup-cli/main/install.sh | bashThat's it. The script clones the repo, installs dependencies, and adds clickup to your PATH. Re-running the command updates an existing installation.
git clone https://github.com/hipsterreed/clickup-cli
cd clickup-cli
npm install --omit=dev --legacy-peer-deps
npm linkGet your Personal API token from ClickUp → Settings → Apps → API Token.
clickup setupThis launches a guided TUI wizard:
- Paste your API token (input is masked)
- Token is verified against the ClickUp API
- Select your workspace from the list
- Config is saved to your OS user config directory — never to the repository
Non-interactive setup:
clickup setup --token pk_abc123 --team 9012345678Opens the interactive TUI browser. Start here.
Browse Screen → pick a scope or list → split-pane task view
Non-interactive table output — scriptable and pipeable.
clickup tasks --me # my tasks
clickup tasks --me --status "in progress" # filter by status
clickup tasks --list <list-id> # tasks in a specific list
clickup tasks --priority 1 --priority 2 # urgent + high priority
clickup tasks --include-closed # include done tasks
clickup tasks --subtasks # include subtasks
clickup tasks --desc # show descriptions
clickup tasks --order-by due_date # sort by due date
clickup tasks --limit 20 # cap resultsPriority values: 1 = urgent, 2 = high, 3 = normal, 4 = low
Display full details of a single task.
clickup tasks view abc123def
clickup tasks view abc123def --comments # include comment threadChange a task's status.
clickup tasks status abc123def "in review"
clickup tasks status abc123def "done"Run without arguments to open the interactive TUI and pick from available statuses.
Post a comment on a task.
clickup tasks comment abc123def -m "Looks good, merging now."Run without -m to open the interactive TUI comment input.
Create a new task in a list.
# Interactive TUI form
clickup tasks create --list <list-id>
# Non-interactive
clickup tasks create --list <list-id> --name "Fix login redirect"
clickup tasks create --list <list-id> --name "API rate limiting" \
--desc "Add rate limiting to the public API endpoints" \
--priority 2 \
--status "to do" \
--due 2026-04-20Show the currently authenticated user and workspace.
clickup whoamiRemove stored credentials.
clickup logoutShow a full command and keybinding reference.
clickup helpShown when you run clickup or clickup tasks with no flags.
| Key | Action |
|---|---|
↑ ↓ |
Navigate scopes and lists |
enter |
Open selected scope/list |
q |
Quit |
Lists load in the background while you can already select My Tasks or All Team Tasks.
The main view: task list on the left, live task detail on the right.
| Key | Action |
|---|---|
↑ ↓ |
Navigate tasks (detail updates instantly) |
enter |
Expand to full-screen detail (loads comments) |
n |
Create new task (list context only) |
s |
Change status of selected task |
c |
Add comment to selected task |
f |
Open filter panel |
r |
Refresh task list |
b / esc |
Back to browse screen |
? / h |
Keyboard reference overlay |
q |
Quit |
n(new task) is only available when you've browsed into a specific list. The title bar showsn:newto confirm it's available.
Expanded view with full description and comment thread.
| Key | Action |
|---|---|
s |
Change status |
c |
Add comment |
esc / b |
Back to split pane |
q |
Quit |
| Key | Action |
|---|---|
↑ ↓ |
Navigate between filter fields |
space / enter |
Toggle checkbox or cycle option |
← → |
Cycle scope / list selection |
enter on [Apply] |
Apply filters and reload |
esc |
Cancel without changing filters |
| Key | Action |
|---|---|
↑ ↓ |
Move between fields |
enter |
Edit text field / confirm |
← → |
Cycle priority or status options |
enter on [Create Task] |
Submit |
esc |
Cancel |
| Key | Action |
|---|---|
↑ ↓ |
Navigate available statuses |
enter |
Confirm selected status |
esc |
Cancel |
| Key | Action |
|---|---|
enter |
Preview comment |
p |
Post (in preview mode) |
e |
Edit (in preview mode) |
esc |
Cancel |
Your API token is never stored in this repository.
- Config (token, team ID, user ID) is stored by the
conflibrary in your OS user config directory:- Windows:
%APPDATA%\clickup-cli\config.json - macOS:
~/Library/Preferences/clickup-cli/config.json - Linux:
~/.config/clickup-cli/config.json
- Windows:
- The config directory is outside the project — it is not tracked by git and is never included in commits.
- The
.gitignoreexcludesdist/,node_modules/,.env, and any local config files. - The API token is sent only as an HTTP
Authorizationheader toapi.clickup.com. It is never logged or printed. - To revoke access, run
clickup logoutto clear local credentials, then rotate your token in ClickUp Settings → Apps.
npm run dev -- tasks # run TUI without building
npm run dev -- setup # test setup wizard
npm run dev -- tasks --me # test flag mode
npm run build # compile TypeScript → dist/
npm link # install `clickup` globally from dist/Project structure:
bin/clickup.ts Entry point — Commander CLI wiring
src/
api/ ClickUp API modules (axios)
apps/ Top-level Ink app screens
SetupApp.tsx Setup wizard
TasksApp.tsx Main TUI (browse + split pane + overlays)
QuickApp.tsx Non-interactive flag-mode output
config/config.ts conf-backed credential storage
types/clickup.ts TypeScript interfaces
ui/ Ink components
BrowseScreen.tsx Initial scope/list picker
TaskTable.tsx Scrollable task list (left pane)
TaskDetail.tsx Task detail view (right pane / fullscreen)
CreateTaskForm.tsx New task form
FilterPanel.tsx Filter overlay
StatusPicker.tsx Status change overlay
CommentInput.tsx Comment input overlay
CommentThread.tsx Comment list
HelpScreen.tsx Keyboard reference overlay
Header.tsx Animated gradient ASCII header
Spinner.tsx Animated spinner
utils/
errors.ts API error → user-friendly messages
format.ts Date, truncation, priority helpers
guards.ts requireConfig() guard
This tool uses the ClickUp API v2. Endpoints used:
| Feature | Endpoint |
|---|---|
| Validate token | GET /api/v2/user |
| List workspaces | GET /api/v2/team |
| List spaces | GET /api/v2/team/{teamId}/space |
| List folders | GET /api/v2/space/{spaceId}/folder |
| List lists | GET /api/v2/space/{spaceId}/list |
| Fetch tasks | GET /api/v2/team/{teamId}/task |
| Fetch list tasks | GET /api/v2/list/{listId}/task |
| Get task | GET /api/v2/task/{taskId} |
| Create task | POST /api/v2/list/{listId}/task |
| Update task | PUT /api/v2/task/{taskId} |
| Get comments | GET /api/v2/task/{taskId}/comment |
| Post comment | POST /api/v2/task/{taskId}/comment |
