@wavespeed/cli 0.4.7 → 0.4.9
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/README.md +5 -1
- package/dist/commands/balance.js +1 -2
- package/dist/commands/skill.js +21 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -115,15 +115,19 @@ MiniMax H3 is the open-weights default: cheap, fast, and native stereo audio —
|
|
|
115
115
|
No MCP server, no daemon. The CLI **is** the interface — agents already know how to run shell commands.
|
|
116
116
|
|
|
117
117
|
```bash
|
|
118
|
-
wavespeed skill install # writes .claude/skills/wavespeed/SKILL.md
|
|
118
|
+
wavespeed skill install # writes .claude/skills/wavespeed/SKILL.md and .agents/skills/wavespeed/SKILL.md
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
The skill teaches the agent the three-step pattern: `models` to find, `run <id> -h` to discover params, `run <id> -p "…" --json` to execute. Every command supports `--json` for clean piping.
|
|
122
122
|
|
|
123
123
|
**OpenCode** loads the same file with no extra steps — `.claude/skills/` is on its skill search path.
|
|
124
124
|
|
|
125
|
+
**Codex** reads `.agents/skills/`, which the same command writes. For a one-line install that also wires up the MCP server: `codex plugin marketplace add WaveSpeedAI/codex-plugin-wavespeed-cli` ([WaveSpeedAI/codex-plugin-wavespeed-cli](https://github.com/WaveSpeedAI/codex-plugin-wavespeed-cli)).
|
|
126
|
+
|
|
125
127
|
**DeepSeek Harness (dsh)**: the same skill is packaged for dsh's `.dsh/skills` layout at [WaveSpeedAI/wavespeed-dsh-skill](https://github.com/WaveSpeedAI/wavespeed-dsh-skill).
|
|
126
128
|
|
|
129
|
+
**Kimi Code CLI** reads `.claude/skills/` too, so `wavespeed skill install` is enough. For a one-line install that also wires up the MCP server, use the plugin: `/plugins install https://github.com/WaveSpeedAI/wavespeed-kimi-plugin` ([WaveSpeedAI/wavespeed-kimi-plugin](https://github.com/WaveSpeedAI/wavespeed-kimi-plugin)).
|
|
130
|
+
|
|
127
131
|
## Commands
|
|
128
132
|
|
|
129
133
|
```
|
package/dist/commands/balance.js
CHANGED
|
@@ -28,9 +28,8 @@ export function registerBalance(program) {
|
|
|
28
28
|
process.stdout.write(JSON.stringify({ balance, currency: 'USD', top_up_url: TOPUP_URL }, null, 2) + '\n');
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
const display = balance.toFixed(balance < 10 ? 3 : 2);
|
|
32
31
|
console.log();
|
|
33
|
-
console.log(chalk.bold('Balance: ') + chalk.green(`$${
|
|
32
|
+
console.log(chalk.bold('Balance: ') + chalk.green(`$${balance}`));
|
|
34
33
|
console.log(chalk.gray('Top up: ') + chalk.cyan(TOPUP_URL));
|
|
35
34
|
console.log();
|
|
36
35
|
if (opts.topUp) {
|
package/dist/commands/skill.js
CHANGED
|
@@ -7,11 +7,22 @@ function skillSourcePath() {
|
|
|
7
7
|
// dist/commands/skill.js -> ../../skills/SKILL.md
|
|
8
8
|
return path.resolve(here, '..', '..', 'skills', 'SKILL.md');
|
|
9
9
|
}
|
|
10
|
+
// Two discovery roots cover every agent we target: Claude Code, Cursor and
|
|
11
|
+
// OpenCode read `.claude/skills/`; Codex, Kimi Code and the wider agents.md
|
|
12
|
+
// ecosystem read `.agents/skills/`. Writing both keeps a single install
|
|
13
|
+
// command working everywhere.
|
|
14
|
+
export const SKILL_ROOTS = ['.claude', '.agents'];
|
|
15
|
+
export function writeSkills(cwd = process.cwd()) {
|
|
16
|
+
return SKILL_ROOTS.map((root) => {
|
|
17
|
+
const dest = path.join(cwd, root, 'skills', 'wavespeed', 'SKILL.md');
|
|
18
|
+
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
19
|
+
fs.copyFileSync(skillSourcePath(), dest);
|
|
20
|
+
return dest;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/** @deprecated use writeSkills — kept for callers that expect the Claude path. */
|
|
10
24
|
export function writeSkill(cwd = process.cwd()) {
|
|
11
|
-
|
|
12
|
-
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
13
|
-
fs.copyFileSync(skillSourcePath(), dest);
|
|
14
|
-
return dest;
|
|
25
|
+
return writeSkills(cwd)[0];
|
|
15
26
|
}
|
|
16
27
|
export function registerSkill(program) {
|
|
17
28
|
const skill = program
|
|
@@ -19,19 +30,21 @@ export function registerSkill(program) {
|
|
|
19
30
|
.description('Install a Wavespeed skill for Claude Code, Cursor, Codex, and other coding agents');
|
|
20
31
|
skill
|
|
21
32
|
.command('install', { isDefault: true })
|
|
22
|
-
.description('Drop a SKILL.md into .claude/skills/
|
|
33
|
+
.description('Drop a SKILL.md into .claude/skills/ and .agents/skills/ so Claude Code, Cursor, Codex, Kimi Code and other agents know how to call the CLI')
|
|
23
34
|
.option('--print', 'Print the skill body to stdout instead of writing a file')
|
|
24
35
|
.action((opts) => {
|
|
25
36
|
if (opts.print) {
|
|
26
37
|
process.stdout.write(fs.readFileSync(skillSourcePath(), 'utf8'));
|
|
27
38
|
return;
|
|
28
39
|
}
|
|
29
|
-
const
|
|
40
|
+
const dests = writeSkills();
|
|
30
41
|
console.log();
|
|
31
|
-
|
|
42
|
+
for (const dest of dests) {
|
|
43
|
+
console.log(chalk.green('Installed skill: ') + chalk.cyan(path.relative(process.cwd(), dest)));
|
|
44
|
+
}
|
|
32
45
|
console.log();
|
|
33
46
|
console.log(chalk.bold('You\'re set.'));
|
|
34
|
-
console.log(chalk.gray(' Claude Code, Cursor, and other agents
|
|
47
|
+
console.log(chalk.gray(' Claude Code, Cursor and OpenCode read .claude/skills/*; Codex, Kimi Code and other agents read .agents/skills/*.'));
|
|
35
48
|
console.log(chalk.gray(' Agents will call the CLI directly — no MCP server, no extra config.'));
|
|
36
49
|
console.log();
|
|
37
50
|
console.log(chalk.gray(' Quick check: ask the agent to run ') + chalk.cyan('wavespeed models') + chalk.gray('.'));
|