claudekit-cli 3.35.0-dev.6 → 3.35.0-dev.8

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.
Files changed (3) hide show
  1. package/README.md +20 -1
  2. package/dist/index.js +454 -7
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -9,7 +9,7 @@ Command-line tool and web dashboard for managing ClaudeKit projects.
9
9
  ClaudeKit Config UI (`ck`) provides both CLI and web dashboard for managing ClaudeKit projects. Built with Bun, TypeScript, and React, enables fast, secure project setup and comprehensive configuration management.
10
10
 
11
11
  **Key Features:**
12
- - **CLI Commands (10)**: new, init, config, projects, skill, doctor, version, update, uninstall, easter-egg
12
+ - **CLI Commands (14)**: new, init, config, projects, setup, skills, agents, commands, port, doctor, versions, update, uninstall, easter-egg
13
13
  - **Web Dashboard**: Interactive React UI via `ck config ui` for configuration and project management
14
14
  - **Projects Registry**: Centralized registry at `~/.claudekit/projects.json` with file locking
15
15
  - **Skill Installation**: Install ClaudeKit skills to other coding agents (Cursor, Codex, etc.)
@@ -78,6 +78,23 @@ ck --version
78
78
 
79
79
  ## Usage
80
80
 
81
+ ### Discoverability Quick Start
82
+
83
+ ```bash
84
+ # Top-level command discovery
85
+ ck --help
86
+
87
+ # Open config dashboard immediately
88
+ ck config
89
+
90
+ # Command-level help (recommended)
91
+ ck config --help
92
+ ck skills --help
93
+ ck agents --help
94
+ ck commands --help
95
+ ck port --help
96
+ ```
97
+
81
98
  ### Create New Project
82
99
 
83
100
  ```bash
@@ -301,6 +318,8 @@ ck -h
301
318
  # Command-specific help
302
319
  ck new --help
303
320
  ck init --help
321
+ ck config --help
322
+ ck skills --help
304
323
  ck versions --help
305
324
  ```
306
325
 
package/dist/index.js CHANGED
@@ -9320,7 +9320,8 @@ var init_provider_registry = __esm(() => {
9320
9320
  globalPath: join(home, ".codex/prompts"),
9321
9321
  format: "direct-copy",
9322
9322
  writeStrategy: "per-file",
9323
- fileExtension: ".md"
9323
+ fileExtension: ".md",
9324
+ nestedCommands: false
9324
9325
  },
9325
9326
  skills: {
9326
9327
  projectPath: ".codex/skills",
@@ -9495,7 +9496,8 @@ var init_provider_registry = __esm(() => {
9495
9496
  globalPath: join(home, ".codeium/windsurf/workflows"),
9496
9497
  format: "direct-copy",
9497
9498
  writeStrategy: "per-file",
9498
- fileExtension: ".md"
9499
+ fileExtension: ".md",
9500
+ nestedCommands: false
9499
9501
  },
9500
9502
  skills: {
9501
9503
  projectPath: ".windsurf/skills",
@@ -9674,7 +9676,8 @@ var init_provider_registry = __esm(() => {
9674
9676
  globalPath: join(home, ".gemini/antigravity/global_workflows"),
9675
9677
  format: "direct-copy",
9676
9678
  writeStrategy: "per-file",
9677
- fileExtension: ".md"
9679
+ fileExtension: ".md",
9680
+ nestedCommands: false
9678
9681
  },
9679
9682
  skills: {
9680
9683
  projectPath: ".agent/skills",
@@ -12017,7 +12020,14 @@ async function installPerFile(item, provider, portableType, options2) {
12017
12020
  warnings: result.warnings.length > 0 ? result.warnings : undefined
12018
12021
  };
12019
12022
  }
12020
- targetPath = pathConfig.writeStrategy === "single-file" ? basePath : join3(basePath, result.filename);
12023
+ let resolvedFilename = result.filename;
12024
+ if (pathConfig.nestedCommands === false && resolvedFilename.includes("/")) {
12025
+ const extIdx = resolvedFilename.lastIndexOf(".");
12026
+ const ext = extIdx >= 0 ? resolvedFilename.substring(extIdx) : "";
12027
+ const nameWithoutExt = extIdx >= 0 ? resolvedFilename.substring(0, extIdx) : resolvedFilename;
12028
+ resolvedFilename = `${nameWithoutExt.replace(/\//g, "-")}${ext}`;
12029
+ }
12030
+ targetPath = pathConfig.writeStrategy === "single-file" ? basePath : join3(basePath, resolvedFilename);
12021
12031
  const resolvedTarget = resolve(targetPath);
12022
12032
  const resolvedBase = pathConfig.writeStrategy === "single-file" ? resolve(dirname2(basePath)) : resolve(basePath);
12023
12033
  if (!resolvedTarget.startsWith(resolvedBase + sep) && resolvedTarget !== resolvedBase) {
@@ -48830,7 +48840,7 @@ var package_default;
48830
48840
  var init_package = __esm(() => {
48831
48841
  package_default = {
48832
48842
  name: "claudekit-cli",
48833
- version: "3.35.0-dev.6",
48843
+ version: "3.35.0-dev.8",
48834
48844
  description: "CLI tool for bootstrapping and updating ClaudeKit projects",
48835
48845
  type: "module",
48836
48846
  repository: {
@@ -61316,6 +61326,425 @@ var init_skills_command_help = __esm(() => {
61316
61326
  };
61317
61327
  });
61318
61328
 
61329
+ // src/domains/help/commands/config-command-help.ts
61330
+ var configCommandHelp;
61331
+ var init_config_command_help = __esm(() => {
61332
+ configCommandHelp = {
61333
+ name: "config",
61334
+ description: "Manage ClaudeKit configuration and launch the config dashboard",
61335
+ usage: "ck config [action] [key] [value] [options]",
61336
+ examples: [
61337
+ {
61338
+ command: "ck config",
61339
+ description: "Launch the web dashboard (same as 'ck config ui')"
61340
+ },
61341
+ {
61342
+ command: "ck config set defaults.kit engineer",
61343
+ description: "Set a config value from the CLI"
61344
+ }
61345
+ ],
61346
+ optionGroups: [
61347
+ {
61348
+ title: "Actions",
61349
+ options: [
61350
+ {
61351
+ flags: "ui",
61352
+ description: "Launch config dashboard (default action when omitted)"
61353
+ },
61354
+ {
61355
+ flags: "get <key>",
61356
+ description: "Read a config value"
61357
+ },
61358
+ {
61359
+ flags: "set <key> <value>",
61360
+ description: "Write a config value"
61361
+ },
61362
+ {
61363
+ flags: "show",
61364
+ description: "Print merged config"
61365
+ }
61366
+ ]
61367
+ },
61368
+ {
61369
+ title: "Scope Options",
61370
+ options: [
61371
+ {
61372
+ flags: "-g, --global",
61373
+ description: "Use global config (~/.claudekit/config.json)"
61374
+ },
61375
+ {
61376
+ flags: "-l, --local",
61377
+ description: "Use local config (.claude/.ck.json)"
61378
+ }
61379
+ ]
61380
+ },
61381
+ {
61382
+ title: "Dashboard Options",
61383
+ options: [
61384
+ {
61385
+ flags: "--port <port>",
61386
+ description: "Port for dashboard server"
61387
+ },
61388
+ {
61389
+ flags: "--no-open",
61390
+ description: "Do not auto-open browser when launching dashboard"
61391
+ },
61392
+ {
61393
+ flags: "--dev",
61394
+ description: "Run dashboard in development mode with HMR"
61395
+ }
61396
+ ]
61397
+ },
61398
+ {
61399
+ title: "Output Options",
61400
+ options: [
61401
+ {
61402
+ flags: "--json",
61403
+ description: "Output machine-readable JSON for CLI actions"
61404
+ }
61405
+ ]
61406
+ }
61407
+ ],
61408
+ sections: [
61409
+ {
61410
+ title: "Notes",
61411
+ content: "Run 'ck config --help' to see both CLI actions and dashboard flags. Running bare 'ck config' opens the dashboard directly."
61412
+ }
61413
+ ]
61414
+ };
61415
+ });
61416
+
61417
+ // src/domains/help/commands/projects-command-help.ts
61418
+ var projectsCommandHelp;
61419
+ var init_projects_command_help = __esm(() => {
61420
+ projectsCommandHelp = {
61421
+ name: "projects",
61422
+ description: "Manage local ClaudeKit project registry entries",
61423
+ usage: "ck projects <subcommand> [options]",
61424
+ examples: [
61425
+ {
61426
+ command: "ck projects list --pinned",
61427
+ description: "Show only pinned projects"
61428
+ },
61429
+ {
61430
+ command: "ck projects add . --alias engine --pinned",
61431
+ description: "Add current directory with an alias and pin it"
61432
+ }
61433
+ ],
61434
+ optionGroups: [
61435
+ {
61436
+ title: "Subcommands",
61437
+ options: [
61438
+ {
61439
+ flags: "list | ls",
61440
+ description: "List projects in registry"
61441
+ },
61442
+ {
61443
+ flags: "add <path>",
61444
+ description: "Add project path to registry"
61445
+ },
61446
+ {
61447
+ flags: "remove [alias] | rm [alias]",
61448
+ description: "Remove project by alias or ID"
61449
+ }
61450
+ ]
61451
+ },
61452
+ {
61453
+ title: "List Options",
61454
+ options: [
61455
+ {
61456
+ flags: "--json",
61457
+ description: "Output in JSON format"
61458
+ },
61459
+ {
61460
+ flags: "--pinned",
61461
+ description: "Filter to pinned projects only"
61462
+ }
61463
+ ]
61464
+ },
61465
+ {
61466
+ title: "Add/Remove Options",
61467
+ options: [
61468
+ {
61469
+ flags: "--alias <alias>",
61470
+ description: "Custom alias for project (add)"
61471
+ },
61472
+ {
61473
+ flags: "--tags <tags>",
61474
+ description: "Comma-separated tags (add)"
61475
+ },
61476
+ {
61477
+ flags: "--id <id>",
61478
+ description: "Remove by project ID (remove)"
61479
+ }
61480
+ ]
61481
+ }
61482
+ ]
61483
+ };
61484
+ });
61485
+
61486
+ // src/domains/help/commands/setup-command-help.ts
61487
+ var setupCommandHelp;
61488
+ var init_setup_command_help = __esm(() => {
61489
+ setupCommandHelp = {
61490
+ name: "setup",
61491
+ description: "Run guided setup for API keys and optional packages",
61492
+ usage: "ck setup [options]",
61493
+ examples: [
61494
+ {
61495
+ command: "ck setup",
61496
+ description: "Run setup wizard in current project"
61497
+ },
61498
+ {
61499
+ command: "ck setup --global --skip-packages",
61500
+ description: "Configure global setup without package installation"
61501
+ }
61502
+ ],
61503
+ optionGroups: [
61504
+ {
61505
+ title: "Options",
61506
+ options: [
61507
+ {
61508
+ flags: "--global",
61509
+ description: "Configure in global Claude directory (~/.claude/)"
61510
+ },
61511
+ {
61512
+ flags: "--skip-packages",
61513
+ description: "Skip optional package installation"
61514
+ },
61515
+ {
61516
+ flags: "--dir <dir>",
61517
+ description: "Target directory for setup",
61518
+ defaultValue: "current directory"
61519
+ }
61520
+ ]
61521
+ }
61522
+ ]
61523
+ };
61524
+ });
61525
+
61526
+ // src/domains/help/commands/agents-command-help.ts
61527
+ var agentsCommandHelp;
61528
+ var init_agents_command_help = __esm(() => {
61529
+ agentsCommandHelp = {
61530
+ name: "agents",
61531
+ description: "Install, uninstall, and manage Claude Code agents across providers",
61532
+ usage: "ck agents [options]",
61533
+ examples: [
61534
+ {
61535
+ command: "ck agents --name maintainer --agent codex",
61536
+ description: "Install one agent to Codex"
61537
+ },
61538
+ {
61539
+ command: "ck agents --list --installed",
61540
+ description: "Show installed agents and locations"
61541
+ }
61542
+ ],
61543
+ optionGroups: [
61544
+ {
61545
+ title: "Mode Options",
61546
+ options: [
61547
+ {
61548
+ flags: "-l, --list",
61549
+ description: "List available agents from source"
61550
+ },
61551
+ {
61552
+ flags: "--installed",
61553
+ description: "When used with --list, show installed agents instead"
61554
+ },
61555
+ {
61556
+ flags: "-u, --uninstall",
61557
+ description: "Uninstall agent(s) from providers"
61558
+ },
61559
+ {
61560
+ flags: "--sync",
61561
+ description: "Sync registry with filesystem (clean orphaned entries)"
61562
+ }
61563
+ ]
61564
+ },
61565
+ {
61566
+ title: "Installation Options",
61567
+ options: [
61568
+ {
61569
+ flags: "-n, --name <agent>",
61570
+ description: "Agent name to install or uninstall"
61571
+ },
61572
+ {
61573
+ flags: "-a, --agent <provider>",
61574
+ description: "Target provider(s), can be specified multiple times"
61575
+ },
61576
+ {
61577
+ flags: "-g, --global",
61578
+ description: "Install globally instead of project-level"
61579
+ },
61580
+ {
61581
+ flags: "--all",
61582
+ description: "Install to all supported providers"
61583
+ },
61584
+ {
61585
+ flags: "-y, --yes",
61586
+ description: "Skip confirmation prompts"
61587
+ }
61588
+ ]
61589
+ },
61590
+ {
61591
+ title: "Uninstall Options",
61592
+ options: [
61593
+ {
61594
+ flags: "--force",
61595
+ description: "Force uninstall even if not tracked in registry"
61596
+ }
61597
+ ]
61598
+ }
61599
+ ]
61600
+ };
61601
+ });
61602
+
61603
+ // src/domains/help/commands/commands-command-help.ts
61604
+ var commandsCommandHelp;
61605
+ var init_commands_command_help = __esm(() => {
61606
+ commandsCommandHelp = {
61607
+ name: "commands",
61608
+ description: "Install, uninstall, and manage Claude commands across providers",
61609
+ usage: "ck commands [options]",
61610
+ examples: [
61611
+ {
61612
+ command: "ck commands --name plan --agent codex",
61613
+ description: "Install one slash command to Codex"
61614
+ },
61615
+ {
61616
+ command: "ck commands --list",
61617
+ description: "List available commands from source"
61618
+ }
61619
+ ],
61620
+ optionGroups: [
61621
+ {
61622
+ title: "Mode Options",
61623
+ options: [
61624
+ {
61625
+ flags: "-l, --list",
61626
+ description: "List available commands from source"
61627
+ },
61628
+ {
61629
+ flags: "--installed",
61630
+ description: "When used with --list, show installed commands instead"
61631
+ },
61632
+ {
61633
+ flags: "-u, --uninstall",
61634
+ description: "Uninstall command(s) from providers"
61635
+ },
61636
+ {
61637
+ flags: "--sync",
61638
+ description: "Sync registry with filesystem (clean orphaned entries)"
61639
+ }
61640
+ ]
61641
+ },
61642
+ {
61643
+ title: "Installation Options",
61644
+ options: [
61645
+ {
61646
+ flags: "-n, --name <command>",
61647
+ description: "Command name to install or uninstall"
61648
+ },
61649
+ {
61650
+ flags: "-a, --agent <provider>",
61651
+ description: "Target provider(s), can be specified multiple times"
61652
+ },
61653
+ {
61654
+ flags: "-g, --global",
61655
+ description: "Install globally instead of project-level"
61656
+ },
61657
+ {
61658
+ flags: "--all",
61659
+ description: "Install to all supported providers"
61660
+ },
61661
+ {
61662
+ flags: "-y, --yes",
61663
+ description: "Skip confirmation prompts"
61664
+ }
61665
+ ]
61666
+ },
61667
+ {
61668
+ title: "Uninstall Options",
61669
+ options: [
61670
+ {
61671
+ flags: "--force",
61672
+ description: "Force uninstall even if not tracked in registry"
61673
+ }
61674
+ ]
61675
+ }
61676
+ ]
61677
+ };
61678
+ });
61679
+
61680
+ // src/domains/help/commands/port-command-help.ts
61681
+ var portCommandHelp;
61682
+ var init_port_command_help = __esm(() => {
61683
+ portCommandHelp = {
61684
+ name: "port",
61685
+ description: "Port agents, commands, skills, config, and rules to other providers",
61686
+ usage: "ck port [options]",
61687
+ examples: [
61688
+ {
61689
+ command: "ck port --agent codex --agent opencode",
61690
+ description: "Port all supported content to selected providers"
61691
+ },
61692
+ {
61693
+ command: "ck port --config --source ./CLAUDE.md",
61694
+ description: "Port only config from a specific source file"
61695
+ }
61696
+ ],
61697
+ optionGroups: [
61698
+ {
61699
+ title: "Target Options",
61700
+ options: [
61701
+ {
61702
+ flags: "-a, --agent <provider>",
61703
+ description: "Target provider(s), can be specified multiple times"
61704
+ },
61705
+ {
61706
+ flags: "--all",
61707
+ description: "Port to all supported providers"
61708
+ },
61709
+ {
61710
+ flags: "-g, --global",
61711
+ description: "Install globally instead of project-level"
61712
+ },
61713
+ {
61714
+ flags: "-y, --yes",
61715
+ description: "Skip confirmation prompts"
61716
+ }
61717
+ ]
61718
+ },
61719
+ {
61720
+ title: "Content Selection",
61721
+ options: [
61722
+ {
61723
+ flags: "--config",
61724
+ description: "Port CLAUDE.md config only"
61725
+ },
61726
+ {
61727
+ flags: "--rules",
61728
+ description: "Port .claude/rules only"
61729
+ },
61730
+ {
61731
+ flags: "--skip-config",
61732
+ description: "Skip config porting"
61733
+ },
61734
+ {
61735
+ flags: "--skip-rules",
61736
+ description: "Skip rules porting"
61737
+ },
61738
+ {
61739
+ flags: "--source <path>",
61740
+ description: "Custom CLAUDE.md source path"
61741
+ }
61742
+ ]
61743
+ }
61744
+ ]
61745
+ };
61746
+ });
61747
+
61319
61748
  // src/domains/help/commands/index.ts
61320
61749
  var init_commands2 = __esm(() => {
61321
61750
  init_new_command_help();
@@ -61325,6 +61754,12 @@ var init_commands2 = __esm(() => {
61325
61754
  init_update_command_help();
61326
61755
  init_versions_command_help();
61327
61756
  init_skills_command_help();
61757
+ init_config_command_help();
61758
+ init_projects_command_help();
61759
+ init_setup_command_help();
61760
+ init_agents_command_help();
61761
+ init_commands_command_help();
61762
+ init_port_command_help();
61328
61763
  init_common_options();
61329
61764
  });
61330
61765
 
@@ -61339,11 +61774,17 @@ var init_help_commands = __esm(() => {
61339
61774
  HELP_REGISTRY = {
61340
61775
  new: newCommandHelp,
61341
61776
  init: initCommandHelp,
61777
+ config: configCommandHelp,
61778
+ projects: projectsCommandHelp,
61779
+ setup: setupCommandHelp,
61342
61780
  update: updateCommandHelp,
61343
61781
  versions: versionsCommandHelp,
61344
61782
  doctor: doctorCommandHelp,
61345
61783
  uninstall: uninstallCommandHelp,
61346
- skills: skillsCommandHelp
61784
+ skills: skillsCommandHelp,
61785
+ agents: agentsCommandHelp,
61786
+ commands: commandsCommandHelp,
61787
+ port: portCommandHelp
61347
61788
  };
61348
61789
  });
61349
61790
 
@@ -61649,6 +62090,12 @@ function renderGlobalHelp(commands, options2 = DEFAULT_HELP_OPTIONS) {
61649
62090
  lines.push(`${cmdPart}${descPart}`);
61650
62091
  }
61651
62092
  lines.push("");
62093
+ lines.push(theme.heading("Quick Start:"));
62094
+ lines.push(` ${padEnd(theme.example("ck config"), 24)}${theme.description("Open the config dashboard")}`);
62095
+ lines.push(` ${padEnd(theme.example("ck config --help"), 24)}${theme.description("See config actions and dashboard flags")}`);
62096
+ lines.push(` ${padEnd(theme.example("ck skills --help"), 24)}${theme.description("Discover skill installation workflows")}`);
62097
+ lines.push(` ${padEnd(theme.example("ck port --help"), 24)}${theme.description("Migrate agents/commands/skills across providers")}`);
62098
+ lines.push("");
61652
62099
  lines.push(theme.heading("Global Options:"));
61653
62100
  lines.push(` ${padEnd(theme.flag("--verbose"), 20)}${theme.description("Enable verbose logging")}`);
61654
62101
  lines.push(` ${padEnd(theme.flag("--log-file <path>"), 20)}${theme.description("Write logs to file")}`);
@@ -61660,7 +62107,7 @@ function renderGlobalHelp(commands, options2 = DEFAULT_HELP_OPTIONS) {
61660
62107
  lines.push(` ${padEnd(theme.flag("GITHUB_TOKEN"), 20)}${theme.description("Environment variable for Classic PAT")}`);
61661
62108
  lines.push(` ${padEnd(theme.flag("gh auth login"), 20)}${theme.description("GitHub CLI authentication (default)")}`);
61662
62109
  lines.push("");
61663
- lines.push(theme.muted("Run 'ck <command> --help' for detailed command information"));
62110
+ lines.push(theme.muted("Run 'ck <command> --help' for details. Start with 'ck skills --help' and 'ck config --help'."));
61664
62111
  return lines.filter((s) => s !== undefined).join(`
61665
62112
  `);
61666
62113
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudekit-cli",
3
- "version": "3.35.0-dev.6",
3
+ "version": "3.35.0-dev.8",
4
4
  "description": "CLI tool for bootstrapping and updating ClaudeKit projects",
5
5
  "type": "module",
6
6
  "repository": {