@krodak/clickup-cli 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +2 -2
- package/README.md +2 -0
- package/dist/index.js +208 -206
- package/package.json +3 -2
- package/skills/clickup-cli/SKILL.md +6 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clickup-cli",
|
|
3
|
-
"description": "ClickUp CLI skills for managing tasks, sprints, comments, checklists, custom fields, tags, and time tracking via the cu command",
|
|
4
|
-
"version": "0.
|
|
3
|
+
"description": "ClickUp CLI skills for managing tasks, sprints, comments, checklists, custom fields, tags, and time tracking via the cu/cup command",
|
|
4
|
+
"version": "0.18.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Krzysztof Rodak"
|
|
7
7
|
},
|
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
npm install -g @krodak/clickup-cli && cu init
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
+
Both `cu` and `cup` are installed as binaries. Use `cup` if `cu` conflicts with the Unix [cu(1)](<https://en.wikipedia.org/wiki/Cu_(Unix_utility)>) utility on your system. All examples below use `cu` but `cup` works identically.
|
|
15
|
+
|
|
14
16
|
## Talk to your agent
|
|
15
17
|
|
|
16
18
|
Install the CLI, add the skill file to your agent, and it works with ClickUp. No API knowledge needed.
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// src/index.ts
|
|
4
|
+
import { basename } from "path";
|
|
4
5
|
import { Command } from "commander";
|
|
5
6
|
import { createRequire } from "module";
|
|
6
7
|
|
|
@@ -316,9 +317,9 @@ var ClickUpClient = class {
|
|
|
316
317
|
}
|
|
317
318
|
async createTaskAttachment(taskId, filePath) {
|
|
318
319
|
const { readFile } = await import("fs/promises");
|
|
319
|
-
const { basename } = await import("path");
|
|
320
|
+
const { basename: basename2 } = await import("path");
|
|
320
321
|
const fileBuffer = await readFile(filePath);
|
|
321
|
-
const fileName =
|
|
322
|
+
const fileName = basename2(filePath);
|
|
322
323
|
const formData = new FormData();
|
|
323
324
|
formData.append("attachment", new Blob([fileBuffer]), fileName);
|
|
324
325
|
const res = await fetch(`${BASE_URL}/task/${taskId}/attachment`, {
|
|
@@ -1858,8 +1859,8 @@ ${commentsMd}`);
|
|
|
1858
1859
|
}
|
|
1859
1860
|
|
|
1860
1861
|
// src/commands/completion.ts
|
|
1861
|
-
function bashCompletion() {
|
|
1862
|
-
return `
|
|
1862
|
+
function bashCompletion(name) {
|
|
1863
|
+
return `_${name}_completions() {
|
|
1863
1864
|
local cur prev words cword
|
|
1864
1865
|
|
|
1865
1866
|
if type _init_completion &>/dev/null; then
|
|
@@ -2012,16 +2013,16 @@ function bashCompletion() {
|
|
|
2012
2013
|
;;
|
|
2013
2014
|
esac
|
|
2014
2015
|
}
|
|
2015
|
-
complete -F
|
|
2016
|
+
complete -F _${name}_completions ${name}
|
|
2016
2017
|
`;
|
|
2017
2018
|
}
|
|
2018
|
-
function zshCompletion() {
|
|
2019
|
-
return `#compdef
|
|
2019
|
+
function zshCompletion(name) {
|
|
2020
|
+
return `#compdef ${name}
|
|
2020
2021
|
|
|
2021
|
-
|
|
2022
|
+
_${name}() {
|
|
2022
2023
|
local -a commands
|
|
2023
2024
|
commands=(
|
|
2024
|
-
'init:Set up
|
|
2025
|
+
'init:Set up ${name} for the first time'
|
|
2025
2026
|
'auth:Validate API token and show current user'
|
|
2026
2027
|
'tasks:List tasks assigned to me'
|
|
2027
2028
|
'task:Get task details'
|
|
@@ -2405,215 +2406,215 @@ _cu() {
|
|
|
2405
2406
|
esac
|
|
2406
2407
|
}
|
|
2407
2408
|
|
|
2408
|
-
|
|
2409
|
+
_${name}
|
|
2409
2410
|
`;
|
|
2410
2411
|
}
|
|
2411
|
-
function fishCompletion() {
|
|
2412
|
-
return `complete -c
|
|
2413
|
-
|
|
2414
|
-
complete -c
|
|
2415
|
-
complete -c
|
|
2416
|
-
|
|
2417
|
-
complete -c
|
|
2418
|
-
complete -c
|
|
2419
|
-
complete -c
|
|
2420
|
-
complete -c
|
|
2421
|
-
complete -c
|
|
2422
|
-
complete -c
|
|
2423
|
-
complete -c
|
|
2424
|
-
complete -c
|
|
2425
|
-
complete -c
|
|
2426
|
-
complete -c
|
|
2427
|
-
complete -c
|
|
2428
|
-
complete -c
|
|
2429
|
-
complete -c
|
|
2430
|
-
complete -c
|
|
2431
|
-
complete -c
|
|
2432
|
-
complete -c
|
|
2433
|
-
complete -c
|
|
2434
|
-
complete -c
|
|
2435
|
-
complete -c
|
|
2436
|
-
complete -c
|
|
2437
|
-
complete -c
|
|
2438
|
-
complete -c
|
|
2439
|
-
complete -c
|
|
2440
|
-
complete -c
|
|
2441
|
-
complete -c
|
|
2442
|
-
complete -c
|
|
2443
|
-
complete -c
|
|
2444
|
-
complete -c
|
|
2445
|
-
complete -c
|
|
2446
|
-
complete -c
|
|
2447
|
-
complete -c
|
|
2448
|
-
complete -c
|
|
2449
|
-
complete -c
|
|
2450
|
-
complete -c
|
|
2451
|
-
complete -c
|
|
2452
|
-
complete -c
|
|
2453
|
-
|
|
2454
|
-
complete -c
|
|
2455
|
-
|
|
2456
|
-
complete -c
|
|
2457
|
-
complete -c
|
|
2458
|
-
complete -c
|
|
2459
|
-
complete -c
|
|
2460
|
-
complete -c
|
|
2461
|
-
complete -c
|
|
2462
|
-
complete -c
|
|
2463
|
-
|
|
2464
|
-
complete -c
|
|
2465
|
-
|
|
2466
|
-
complete -c
|
|
2467
|
-
complete -c
|
|
2468
|
-
complete -c
|
|
2469
|
-
complete -c
|
|
2470
|
-
complete -c
|
|
2471
|
-
complete -c
|
|
2472
|
-
complete -c
|
|
2473
|
-
complete -c
|
|
2474
|
-
complete -c
|
|
2475
|
-
|
|
2476
|
-
complete -c
|
|
2477
|
-
complete -c
|
|
2478
|
-
complete -c
|
|
2479
|
-
complete -c
|
|
2480
|
-
complete -c
|
|
2481
|
-
complete -c
|
|
2482
|
-
complete -c
|
|
2483
|
-
complete -c
|
|
2484
|
-
complete -c
|
|
2485
|
-
complete -c
|
|
2486
|
-
complete -c
|
|
2487
|
-
complete -c
|
|
2488
|
-
|
|
2489
|
-
complete -c
|
|
2490
|
-
complete -c
|
|
2491
|
-
complete -c
|
|
2492
|
-
complete -c
|
|
2493
|
-
|
|
2494
|
-
complete -c
|
|
2495
|
-
complete -c
|
|
2496
|
-
|
|
2497
|
-
complete -c
|
|
2498
|
-
complete -c
|
|
2499
|
-
complete -c
|
|
2500
|
-
complete -c
|
|
2501
|
-
|
|
2502
|
-
complete -c
|
|
2503
|
-
complete -c
|
|
2504
|
-
|
|
2505
|
-
complete -c
|
|
2506
|
-
|
|
2507
|
-
complete -c
|
|
2508
|
-
|
|
2509
|
-
complete -c
|
|
2510
|
-
complete -c
|
|
2511
|
-
|
|
2512
|
-
complete -c
|
|
2513
|
-
complete -c
|
|
2514
|
-
complete -c
|
|
2515
|
-
|
|
2516
|
-
complete -c
|
|
2517
|
-
complete -c
|
|
2518
|
-
complete -c
|
|
2519
|
-
|
|
2520
|
-
complete -c
|
|
2521
|
-
complete -c
|
|
2522
|
-
complete -c
|
|
2523
|
-
|
|
2524
|
-
complete -c
|
|
2525
|
-
|
|
2526
|
-
complete -c
|
|
2527
|
-
complete -c
|
|
2528
|
-
complete -c
|
|
2529
|
-
|
|
2530
|
-
complete -c
|
|
2531
|
-
complete -c
|
|
2532
|
-
|
|
2533
|
-
complete -c
|
|
2534
|
-
complete -c
|
|
2535
|
-
|
|
2536
|
-
complete -c
|
|
2537
|
-
complete -c
|
|
2538
|
-
complete -c
|
|
2539
|
-
|
|
2540
|
-
complete -c
|
|
2541
|
-
complete -c
|
|
2542
|
-
complete -c
|
|
2543
|
-
complete -c
|
|
2544
|
-
|
|
2545
|
-
complete -c
|
|
2546
|
-
complete -c
|
|
2547
|
-
complete -c
|
|
2548
|
-
|
|
2549
|
-
complete -c
|
|
2550
|
-
complete -c
|
|
2551
|
-
complete -c
|
|
2552
|
-
|
|
2553
|
-
complete -c
|
|
2554
|
-
complete -c
|
|
2555
|
-
|
|
2556
|
-
complete -c
|
|
2557
|
-
complete -c
|
|
2558
|
-
complete -c
|
|
2559
|
-
|
|
2560
|
-
complete -c
|
|
2561
|
-
complete -c
|
|
2562
|
-
complete -c
|
|
2563
|
-
complete -c
|
|
2564
|
-
complete -c
|
|
2565
|
-
complete -c
|
|
2566
|
-
complete -c
|
|
2567
|
-
complete -c
|
|
2568
|
-
complete -c
|
|
2569
|
-
complete -c
|
|
2570
|
-
complete -c
|
|
2571
|
-
|
|
2572
|
-
complete -c
|
|
2573
|
-
complete -c
|
|
2574
|
-
complete -c
|
|
2575
|
-
complete -c
|
|
2576
|
-
complete -c
|
|
2577
|
-
complete -c
|
|
2578
|
-
complete -c
|
|
2579
|
-
complete -c
|
|
2580
|
-
complete -c
|
|
2581
|
-
complete -c
|
|
2582
|
-
|
|
2583
|
-
complete -c
|
|
2412
|
+
function fishCompletion(name) {
|
|
2413
|
+
return `complete -c ${name} -f
|
|
2414
|
+
|
|
2415
|
+
complete -c ${name} -n __fish_use_subcommand -s h -l help -d 'Show help'
|
|
2416
|
+
complete -c ${name} -n __fish_use_subcommand -s V -l version -d 'Show version'
|
|
2417
|
+
|
|
2418
|
+
complete -c ${name} -n __fish_use_subcommand -a init -d 'Set up ${name} for the first time'
|
|
2419
|
+
complete -c ${name} -n __fish_use_subcommand -a auth -d 'Validate API token and show current user'
|
|
2420
|
+
complete -c ${name} -n __fish_use_subcommand -a tasks -d 'List tasks assigned to me'
|
|
2421
|
+
complete -c ${name} -n __fish_use_subcommand -a task -d 'Get task details'
|
|
2422
|
+
complete -c ${name} -n __fish_use_subcommand -a update -d 'Update a task'
|
|
2423
|
+
complete -c ${name} -n __fish_use_subcommand -a create -d 'Create a new task'
|
|
2424
|
+
complete -c ${name} -n __fish_use_subcommand -a sprint -d 'List my tasks in the current active sprint'
|
|
2425
|
+
complete -c ${name} -n __fish_use_subcommand -a sprints -d 'List all sprints in sprint folders'
|
|
2426
|
+
complete -c ${name} -n __fish_use_subcommand -a subtasks -d 'List subtasks of a task or initiative'
|
|
2427
|
+
complete -c ${name} -n __fish_use_subcommand -a comment -d 'Post a comment on a task'
|
|
2428
|
+
complete -c ${name} -n __fish_use_subcommand -a comments -d 'List comments on a task'
|
|
2429
|
+
complete -c ${name} -n __fish_use_subcommand -a activity -d 'Show task details and comments combined'
|
|
2430
|
+
complete -c ${name} -n __fish_use_subcommand -a lists -d 'List all lists in a space'
|
|
2431
|
+
complete -c ${name} -n __fish_use_subcommand -a spaces -d 'List spaces in your workspace'
|
|
2432
|
+
complete -c ${name} -n __fish_use_subcommand -a inbox -d 'Recently updated tasks grouped by time period'
|
|
2433
|
+
complete -c ${name} -n __fish_use_subcommand -a assigned -d 'Show all tasks assigned to me'
|
|
2434
|
+
complete -c ${name} -n __fish_use_subcommand -a open -d 'Open a task in the browser by ID or name'
|
|
2435
|
+
complete -c ${name} -n __fish_use_subcommand -a search -d 'Search my tasks by name'
|
|
2436
|
+
complete -c ${name} -n __fish_use_subcommand -a summary -d 'Daily standup summary'
|
|
2437
|
+
complete -c ${name} -n __fish_use_subcommand -a overdue -d 'List tasks that are past their due date'
|
|
2438
|
+
complete -c ${name} -n __fish_use_subcommand -a assign -d 'Assign or unassign users from a task'
|
|
2439
|
+
complete -c ${name} -n __fish_use_subcommand -a depend -d 'Add or remove task dependencies'
|
|
2440
|
+
complete -c ${name} -n __fish_use_subcommand -a move -d 'Add or remove a task from a list'
|
|
2441
|
+
complete -c ${name} -n __fish_use_subcommand -a field -d 'Set or remove a custom field value on a task'
|
|
2442
|
+
complete -c ${name} -n __fish_use_subcommand -a delete -d 'Delete a task'
|
|
2443
|
+
complete -c ${name} -n __fish_use_subcommand -a tag -d 'Add or remove tags from a task'
|
|
2444
|
+
complete -c ${name} -n __fish_use_subcommand -a checklist -d 'Manage checklists on a task'
|
|
2445
|
+
complete -c ${name} -n __fish_use_subcommand -a time -d 'Track time on tasks'
|
|
2446
|
+
complete -c ${name} -n __fish_use_subcommand -a comment-edit -d 'Edit an existing comment'
|
|
2447
|
+
complete -c ${name} -n __fish_use_subcommand -a comment-delete -d 'Delete a comment'
|
|
2448
|
+
complete -c ${name} -n __fish_use_subcommand -a replies -d 'List threaded replies on a comment'
|
|
2449
|
+
complete -c ${name} -n __fish_use_subcommand -a reply -d 'Reply to a comment'
|
|
2450
|
+
complete -c ${name} -n __fish_use_subcommand -a link -d 'Add or remove a link between two tasks'
|
|
2451
|
+
complete -c ${name} -n __fish_use_subcommand -a attach -d 'Upload a file attachment to a task'
|
|
2452
|
+
complete -c ${name} -n __fish_use_subcommand -a config -d 'Manage CLI configuration'
|
|
2453
|
+
complete -c ${name} -n __fish_use_subcommand -a completion -d 'Output shell completion script'
|
|
2454
|
+
|
|
2455
|
+
complete -c ${name} -n '__fish_seen_subcommand_from auth' -l json -d 'Force JSON output'
|
|
2456
|
+
|
|
2457
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tasks' -l status -d 'Filter by status'
|
|
2458
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tasks' -l list -d 'Filter by list ID'
|
|
2459
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tasks' -l space -d 'Filter by space ID'
|
|
2460
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tasks' -l name -d 'Filter by name'
|
|
2461
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tasks' -l type -d 'Filter by task type'
|
|
2462
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tasks' -l include-closed -d 'Include done/closed tasks'
|
|
2463
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tasks' -l json -d 'Force JSON output'
|
|
2464
|
+
|
|
2465
|
+
complete -c ${name} -n '__fish_seen_subcommand_from task' -l json -d 'Force JSON output'
|
|
2466
|
+
|
|
2467
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -s n -l name -d 'New task name'
|
|
2468
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -s d -l description -d 'New description'
|
|
2469
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -s s -l status -d 'New status'
|
|
2470
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -l priority -d 'Priority level' -a 'urgent high normal low'
|
|
2471
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -l due-date -d 'Due date'
|
|
2472
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -l time-estimate -d 'Time estimate'
|
|
2473
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -l assignee -d 'Add assignee'
|
|
2474
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -l parent -d 'Set parent task'
|
|
2475
|
+
complete -c ${name} -n '__fish_seen_subcommand_from update' -l json -d 'Force JSON output'
|
|
2476
|
+
|
|
2477
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -s l -l list -d 'Target list ID'
|
|
2478
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -s n -l name -d 'Task name'
|
|
2479
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -s d -l description -d 'Task description'
|
|
2480
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -s p -l parent -d 'Parent task ID'
|
|
2481
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -s s -l status -d 'Initial status'
|
|
2482
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -l priority -d 'Priority level' -a 'urgent high normal low'
|
|
2483
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -l due-date -d 'Due date'
|
|
2484
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -l assignee -d 'Assignee user ID'
|
|
2485
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -l tags -d 'Comma-separated tag names'
|
|
2486
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -l custom-item-id -d 'Custom task type ID'
|
|
2487
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -l time-estimate -d 'Time estimate'
|
|
2488
|
+
complete -c ${name} -n '__fish_seen_subcommand_from create' -l json -d 'Force JSON output'
|
|
2489
|
+
|
|
2490
|
+
complete -c ${name} -n '__fish_seen_subcommand_from sprint' -l status -d 'Filter by status'
|
|
2491
|
+
complete -c ${name} -n '__fish_seen_subcommand_from sprint' -l space -d 'Narrow sprint search to a space'
|
|
2492
|
+
complete -c ${name} -n '__fish_seen_subcommand_from sprint' -l include-closed -d 'Include done/closed tasks'
|
|
2493
|
+
complete -c ${name} -n '__fish_seen_subcommand_from sprint' -l json -d 'Force JSON output'
|
|
2494
|
+
|
|
2495
|
+
complete -c ${name} -n '__fish_seen_subcommand_from sprints' -l space -d 'Filter by space'
|
|
2496
|
+
complete -c ${name} -n '__fish_seen_subcommand_from sprints' -l json -d 'Force JSON output'
|
|
2497
|
+
|
|
2498
|
+
complete -c ${name} -n '__fish_seen_subcommand_from subtasks' -l status -d 'Filter by status'
|
|
2499
|
+
complete -c ${name} -n '__fish_seen_subcommand_from subtasks' -l name -d 'Filter by name'
|
|
2500
|
+
complete -c ${name} -n '__fish_seen_subcommand_from subtasks' -l include-closed -d 'Include closed/done subtasks'
|
|
2501
|
+
complete -c ${name} -n '__fish_seen_subcommand_from subtasks' -l json -d 'Force JSON output'
|
|
2502
|
+
|
|
2503
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comment' -s m -l message -d 'Comment text'
|
|
2504
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comment' -l json -d 'Force JSON output'
|
|
2505
|
+
|
|
2506
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comments' -l json -d 'Force JSON output'
|
|
2507
|
+
|
|
2508
|
+
complete -c ${name} -n '__fish_seen_subcommand_from activity' -l json -d 'Force JSON output'
|
|
2509
|
+
|
|
2510
|
+
complete -c ${name} -n '__fish_seen_subcommand_from lists' -l name -d 'Filter by name'
|
|
2511
|
+
complete -c ${name} -n '__fish_seen_subcommand_from lists' -l json -d 'Force JSON output'
|
|
2512
|
+
|
|
2513
|
+
complete -c ${name} -n '__fish_seen_subcommand_from spaces' -l name -d 'Filter spaces by name'
|
|
2514
|
+
complete -c ${name} -n '__fish_seen_subcommand_from spaces' -l my -d 'Show only spaces where I have assigned tasks'
|
|
2515
|
+
complete -c ${name} -n '__fish_seen_subcommand_from spaces' -l json -d 'Force JSON output'
|
|
2516
|
+
|
|
2517
|
+
complete -c ${name} -n '__fish_seen_subcommand_from inbox' -l include-closed -d 'Include done/closed tasks'
|
|
2518
|
+
complete -c ${name} -n '__fish_seen_subcommand_from inbox' -l json -d 'Force JSON output'
|
|
2519
|
+
complete -c ${name} -n '__fish_seen_subcommand_from inbox' -l days -d 'Lookback period in days'
|
|
2520
|
+
|
|
2521
|
+
complete -c ${name} -n '__fish_seen_subcommand_from assigned' -l status -d 'Show only tasks with this status'
|
|
2522
|
+
complete -c ${name} -n '__fish_seen_subcommand_from assigned' -l include-closed -d 'Include done/closed tasks'
|
|
2523
|
+
complete -c ${name} -n '__fish_seen_subcommand_from assigned' -l json -d 'Force JSON output'
|
|
2524
|
+
|
|
2525
|
+
complete -c ${name} -n '__fish_seen_subcommand_from open' -l json -d 'Output task JSON instead of opening'
|
|
2526
|
+
|
|
2527
|
+
complete -c ${name} -n '__fish_seen_subcommand_from search' -l status -d 'Filter by status'
|
|
2528
|
+
complete -c ${name} -n '__fish_seen_subcommand_from search' -l include-closed -d 'Include done/closed tasks in search'
|
|
2529
|
+
complete -c ${name} -n '__fish_seen_subcommand_from search' -l json -d 'Force JSON output'
|
|
2530
|
+
|
|
2531
|
+
complete -c ${name} -n '__fish_seen_subcommand_from summary' -l hours -d 'Completed-tasks lookback in hours'
|
|
2532
|
+
complete -c ${name} -n '__fish_seen_subcommand_from summary' -l json -d 'Force JSON output'
|
|
2533
|
+
|
|
2534
|
+
complete -c ${name} -n '__fish_seen_subcommand_from overdue' -l include-closed -d 'Include done/closed overdue tasks'
|
|
2535
|
+
complete -c ${name} -n '__fish_seen_subcommand_from overdue' -l json -d 'Force JSON output'
|
|
2536
|
+
|
|
2537
|
+
complete -c ${name} -n '__fish_seen_subcommand_from assign' -l to -d 'Add assignee'
|
|
2538
|
+
complete -c ${name} -n '__fish_seen_subcommand_from assign' -l remove -d 'Remove assignee'
|
|
2539
|
+
complete -c ${name} -n '__fish_seen_subcommand_from assign' -l json -d 'Force JSON output'
|
|
2540
|
+
|
|
2541
|
+
complete -c ${name} -n '__fish_seen_subcommand_from depend' -l on -d 'Task that this task depends on'
|
|
2542
|
+
complete -c ${name} -n '__fish_seen_subcommand_from depend' -l blocks -d 'Task that this task blocks'
|
|
2543
|
+
complete -c ${name} -n '__fish_seen_subcommand_from depend' -l remove -d 'Remove the dependency'
|
|
2544
|
+
complete -c ${name} -n '__fish_seen_subcommand_from depend' -l json -d 'Force JSON output'
|
|
2545
|
+
|
|
2546
|
+
complete -c ${name} -n '__fish_seen_subcommand_from move' -l to -d 'Add task to this list'
|
|
2547
|
+
complete -c ${name} -n '__fish_seen_subcommand_from move' -l remove -d 'Remove task from this list'
|
|
2548
|
+
complete -c ${name} -n '__fish_seen_subcommand_from move' -l json -d 'Force JSON output'
|
|
2549
|
+
|
|
2550
|
+
complete -c ${name} -n '__fish_seen_subcommand_from field' -l set -d 'Set field name and value'
|
|
2551
|
+
complete -c ${name} -n '__fish_seen_subcommand_from field' -l remove -d 'Remove field value by name'
|
|
2552
|
+
complete -c ${name} -n '__fish_seen_subcommand_from field' -l json -d 'Force JSON output'
|
|
2553
|
+
|
|
2554
|
+
complete -c ${name} -n '__fish_seen_subcommand_from delete' -l confirm -d 'Skip confirmation prompt'
|
|
2555
|
+
complete -c ${name} -n '__fish_seen_subcommand_from delete' -l json -d 'Force JSON output'
|
|
2556
|
+
|
|
2557
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tag' -l add -d 'Comma-separated tag names to add'
|
|
2558
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tag' -l remove -d 'Comma-separated tag names to remove'
|
|
2559
|
+
complete -c ${name} -n '__fish_seen_subcommand_from tag' -l json -d 'Force JSON output'
|
|
2560
|
+
|
|
2561
|
+
complete -c ${name} -n '__fish_seen_subcommand_from checklist; and not __fish_seen_subcommand_from view create delete add-item edit-item delete-item' -a view -d 'View checklists on a task'
|
|
2562
|
+
complete -c ${name} -n '__fish_seen_subcommand_from checklist; and not __fish_seen_subcommand_from view create delete add-item edit-item delete-item' -a create -d 'Create a checklist on a task'
|
|
2563
|
+
complete -c ${name} -n '__fish_seen_subcommand_from checklist; and not __fish_seen_subcommand_from view create delete add-item edit-item delete-item' -a delete -d 'Delete a checklist'
|
|
2564
|
+
complete -c ${name} -n '__fish_seen_subcommand_from checklist; and not __fish_seen_subcommand_from view create delete add-item edit-item delete-item' -a add-item -d 'Add an item to a checklist'
|
|
2565
|
+
complete -c ${name} -n '__fish_seen_subcommand_from checklist; and not __fish_seen_subcommand_from view create delete add-item edit-item delete-item' -a edit-item -d 'Edit a checklist item'
|
|
2566
|
+
complete -c ${name} -n '__fish_seen_subcommand_from checklist; and not __fish_seen_subcommand_from view create delete add-item edit-item delete-item' -a delete-item -d 'Delete a checklist item'
|
|
2567
|
+
complete -c ${name} -n '__fish_seen_subcommand_from view create delete add-item edit-item delete-item' -l json -d 'Force JSON output'
|
|
2568
|
+
complete -c ${name} -n '__fish_seen_subcommand_from edit-item' -l name -d 'New item name'
|
|
2569
|
+
complete -c ${name} -n '__fish_seen_subcommand_from edit-item' -l resolved -d 'Mark item as resolved'
|
|
2570
|
+
complete -c ${name} -n '__fish_seen_subcommand_from edit-item' -l unresolved -d 'Mark item as unresolved'
|
|
2571
|
+
complete -c ${name} -n '__fish_seen_subcommand_from edit-item' -l assignee -d 'Assign user by ID'
|
|
2572
|
+
|
|
2573
|
+
complete -c ${name} -n '__fish_seen_subcommand_from time; and not __fish_seen_subcommand_from start stop status log list' -a start -d 'Start tracking time on a task'
|
|
2574
|
+
complete -c ${name} -n '__fish_seen_subcommand_from time; and not __fish_seen_subcommand_from start stop status log list' -a stop -d 'Stop the running timer'
|
|
2575
|
+
complete -c ${name} -n '__fish_seen_subcommand_from time; and not __fish_seen_subcommand_from start stop status log list' -a status -d 'Show the currently running timer'
|
|
2576
|
+
complete -c ${name} -n '__fish_seen_subcommand_from time; and not __fish_seen_subcommand_from start stop status log list' -a log -d 'Log a manual time entry'
|
|
2577
|
+
complete -c ${name} -n '__fish_seen_subcommand_from time; and not __fish_seen_subcommand_from start stop status log list' -a list -d 'List recent time entries'
|
|
2578
|
+
complete -c ${name} -n '__fish_seen_subcommand_from start stop status log list; and __fish_seen_subcommand_from time' -l json -d 'Force JSON output'
|
|
2579
|
+
complete -c ${name} -n '__fish_seen_subcommand_from start; and __fish_seen_subcommand_from time' -s d -l description -d 'Description'
|
|
2580
|
+
complete -c ${name} -n '__fish_seen_subcommand_from log; and __fish_seen_subcommand_from time' -s d -l description -d 'Description'
|
|
2581
|
+
complete -c ${name} -n '__fish_seen_subcommand_from list; and __fish_seen_subcommand_from time' -l days -d 'Number of days to look back'
|
|
2582
|
+
complete -c ${name} -n '__fish_seen_subcommand_from list; and __fish_seen_subcommand_from time' -l task -d 'Filter by task ID'
|
|
2583
|
+
|
|
2584
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comment-delete' -l json -d 'Force JSON output'
|
|
2584
2585
|
|
|
2585
|
-
complete -c
|
|
2586
|
+
complete -c ${name} -n '__fish_seen_subcommand_from replies' -l json -d 'Force JSON output'
|
|
2586
2587
|
|
|
2587
|
-
complete -c
|
|
2588
|
-
complete -c
|
|
2588
|
+
complete -c ${name} -n '__fish_seen_subcommand_from reply' -s m -l message -d 'Reply text'
|
|
2589
|
+
complete -c ${name} -n '__fish_seen_subcommand_from reply' -l json -d 'Force JSON output'
|
|
2589
2590
|
|
|
2590
|
-
complete -c
|
|
2591
|
-
complete -c
|
|
2591
|
+
complete -c ${name} -n '__fish_seen_subcommand_from link' -l remove -d 'Remove the link'
|
|
2592
|
+
complete -c ${name} -n '__fish_seen_subcommand_from link' -l json -d 'Force JSON output'
|
|
2592
2593
|
|
|
2593
|
-
complete -c
|
|
2594
|
-
complete -c
|
|
2594
|
+
complete -c ${name} -n '__fish_seen_subcommand_from attach' -l json -d 'Force JSON output'
|
|
2595
|
+
complete -c ${name} -n '__fish_seen_subcommand_from attach' -F
|
|
2595
2596
|
|
|
2596
|
-
complete -c
|
|
2597
|
-
complete -c
|
|
2598
|
-
complete -c
|
|
2599
|
-
complete -c
|
|
2597
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comment-edit' -s m -l message -d 'New comment text'
|
|
2598
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comment-edit' -l resolved -d 'Mark comment as resolved'
|
|
2599
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comment-edit' -l unresolved -d 'Mark comment as unresolved'
|
|
2600
|
+
complete -c ${name} -n '__fish_seen_subcommand_from comment-edit' -l json -d 'Force JSON output'
|
|
2600
2601
|
|
|
2601
|
-
complete -c
|
|
2602
|
-
complete -c
|
|
2603
|
-
complete -c
|
|
2604
|
-
complete -c
|
|
2602
|
+
complete -c ${name} -n '__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set path' -a get -d 'Print a config value'
|
|
2603
|
+
complete -c ${name} -n '__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set path' -a set -d 'Set a config value'
|
|
2604
|
+
complete -c ${name} -n '__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set path' -a path -d 'Print config file path'
|
|
2605
|
+
complete -c ${name} -n '__fish_seen_subcommand_from get set' -a 'apiToken teamId' -d 'Config key'
|
|
2605
2606
|
|
|
2606
|
-
complete -c
|
|
2607
|
+
complete -c ${name} -n '__fish_seen_subcommand_from completion' -a 'bash zsh fish' -d 'Shell type'
|
|
2607
2608
|
`;
|
|
2608
2609
|
}
|
|
2609
|
-
function generateCompletion(shell) {
|
|
2610
|
+
function generateCompletion(shell, name = "cu") {
|
|
2610
2611
|
switch (shell) {
|
|
2611
2612
|
case "bash":
|
|
2612
|
-
return bashCompletion();
|
|
2613
|
+
return bashCompletion(name);
|
|
2613
2614
|
case "zsh":
|
|
2614
|
-
return zshCompletion();
|
|
2615
|
+
return zshCompletion(name);
|
|
2615
2616
|
case "fish":
|
|
2616
|
-
return fishCompletion();
|
|
2617
|
+
return fishCompletion(name);
|
|
2617
2618
|
default:
|
|
2618
2619
|
throw new Error(`Unsupported shell: ${shell}. Supported shells: bash, zsh, fish`);
|
|
2619
2620
|
}
|
|
@@ -3023,6 +3024,7 @@ function formatTimeEntries(entries) {
|
|
|
3023
3024
|
// src/index.ts
|
|
3024
3025
|
var require2 = createRequire(import.meta.url);
|
|
3025
3026
|
var { version } = require2("../package.json");
|
|
3027
|
+
var programName = basename(process.argv[1] ?? "cu");
|
|
3026
3028
|
function wrapAction(fn) {
|
|
3027
3029
|
return (...args) => {
|
|
3028
3030
|
fn(...args).catch((err) => {
|
|
@@ -3032,8 +3034,8 @@ function wrapAction(fn) {
|
|
|
3032
3034
|
};
|
|
3033
3035
|
}
|
|
3034
3036
|
var program = new Command();
|
|
3035
|
-
program.name(
|
|
3036
|
-
program.command("init").description(
|
|
3037
|
+
program.name(programName).description("ClickUp CLI for AI agents").version(version).allowExcessArguments(false);
|
|
3038
|
+
program.command("init").description(`Set up ${programName} for the first time`).action(
|
|
3037
3039
|
wrapAction(async () => {
|
|
3038
3040
|
await runInitCommand();
|
|
3039
3041
|
})
|
|
@@ -3568,7 +3570,7 @@ configCmd.command("path").description("Print config file path").action(
|
|
|
3568
3570
|
);
|
|
3569
3571
|
program.command("completion <shell>").description("Output shell completion script (bash, zsh, fish)").action(
|
|
3570
3572
|
wrapAction(async (shell) => {
|
|
3571
|
-
const script = generateCompletion(shell);
|
|
3573
|
+
const script = generateCompletion(shell, programName);
|
|
3572
3574
|
process.stdout.write(script);
|
|
3573
3575
|
})
|
|
3574
3576
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@krodak/clickup-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "ClickUp CLI for AI agents and humans",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"initiative"
|
|
21
21
|
],
|
|
22
22
|
"bin": {
|
|
23
|
-
"cu": "./dist/index.js"
|
|
23
|
+
"cu": "./dist/index.js",
|
|
24
|
+
"cup": "./dist/index.js"
|
|
24
25
|
},
|
|
25
26
|
"files": [
|
|
26
27
|
"dist",
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: clickup
|
|
3
|
-
description: 'Use when managing ClickUp tasks, sprints, or comments via the `cu` CLI tool. Triggers: task queries, status updates, sprint tracking, creating subtasks, posting comments, threaded replies, standup summaries, searching tasks, checking overdue items, assigning tasks, listing spaces and lists, opening tasks in browser, checking auth or config, setting custom fields, deleting tasks, managing tags, managing checklists, editing comments, task links, time tracking, attachments, file uploads.'
|
|
3
|
+
description: 'Use when managing ClickUp tasks, sprints, or comments via the `cu` / `cup` CLI tool. Triggers: task queries, status updates, sprint tracking, creating subtasks, posting comments, threaded replies, standup summaries, searching tasks, checking overdue items, assigning tasks, listing spaces and lists, opening tasks in browser, checking auth or config, setting custom fields, deleting tasks, managing tags, managing checklists, editing comments, task links, time tracking, attachments, file uploads.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# ClickUp CLI (`cu`)
|
|
6
|
+
# ClickUp CLI (`cu` / `cup`)
|
|
7
7
|
|
|
8
8
|
Reference for AI agents using the `cu` CLI tool. Covers task management, sprint tracking, comments, and project workflows.
|
|
9
9
|
|
|
10
10
|
Keywords: ClickUp, task management, sprint, project management, agile, backlog, subtasks, standup, overdue, search
|
|
11
11
|
|
|
12
|
+
## Binary Names
|
|
13
|
+
|
|
14
|
+
Both `cu` and `cup` are available as binary names. They are identical. Use `cup` if `cu` conflicts with the Unix `cu(1)` utility on your system. All examples below use `cu`, but `cup` works the same way.
|
|
15
|
+
|
|
12
16
|
## Setup
|
|
13
17
|
|
|
14
18
|
Config at `~/.config/cu/config.json` with `apiToken` and `teamId`. Run `cu init` to set up interactively.
|