@simonfestl/husky-cli 0.7.0 → 0.7.1

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.
@@ -1,7 +1,7 @@
1
1
  import { Command } from "commander";
2
2
  export const explainCommand = new Command("explain")
3
3
  .description("Explain CLI commands for AI agents")
4
- .argument("[command]", "Command to explain (task, roadmap, changelog, config, agent)")
4
+ .argument("[command]", "Command to explain (task, project, idea, department, workflow, jules, vm, vm-config, process, settings, strategy, worktree, roadmap, changelog, config, agent)")
5
5
  .action((command) => {
6
6
  if (!command) {
7
7
  printOverview();
@@ -23,9 +23,42 @@ export const explainCommand = new Command("explain")
23
23
  case "agent":
24
24
  printAgentWorkflowHelp();
25
25
  break;
26
+ case "project":
27
+ printProjectHelp();
28
+ break;
29
+ case "idea":
30
+ printIdeaHelp();
31
+ break;
32
+ case "department":
33
+ printDepartmentHelp();
34
+ break;
35
+ case "workflow":
36
+ printWorkflowHelp();
37
+ break;
38
+ case "jules":
39
+ printJulesHelp();
40
+ break;
41
+ case "vm":
42
+ printVMHelp();
43
+ break;
44
+ case "vm-config":
45
+ printVMConfigHelp();
46
+ break;
47
+ case "process":
48
+ printProcessHelp();
49
+ break;
50
+ case "settings":
51
+ printSettingsHelp();
52
+ break;
53
+ case "strategy":
54
+ printStrategyHelp();
55
+ break;
56
+ case "worktree":
57
+ printWorktreeHelp();
58
+ break;
26
59
  default:
27
60
  console.log(`Unknown command: ${command}`);
28
- console.log("Available: task, roadmap, changelog, config, agent");
61
+ console.log("Available: task, project, idea, department, workflow, jules, vm, vm-config, process, settings, strategy, worktree, roadmap, changelog, config, agent");
29
62
  process.exit(1);
30
63
  }
31
64
  }
@@ -36,6 +69,17 @@ HUSKY CLI - AI Task Orchestration
36
69
 
37
70
  Available Commands:
38
71
  task Task management (list, create, start, complete, qa)
72
+ project Project & knowledge management
73
+ idea Idea management & conversion to tasks
74
+ department Organization structure
75
+ workflow Process automation & workflow steps
76
+ jules Jules AI coding sessions
77
+ vm VM sessions for agent execution
78
+ vm-config VM configurations
79
+ process Business processes
80
+ settings Application settings
81
+ strategy Business strategy (vision, mission, values, goals)
82
+ worktree Git worktrees for isolated workspaces
39
83
  roadmap Roadmap & feature planning
40
84
  changelog Generate changelogs from commits
41
85
  config Configure API URL and key
@@ -64,9 +108,14 @@ LIST TASKS
64
108
  husky task list
65
109
  husky task list --status backlog
66
110
  husky task list --status in_progress
111
+ husky task list --interactive
67
112
 
68
113
  Options:
69
114
  -s, --status <status> Filter by status (backlog, in_progress, review, done)
115
+ -p, --page <num> Page number (starts at 1)
116
+ -n, --per-page <num> Items per page (default: all)
117
+ -i, --interactive Interactive pagination with arrow keys
118
+ --json Output as JSON
70
119
 
71
120
  GET TASK DETAILS
72
121
  husky task get --id <id>
@@ -86,6 +135,28 @@ CREATE TASK
86
135
  --path <path> Path in project
87
136
  -p, --priority <priority> Priority: low, medium, high (default: medium)
88
137
 
138
+ UPDATE TASK
139
+ husky task update <id> --title "New title"
140
+ husky task update <id> --status in_progress --priority high
141
+ husky task update <id> --assignee llm --project proj123
142
+
143
+ Options:
144
+ -t, --title <title> New title
145
+ -d, --description <desc> New description
146
+ --status <status> New status (backlog, in_progress, review, done)
147
+ --priority <priority> New priority (low, medium, high, urgent)
148
+ --assignee <assignee> New assignee (human, llm, unassigned)
149
+ --project <projectId> Link to project
150
+ --json Output as JSON
151
+
152
+ DELETE TASK
153
+ husky task delete <id>
154
+ husky task delete <id> --force
155
+
156
+ Options:
157
+ --force Skip confirmation prompt
158
+ --json Output as JSON
159
+
89
160
  START TASK
90
161
  husky task start <id>
91
162
 
@@ -409,3 +480,525 @@ Most commands use standard exit codes:
409
480
  2 = Timeout (for wait-approval)
410
481
  `);
411
482
  }
483
+ function printProjectHelp() {
484
+ console.log(`
485
+ HUSKY PROJECT COMMANDS
486
+
487
+ Manage projects and project knowledge.
488
+
489
+ LIST PROJECTS
490
+ husky project list
491
+ husky project list --archived
492
+ husky project list --work-status in_progress --json
493
+
494
+ Options:
495
+ --archived Include archived projects
496
+ --work-status <status> Filter: planning, in_progress, review, completed, on_hold
497
+ --json Output as JSON
498
+
499
+ GET PROJECT
500
+ husky project get <id>
501
+ husky project get <id> --json
502
+
503
+ CREATE PROJECT
504
+ husky project create "Project name"
505
+ husky project create "My App" -d "Description" --repo https://github.com/org/repo
506
+
507
+ Options:
508
+ -d, --description <desc> Project description
509
+ --repo <url> Git repository URL
510
+
511
+ UPDATE PROJECT
512
+ husky project update <id> --name "New name"
513
+ husky project update <id> --status active --work-status in_progress
514
+
515
+ Options:
516
+ --name <name> New name
517
+ -d, --description <desc> New description
518
+ --status <status> Status: active, archived
519
+ --work-status <status> Work status: planning, in_progress, review, completed, on_hold
520
+
521
+ DELETE PROJECT
522
+ husky project delete <id> --force
523
+
524
+ KNOWLEDGE MANAGEMENT
525
+ husky project add-knowledge <projectId> --type architecture --title "API Design" --content "..."
526
+ husky project list-knowledge <projectId> [--type <type>]
527
+ husky project delete-knowledge <projectId> <knowledgeId>
528
+
529
+ Knowledge types: architecture, patterns, decisions, learnings
530
+ `);
531
+ }
532
+ function printIdeaHelp() {
533
+ console.log(`
534
+ HUSKY IDEA COMMANDS
535
+
536
+ Manage ideas and convert them to tasks.
537
+
538
+ LIST IDEAS
539
+ husky idea list
540
+ husky idea list --status active --json
541
+
542
+ Options:
543
+ --status <status> Filter: draft, active, archived, converted
544
+ --json Output as JSON
545
+
546
+ GET IDEA
547
+ husky idea get <id>
548
+ husky idea get <id> --json
549
+
550
+ CREATE IDEA
551
+ husky idea create "Idea title"
552
+ husky idea create "New feature" -d "Description" --source customer_feedback
553
+
554
+ Options:
555
+ -d, --description <desc> Idea description
556
+ --source <source> Source of the idea
557
+
558
+ UPDATE IDEA
559
+ husky idea update <id> --title "Updated title"
560
+ husky idea update <id> --status archived
561
+
562
+ Options:
563
+ --title <title> New title
564
+ -d, --description <desc> New description
565
+ --status <status> Status: draft, active, archived, converted
566
+
567
+ DELETE IDEA
568
+ husky idea delete <id> --force
569
+
570
+ CONVERT TO TASK
571
+ husky idea convert <id>
572
+ husky idea convert <id> --priority high --assignee llm
573
+
574
+ Options:
575
+ --priority <priority> Task priority: low, medium, high
576
+ --assignee <assignee> Assign to: human, llm, unassigned
577
+ `);
578
+ }
579
+ function printDepartmentHelp() {
580
+ console.log(`
581
+ HUSKY DEPARTMENT COMMANDS
582
+
583
+ Manage organization departments.
584
+
585
+ LIST DEPARTMENTS
586
+ husky department list
587
+ husky department list --json
588
+
589
+ GET DEPARTMENT
590
+ husky department get <id>
591
+ husky department get <id> --json
592
+
593
+ CREATE DEPARTMENT
594
+ husky department create "Department name"
595
+ husky department create "Engineering" -d "Software development team"
596
+
597
+ Options:
598
+ -d, --description <desc> Department description
599
+
600
+ UPDATE DEPARTMENT
601
+ husky department update <id> --name "New name"
602
+ husky department update <id> -d "Updated description"
603
+
604
+ Options:
605
+ --name <name> New name
606
+ -d, --description <desc> New description
607
+
608
+ DELETE DEPARTMENT
609
+ husky department delete <id> --force
610
+ `);
611
+ }
612
+ function printWorkflowHelp() {
613
+ console.log(`
614
+ HUSKY WORKFLOW COMMANDS
615
+
616
+ Manage workflows and workflow steps for process automation.
617
+
618
+ LIST WORKFLOWS
619
+ husky workflow list
620
+ husky workflow list --value-stream operations --status active --json
621
+
622
+ Options:
623
+ --value-stream <vs> Filter by value stream
624
+ --status <status> Filter: draft, active, paused, archived
625
+ --json Output as JSON
626
+
627
+ GET WORKFLOW
628
+ husky workflow get <id>
629
+ husky workflow get <id> --json
630
+
631
+ CREATE WORKFLOW
632
+ husky workflow create "Workflow name"
633
+ husky workflow create "Order Processing" -d "Description" --department dept123
634
+
635
+ Options:
636
+ -d, --description <desc> Workflow description
637
+ --department <departmentId> Link to department
638
+
639
+ UPDATE WORKFLOW
640
+ husky workflow update <id> --name "New name"
641
+ husky workflow update <id> --status active
642
+
643
+ Options:
644
+ --name <name> New name
645
+ -d, --description <desc> New description
646
+ --status <status> Status: draft, active, paused, archived
647
+
648
+ DELETE WORKFLOW
649
+ husky workflow delete <id> --force
650
+
651
+ WORKFLOW STEPS
652
+ husky workflow add-step <workflowId> --name "Step name" [--action <action>]
653
+ husky workflow update-step <workflowId> <stepId> --name "Updated"
654
+ husky workflow delete-step <workflowId> <stepId>
655
+ husky workflow list-steps <workflowId> --json
656
+
657
+ Action types: manual, semi_automated, fully_automated
658
+
659
+ AI STEP GENERATION
660
+ husky workflow generate-steps <workflowId> --sop "Standard operating procedure document..."
661
+
662
+ Generates workflow steps from an SOP document using AI.
663
+ `);
664
+ }
665
+ function printJulesHelp() {
666
+ console.log(`
667
+ HUSKY JULES COMMANDS
668
+
669
+ Manage Jules AI coding sessions for automated development.
670
+
671
+ LIST SESSIONS
672
+ husky jules list
673
+ husky jules list --status executing --json
674
+
675
+ Options:
676
+ --status <status> Filter: pending, planning, awaiting_approval, executing, completed, failed, cancelled
677
+ --json Output as JSON
678
+
679
+ GET SESSION
680
+ husky jules get <id>
681
+ husky jules get <id> --json
682
+
683
+ CREATE SESSION
684
+ husky jules create --prompt "Implement user authentication"
685
+ husky jules create --prompt "Fix bug" --source src123 --branch feature/fix
686
+
687
+ Options:
688
+ --prompt <prompt> Task prompt (required)
689
+ --source <sourceId> Jules source ID (GitHub repo)
690
+ --branch <branch> Git branch to work on
691
+ --task <taskId> Link to Husky task
692
+ --workflow <id> Link to workflow
693
+ --no-approval Auto-approve plan without waiting
694
+
695
+ UPDATE SESSION
696
+ husky jules update <id> --prompt "Updated prompt"
697
+ husky jules update <id> --status cancelled
698
+
699
+ DELETE SESSION
700
+ husky jules delete <id> --force
701
+
702
+ INTERACT WITH SESSION
703
+ husky jules message <id> --message "Please also add tests"
704
+ husky jules approve <id>
705
+ husky jules approve <id> --reject
706
+
707
+ ACTIVITIES
708
+ husky jules activities <id>
709
+ husky jules activities <id> --sync --json
710
+
711
+ Options:
712
+ --sync Fetch latest activities from Jules API
713
+ --json Output as JSON
714
+
715
+ LIST SOURCES
716
+ husky jules sources
717
+ husky jules sources --json
718
+
719
+ Lists available Jules sources (GitHub repositories).
720
+ `);
721
+ }
722
+ function printVMHelp() {
723
+ console.log(`
724
+ HUSKY VM COMMANDS
725
+
726
+ Manage VM sessions for isolated agent execution.
727
+
728
+ LIST SESSIONS
729
+ husky vm list
730
+ husky vm list --status running --json
731
+
732
+ Options:
733
+ --status <status> Filter: pending, creating, running, completed, failed, terminated
734
+ --json Output as JSON
735
+
736
+ GET SESSION
737
+ husky vm get <id>
738
+ husky vm get <id> --json
739
+
740
+ CREATE SESSION
741
+ husky vm create "session-name" --prompt "Implement feature X"
742
+ husky vm create "my-task" --prompt "..." --agent claude-code --config cfg123
743
+
744
+ Options:
745
+ --prompt <prompt> Initial prompt for agent (required)
746
+ --agent <agent> Agent type: claude-code, gemini-cli, aider, custom
747
+ --config <configId> VM configuration to use
748
+ --machine-type <type> GCP machine type (default: e2-medium)
749
+ --zone <zone> GCP zone (default: us-central1-a)
750
+ --repo <repoUrl> Git repository URL
751
+ --branch <branch> Git branch
752
+ --task <taskId> Link to Husky task
753
+
754
+ UPDATE SESSION
755
+ husky vm update <id> --prompt "Updated prompt"
756
+ husky vm update <id> --status terminated
757
+
758
+ DELETE SESSION
759
+ husky vm delete <id> --force
760
+
761
+ VM LIFECYCLE
762
+ husky vm start <id> Start/provision the VM
763
+ husky vm stop <id> Stop the VM
764
+
765
+ LOGS
766
+ husky vm logs <id>
767
+ husky vm logs <id> --follow --tail 100
768
+
769
+ Options:
770
+ --follow Stream logs (poll for updates)
771
+ --tail <n> Show last n log entries
772
+
773
+ PLAN APPROVAL
774
+ husky vm approve <id> Approve VM session plan
775
+ husky vm reject <id> Reject VM session plan
776
+
777
+ VM POOL (Admin)
778
+ husky vm pool status Show pool status (HOT/COLD VMs)
779
+ husky vm pool init Initialize the VM pool
780
+ husky vm pool suspend <id> Suspend a pool VM
781
+ husky vm pool resume <id> Resume a suspended pool VM
782
+ husky vm pool setup <id> Start Claude subscription setup
783
+ `);
784
+ }
785
+ function printVMConfigHelp() {
786
+ console.log(`
787
+ HUSKY VM-CONFIG COMMANDS
788
+
789
+ Manage VM configurations with GCP settings and resource limits.
790
+
791
+ LIST CONFIGURATIONS
792
+ husky vm-config list
793
+ husky vm-config list --json
794
+
795
+ GET CONFIGURATION
796
+ husky vm-config get <id>
797
+ husky vm-config get <id> --json
798
+
799
+ CREATE CONFIGURATION
800
+ husky vm-config create "Config name"
801
+ husky vm-config create "High Performance" --machine-type e2-standard-4 --disk-size 50
802
+
803
+ Options:
804
+ --machine-type <type> GCP machine type (default: e2-medium)
805
+ --zone <zone> GCP zone (default: europe-west1-b)
806
+ --disk-size <size> Disk size in GB (default: 20)
807
+ --max-runtime <minutes> Max runtime in minutes (default: 60)
808
+ --max-concurrent <n> Max concurrent VMs (default: 3)
809
+ --daily-budget <usd> Daily budget in USD (default: 10)
810
+
811
+ UPDATE CONFIGURATION
812
+ husky vm-config update <id> --machine-type e2-standard-2
813
+ husky vm-config update <id> --disk-size 40 --max-runtime 120
814
+
815
+ Options:
816
+ --machine-type <type> GCP machine type
817
+ --zone <zone> GCP zone
818
+ --disk-size <size> Disk size in GB
819
+ --max-runtime <minutes> Max runtime in minutes
820
+ --max-concurrent <n> Max concurrent VMs
821
+ --daily-budget <usd> Daily budget in USD
822
+
823
+ DELETE CONFIGURATION
824
+ husky vm-config delete <id> --force
825
+ `);
826
+ }
827
+ function printProcessHelp() {
828
+ console.log(`
829
+ HUSKY PROCESS COMMANDS
830
+
831
+ Manage business processes.
832
+
833
+ LIST PROCESSES
834
+ husky process list
835
+ husky process list --status active --json
836
+
837
+ Options:
838
+ --status <status> Filter by status
839
+ --json Output as JSON
840
+
841
+ GET PROCESS
842
+ husky process get <id>
843
+ husky process get <id> --json
844
+
845
+ CREATE PROCESS
846
+ husky process create "Process name"
847
+ husky process create "Customer Onboarding" -d "Steps for new customers"
848
+
849
+ Options:
850
+ -d, --description <desc> Process description
851
+
852
+ UPDATE PROCESS
853
+ husky process update <id> --name "New name"
854
+ husky process update <id> --status archived
855
+
856
+ Options:
857
+ --name <name> New name
858
+ -d, --description <desc> New description
859
+ --status <status> Process status
860
+
861
+ DELETE PROCESS
862
+ husky process delete <id> --force
863
+ `);
864
+ }
865
+ function printSettingsHelp() {
866
+ console.log(`
867
+ HUSKY SETTINGS COMMANDS
868
+
869
+ Manage application settings.
870
+
871
+ GET SETTINGS
872
+ husky settings get Get all settings
873
+ husky settings get <key> Get specific setting
874
+ husky settings get api-url --json
875
+
876
+ Options:
877
+ --json Output as JSON
878
+
879
+ SET SETTING
880
+ husky settings set <key> <value>
881
+ husky settings set theme dark
882
+ husky settings set features '{"darkMode": true}'
883
+
884
+ Values are automatically parsed:
885
+ - JSON objects/arrays: '{"key": "value"}' or '["a", "b"]'
886
+ - Booleans: true, false
887
+ - Numbers: 123, 45.67
888
+ - Strings: everything else
889
+
890
+ COMMON SETTINGS
891
+ theme UI theme (light, dark, system)
892
+ language Interface language
893
+ notifications Notification preferences (JSON)
894
+ features Feature flags (JSON)
895
+ `);
896
+ }
897
+ function printStrategyHelp() {
898
+ console.log(`
899
+ HUSKY STRATEGY COMMANDS
900
+
901
+ Manage business strategy (vision, mission, values, goals, personas).
902
+
903
+ SHOW STRATEGY
904
+ husky strategy show
905
+ husky strategy show --json
906
+
907
+ VISION & MISSION
908
+ husky strategy set-vision --vision "To be the leading..."
909
+ husky strategy set-mission --mission "We help businesses..."
910
+
911
+ VALUES
912
+ husky strategy add-value --name "Innovation" -d "We embrace change"
913
+ husky strategy update-value <id> --name "Updated name"
914
+ husky strategy delete-value <id> --force
915
+
916
+ Options:
917
+ --name <name> Value name
918
+ -d, --description <desc> Value description
919
+
920
+ GOALS
921
+ husky strategy add-goal --name "Increase revenue" --status in_progress
922
+ husky strategy update-goal <id> --progress 75 --status completed
923
+ husky strategy delete-goal <id> --force
924
+
925
+ Options:
926
+ --name <name> Goal name
927
+ -d, --description <d> Goal description
928
+ --status <status> Status: not_started, in_progress, at_risk, completed
929
+ --progress <n> Progress percentage (0-100)
930
+ --due <date> Due date (ISO format: 2024-12-31)
931
+
932
+ PERSONAS (Target Audience)
933
+ husky strategy add-persona --name "Enterprise CTO" -d "Technical decision maker"
934
+ husky strategy update-persona <id> --characteristics "tech-savvy,budget-conscious"
935
+ husky strategy delete-persona <id> --force
936
+
937
+ Options:
938
+ --name <name> Persona name
939
+ -d, --description <desc> Persona description
940
+ --characteristics <list> Comma-separated characteristics
941
+ `);
942
+ }
943
+ function printWorktreeHelp() {
944
+ console.log(`
945
+ HUSKY WORKTREE COMMANDS
946
+
947
+ Manage Git worktrees for isolated agent workspaces.
948
+
949
+ CREATE WORKTREE
950
+ husky worktree create <session-name>
951
+ husky worktree create my-feature --base-branch develop --project /path/to/repo
952
+
953
+ Options:
954
+ --base-branch <branch> Base branch to create from (default: main/master)
955
+ --project <path> Project directory (default: current directory)
956
+
957
+ Creates: .worktrees/<session-name>/ with branch husky/<session-name>
958
+
959
+ LIST WORKTREES
960
+ husky worktree list
961
+ husky worktree list --json
962
+
963
+ INFO
964
+ husky worktree info <session-name>
965
+ husky worktree info <session-name> --json
966
+
967
+ Shows path, branch, status, and changes.
968
+
969
+ NAVIGATE
970
+ husky worktree cd <session-name>
971
+
972
+ Prints the worktree path. Use with: cd $(husky worktree cd my-feature)
973
+
974
+ STATUS
975
+ husky worktree status Status of all worktrees
976
+ husky worktree status <session-name> Status of specific worktree
977
+
978
+ REMOVE WORKTREE
979
+ husky worktree remove <session-name>
980
+ husky worktree remove <session-name> --delete-branch --force
981
+
982
+ Options:
983
+ --delete-branch Also delete the associated branch
984
+ --force Force removal even with uncommitted changes
985
+
986
+ MERGE BACK
987
+ husky worktree merge <session-name>
988
+ husky worktree merge <session-name> --no-commit --delete-after
989
+
990
+ Options:
991
+ --no-commit Stage changes but don't commit
992
+ --delete-after Remove worktree/branch after successful merge
993
+ --message <msg> Custom merge commit message
994
+
995
+ CLEANUP
996
+ husky worktree cleanup Clean up stale worktrees and locks
997
+ husky worktree cleanup --all Remove ALL worktrees (with confirmation)
998
+
999
+ LIST BRANCHES
1000
+ husky worktree branches
1001
+
1002
+ Lists all husky/* branches in the repository.
1003
+ `);
1004
+ }
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ const program = new Command();
23
23
  program
24
24
  .name("husky")
25
25
  .description("CLI for Huskyv0 Task Orchestration with Claude Agent")
26
- .version("0.6.0");
26
+ .version("0.7.1");
27
27
  program.addCommand(taskCommand);
28
28
  program.addCommand(configCommand);
29
29
  program.addCommand(agentCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simonfestl/husky-cli",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "CLI for Huskyv0 Task Orchestration with Claude Agent SDK",
5
5
  "type": "module",
6
6
  "bin": {