claudekit-cli 3.31.0-dev.4 → 3.31.0-dev.6
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/dist/index.js +158 -40
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -22985,6 +22985,108 @@ var init_versions_command_help = __esm(() => {
|
|
|
22985
22985
|
};
|
|
22986
22986
|
});
|
|
22987
22987
|
|
|
22988
|
+
// src/domains/help/commands/skill-command-help.ts
|
|
22989
|
+
var skillCommandHelp;
|
|
22990
|
+
var init_skill_command_help = __esm(() => {
|
|
22991
|
+
skillCommandHelp = {
|
|
22992
|
+
name: "skill",
|
|
22993
|
+
description: "Install, uninstall, and manage ClaudeKit skills across coding agents",
|
|
22994
|
+
usage: "ck skill [options]",
|
|
22995
|
+
examples: [
|
|
22996
|
+
{
|
|
22997
|
+
command: "ck skill --name frontend-design --agent claude-code -g",
|
|
22998
|
+
description: "Install skill to Claude Code globally"
|
|
22999
|
+
},
|
|
23000
|
+
{
|
|
23001
|
+
command: "ck skill --list --installed",
|
|
23002
|
+
description: "Show all installed skills with their locations"
|
|
23003
|
+
}
|
|
23004
|
+
],
|
|
23005
|
+
optionGroups: [
|
|
23006
|
+
{
|
|
23007
|
+
title: "Mode Options",
|
|
23008
|
+
options: [
|
|
23009
|
+
{
|
|
23010
|
+
flags: "-l, --list",
|
|
23011
|
+
description: "List available skills from ClaudeKit source"
|
|
23012
|
+
},
|
|
23013
|
+
{
|
|
23014
|
+
flags: "--installed",
|
|
23015
|
+
description: "When used with --list, show installed skills instead"
|
|
23016
|
+
},
|
|
23017
|
+
{
|
|
23018
|
+
flags: "-u, --uninstall",
|
|
23019
|
+
description: "Uninstall skill(s) from agent(s)"
|
|
23020
|
+
},
|
|
23021
|
+
{
|
|
23022
|
+
flags: "--sync",
|
|
23023
|
+
description: "Sync registry with filesystem (clean orphaned entries)"
|
|
23024
|
+
}
|
|
23025
|
+
]
|
|
23026
|
+
},
|
|
23027
|
+
{
|
|
23028
|
+
title: "Installation Options",
|
|
23029
|
+
options: [
|
|
23030
|
+
{
|
|
23031
|
+
flags: "-n, --name <skill>",
|
|
23032
|
+
description: "Skill name to install or uninstall"
|
|
23033
|
+
},
|
|
23034
|
+
{
|
|
23035
|
+
flags: "-a, --agent <agent>",
|
|
23036
|
+
description: "Target agent(s) - can be specified multiple times. Valid: claude-code, cursor, codex, opencode, goose, gemini-cli, antigravity, github-copilot, amp, kilo, roo, windsurf, cline, openhands"
|
|
23037
|
+
},
|
|
23038
|
+
{
|
|
23039
|
+
flags: "-g, --global",
|
|
23040
|
+
description: "Install to user's home directory (available across projects)"
|
|
23041
|
+
},
|
|
23042
|
+
{
|
|
23043
|
+
flags: "--all",
|
|
23044
|
+
description: "Install to all supported agents"
|
|
23045
|
+
},
|
|
23046
|
+
{
|
|
23047
|
+
flags: "-y, --yes",
|
|
23048
|
+
description: "Non-interactive mode (skip confirmations)"
|
|
23049
|
+
}
|
|
23050
|
+
]
|
|
23051
|
+
},
|
|
23052
|
+
{
|
|
23053
|
+
title: "Uninstall Options",
|
|
23054
|
+
options: [
|
|
23055
|
+
{
|
|
23056
|
+
flags: "-f, --force",
|
|
23057
|
+
description: "Force uninstall even if skill not in registry (requires --agent)"
|
|
23058
|
+
}
|
|
23059
|
+
]
|
|
23060
|
+
}
|
|
23061
|
+
],
|
|
23062
|
+
sections: [
|
|
23063
|
+
{
|
|
23064
|
+
title: "Supported Agents",
|
|
23065
|
+
content: ` claude-code Claude Code CLI
|
|
23066
|
+
cursor Cursor IDE
|
|
23067
|
+
codex Codex CLI
|
|
23068
|
+
opencode OpenCode
|
|
23069
|
+
goose Goose AI
|
|
23070
|
+
gemini-cli Gemini CLI
|
|
23071
|
+
antigravity Antigravity Agent
|
|
23072
|
+
github-copilot GitHub Copilot
|
|
23073
|
+
amp Amp
|
|
23074
|
+
kilo Kilo Code
|
|
23075
|
+
roo Roo Code
|
|
23076
|
+
windsurf Windsurf IDE
|
|
23077
|
+
cline Cline
|
|
23078
|
+
openhands OpenHands`
|
|
23079
|
+
},
|
|
23080
|
+
{
|
|
23081
|
+
title: "Notes",
|
|
23082
|
+
content: ` • Skills are installed from ~/.claude/skills (ClaudeKit Engineer source)
|
|
23083
|
+
• Registry stored at ~/.claudekit/skill-registry.json
|
|
23084
|
+
• Project installs go to ./<agent>/skills, global to ~/<agent>/skills`
|
|
23085
|
+
}
|
|
23086
|
+
]
|
|
23087
|
+
};
|
|
23088
|
+
});
|
|
23089
|
+
|
|
22988
23090
|
// src/domains/help/commands/index.ts
|
|
22989
23091
|
var init_commands2 = __esm(() => {
|
|
22990
23092
|
init_new_command_help();
|
|
@@ -22993,6 +23095,7 @@ var init_commands2 = __esm(() => {
|
|
|
22993
23095
|
init_uninstall_command_help();
|
|
22994
23096
|
init_update_command_help();
|
|
22995
23097
|
init_versions_command_help();
|
|
23098
|
+
init_skill_command_help();
|
|
22996
23099
|
init_common_options();
|
|
22997
23100
|
});
|
|
22998
23101
|
|
|
@@ -23010,7 +23113,8 @@ var init_help_commands = __esm(() => {
|
|
|
23010
23113
|
update: updateCommandHelp,
|
|
23011
23114
|
versions: versionsCommandHelp,
|
|
23012
23115
|
doctor: doctorCommandHelp,
|
|
23013
|
-
uninstall: uninstallCommandHelp
|
|
23116
|
+
uninstall: uninstallCommandHelp,
|
|
23117
|
+
skill: skillCommandHelp
|
|
23014
23118
|
};
|
|
23015
23119
|
});
|
|
23016
23120
|
|
|
@@ -48946,6 +49050,7 @@ async function skillCommand(options2) {
|
|
|
48946
49050
|
const ctx = {
|
|
48947
49051
|
options: validOptions,
|
|
48948
49052
|
cancelled: false,
|
|
49053
|
+
selectedSkills: [],
|
|
48949
49054
|
selectedAgents: [],
|
|
48950
49055
|
installGlobally: validOptions.global ?? false,
|
|
48951
49056
|
availableSkills,
|
|
@@ -48968,12 +49073,12 @@ async function skillCommand(options2) {
|
|
|
48968
49073
|
$e(import_picocolors21.default.red("Installation failed"));
|
|
48969
49074
|
process.exit(1);
|
|
48970
49075
|
}
|
|
48971
|
-
ctx.
|
|
49076
|
+
ctx.selectedSkills = [skill];
|
|
48972
49077
|
f2.info(`Skill: ${import_picocolors21.default.cyan(skill.name)}`);
|
|
48973
49078
|
f2.message(import_picocolors21.default.dim(skill.description));
|
|
48974
49079
|
} else if (availableSkills.length === 1) {
|
|
48975
|
-
ctx.
|
|
48976
|
-
f2.info(`Skill: ${import_picocolors21.default.cyan(ctx.
|
|
49080
|
+
ctx.selectedSkills = [availableSkills[0]];
|
|
49081
|
+
f2.info(`Skill: ${import_picocolors21.default.cyan(ctx.selectedSkills[0].name)}`);
|
|
48977
49082
|
} else if (validOptions.yes) {
|
|
48978
49083
|
f2.error("--name required in non-interactive mode with multiple skills");
|
|
48979
49084
|
process.exit(1);
|
|
@@ -48983,15 +49088,17 @@ async function skillCommand(options2) {
|
|
|
48983
49088
|
label: s.name,
|
|
48984
49089
|
hint: s.description.length > 50 ? `${s.description.slice(0, 47)}...` : s.description
|
|
48985
49090
|
}));
|
|
48986
|
-
const selected = await
|
|
48987
|
-
message: "Select
|
|
48988
|
-
options: skillChoices
|
|
49091
|
+
const selected = await ae({
|
|
49092
|
+
message: "Select skill(s) to install",
|
|
49093
|
+
options: skillChoices,
|
|
49094
|
+
required: true
|
|
48989
49095
|
});
|
|
48990
49096
|
if (lD(selected)) {
|
|
48991
49097
|
ue("Installation cancelled");
|
|
48992
49098
|
return;
|
|
48993
49099
|
}
|
|
48994
|
-
ctx.
|
|
49100
|
+
ctx.selectedSkills = selected;
|
|
49101
|
+
f2.info(`Selected ${ctx.selectedSkills.length} skill(s)`);
|
|
48995
49102
|
}
|
|
48996
49103
|
const validAgentTypes = Object.keys(agents);
|
|
48997
49104
|
if (validOptions.agent && validOptions.agent.length > 0) {
|
|
@@ -49069,60 +49176,71 @@ async function skillCommand(options2) {
|
|
|
49069
49176
|
}
|
|
49070
49177
|
ctx.installGlobally = scope;
|
|
49071
49178
|
}
|
|
49072
|
-
if (
|
|
49073
|
-
f2.error("No
|
|
49179
|
+
if (ctx.selectedSkills.length === 0) {
|
|
49180
|
+
f2.error("No skills selected");
|
|
49074
49181
|
process.exit(1);
|
|
49075
49182
|
}
|
|
49076
|
-
const selectedSkill = ctx.selectedSkill;
|
|
49077
49183
|
console.log();
|
|
49078
49184
|
f2.step(import_picocolors21.default.bold("Installation Summary"));
|
|
49079
|
-
const
|
|
49080
|
-
|
|
49081
|
-
|
|
49082
|
-
|
|
49083
|
-
|
|
49084
|
-
|
|
49185
|
+
for (const skill of ctx.selectedSkills) {
|
|
49186
|
+
f2.message(` ${import_picocolors21.default.cyan(skill.name)}`);
|
|
49187
|
+
const preview = getInstallPreview(skill, ctx.selectedAgents, {
|
|
49188
|
+
global: ctx.installGlobally
|
|
49189
|
+
});
|
|
49190
|
+
for (const item of preview) {
|
|
49191
|
+
const status = item.exists ? import_picocolors21.default.yellow(" (overwrite)") : "";
|
|
49192
|
+
f2.message(` ${import_picocolors21.default.dim("→")} ${item.displayName}${status}`);
|
|
49193
|
+
}
|
|
49085
49194
|
}
|
|
49086
49195
|
console.log();
|
|
49087
49196
|
if (!validOptions.yes) {
|
|
49088
|
-
const confirmed = await se({
|
|
49197
|
+
const confirmed = await se({
|
|
49198
|
+
message: `Install ${ctx.selectedSkills.length} skill(s) to ${ctx.selectedAgents.length} agent(s)?`
|
|
49199
|
+
});
|
|
49089
49200
|
if (lD(confirmed) || !confirmed) {
|
|
49090
49201
|
ue("Installation cancelled");
|
|
49091
49202
|
return;
|
|
49092
49203
|
}
|
|
49093
49204
|
}
|
|
49094
49205
|
const spinner = de();
|
|
49095
|
-
spinner.start(
|
|
49096
|
-
|
|
49097
|
-
|
|
49098
|
-
|
|
49206
|
+
spinner.start(`Installing ${ctx.selectedSkills.length} skill(s)...`);
|
|
49207
|
+
let totalSuccessful = 0;
|
|
49208
|
+
let totalFailed = 0;
|
|
49209
|
+
const allResults = [];
|
|
49210
|
+
for (const skill of ctx.selectedSkills) {
|
|
49211
|
+
const results = await installSkillToAgents(skill, ctx.selectedAgents, {
|
|
49212
|
+
global: ctx.installGlobally
|
|
49213
|
+
});
|
|
49214
|
+
allResults.push({ skill: skill.name, results });
|
|
49215
|
+
totalSuccessful += results.filter((r2) => r2.success).length;
|
|
49216
|
+
totalFailed += results.filter((r2) => !r2.success).length;
|
|
49217
|
+
}
|
|
49099
49218
|
spinner.stop("Installation complete");
|
|
49100
49219
|
console.log();
|
|
49101
|
-
const
|
|
49102
|
-
|
|
49103
|
-
|
|
49104
|
-
|
|
49105
|
-
|
|
49106
|
-
|
|
49107
|
-
|
|
49220
|
+
for (const { skill, results } of allResults) {
|
|
49221
|
+
const successful = results.filter((r2) => r2.success);
|
|
49222
|
+
const failed = results.filter((r2) => !r2.success);
|
|
49223
|
+
if (successful.length > 0) {
|
|
49224
|
+
f2.success(`${import_picocolors21.default.cyan(skill)} → ${successful.length} agent(s)`);
|
|
49225
|
+
for (const r2 of successful) {
|
|
49226
|
+
f2.message(` ${import_picocolors21.default.green("✓")} ${r2.agentDisplayName}`);
|
|
49227
|
+
}
|
|
49108
49228
|
}
|
|
49109
|
-
|
|
49110
|
-
|
|
49111
|
-
|
|
49112
|
-
|
|
49113
|
-
|
|
49114
|
-
f2.message(` ${import_picocolors21.default.red("✗")} ${r2.agentDisplayName}`);
|
|
49115
|
-
f2.message(` ${import_picocolors21.default.dim(r2.error)}`);
|
|
49229
|
+
if (failed.length > 0) {
|
|
49230
|
+
f2.error(`${import_picocolors21.default.cyan(skill)} failed: ${failed.length} agent(s)`);
|
|
49231
|
+
for (const r2 of failed) {
|
|
49232
|
+
f2.message(` ${import_picocolors21.default.red("✗")} ${r2.agentDisplayName}: ${import_picocolors21.default.dim(r2.error)}`);
|
|
49233
|
+
}
|
|
49116
49234
|
}
|
|
49117
49235
|
}
|
|
49118
49236
|
console.log();
|
|
49119
|
-
if (
|
|
49237
|
+
if (totalSuccessful === 0 && totalFailed === 0) {
|
|
49120
49238
|
$e(import_picocolors21.default.yellow("No installations performed"));
|
|
49121
|
-
} else if (
|
|
49239
|
+
} else if (totalFailed > 0 && totalSuccessful === 0) {
|
|
49122
49240
|
$e(import_picocolors21.default.red("Installation failed"));
|
|
49123
49241
|
process.exit(1);
|
|
49124
49242
|
} else {
|
|
49125
|
-
$e(import_picocolors21.default.green(
|
|
49243
|
+
$e(import_picocolors21.default.green(`Done! ${totalSuccessful} installed, ${totalFailed} failed`));
|
|
49126
49244
|
}
|
|
49127
49245
|
} catch (error) {
|
|
49128
49246
|
logger.error(error instanceof Error ? error.message : "Unknown error");
|
|
@@ -49626,7 +49744,7 @@ var import_fs_extra37 = __toESM(require_lib(), 1);
|
|
|
49626
49744
|
// package.json
|
|
49627
49745
|
var package_default = {
|
|
49628
49746
|
name: "claudekit-cli",
|
|
49629
|
-
version: "3.31.0-dev.
|
|
49747
|
+
version: "3.31.0-dev.6",
|
|
49630
49748
|
description: "CLI tool for bootstrapping and updating ClaudeKit projects",
|
|
49631
49749
|
type: "module",
|
|
49632
49750
|
repository: {
|