@wavespeed/cli 0.4.6 → 0.4.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.
- package/README.md +12 -8
- package/dist/cli.js +1 -1
- package/dist/commands/auth.js +1 -1
- package/dist/commands/skill.js +21 -8
- package/package.json +2 -2
- package/skills/SKILL.md +6 -6
package/README.md
CHANGED
|
@@ -84,8 +84,8 @@ wavespeed run ... -p "..." --json | jq '.outputs[0]'
|
|
|
84
84
|
"input": { "aspect_ratio": "16:9", "resolution": "2k" } },
|
|
85
85
|
"social": { "model": "bytedance/seedream-v5.0-pro",
|
|
86
86
|
"input": { "aspect_ratio": "1:1", "resolution": "1k" } },
|
|
87
|
-
"vid": { "model": "
|
|
88
|
-
"input": { "resolution": "
|
|
87
|
+
"vid": { "model": "wavespeed-ai/minimax-h3/text-to-video",
|
|
88
|
+
"input": { "resolution": "768p", "duration": 5 } }
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
```
|
|
@@ -103,27 +103,31 @@ Resolution: positional with `/` is a model ID; otherwise looked up as an alias.
|
|
|
103
103
|
|---|---|
|
|
104
104
|
| Text → image | `bytedance/seedream-v5.0-pro` |
|
|
105
105
|
| Image edit | `bytedance/seedream-v5.0-pro/edit` |
|
|
106
|
-
| Text → video | `
|
|
107
|
-
| Image → video | `
|
|
108
|
-
| Video edit | `
|
|
109
|
-
| Video extend | `
|
|
106
|
+
| Text → video | `wavespeed-ai/minimax-h3/text-to-video` |
|
|
107
|
+
| Image → video | `wavespeed-ai/minimax-h3/image-to-video` |
|
|
108
|
+
| Video edit | `wavespeed-ai/minimax-h3/video-edit` |
|
|
109
|
+
| Video extend | `wavespeed-ai/minimax-h3/video-extend` |
|
|
110
110
|
|
|
111
|
-
Browse alternatives with `wavespeed models <query>`.
|
|
111
|
+
MiniMax H3 is the open-weights default: cheap, fast, and native stereo audio — the best place to start. When you need the highest quality, switch to `bytedance/seedance-2.5/*` (text-to-video, image-to-video, video-edit, video-extend). Browse alternatives with `wavespeed models <query>`.
|
|
112
112
|
|
|
113
113
|
## Use from coding agents
|
|
114
114
|
|
|
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/cli.js
CHANGED
|
@@ -44,7 +44,7 @@ ${chalk.bold('Quick start:')}
|
|
|
44
44
|
${chalk.cyan('$ wavespeed models # browse the catalog')}
|
|
45
45
|
${chalk.cyan('$ wavespeed run wavespeed-ai/z-image/turbo -h # see the model\'s flags')}
|
|
46
46
|
${chalk.cyan('$ wavespeed run wavespeed-ai/z-image/turbo -p "a cyberpunk skyline" # ~5s')}
|
|
47
|
-
${chalk.cyan('$ wavespeed run
|
|
47
|
+
${chalk.cyan('$ wavespeed run wavespeed-ai/minimax-h3/text-to-video -p "drone shot over snowy peaks"')}
|
|
48
48
|
|
|
49
49
|
${chalk.bold('Use from any coding agent (Claude Code, Cursor, Codex):')}
|
|
50
50
|
${chalk.cyan('$ wavespeed skill install')} ${chalk.gray('# drops a SKILL.md so the agent knows how to call wavespeed')}
|
package/dist/commands/auth.js
CHANGED
|
@@ -109,7 +109,7 @@ async function loginFlow(opts) {
|
|
|
109
109
|
console.log(chalk.bold('Try it:'));
|
|
110
110
|
console.log(' ' + chalk.cyan('wavespeed models # browse the catalog'));
|
|
111
111
|
console.log(' ' + chalk.cyan('wavespeed run wavespeed-ai/z-image/turbo -p "a cyberpunk skyline at golden hour"'));
|
|
112
|
-
console.log(' ' + chalk.cyan('wavespeed run
|
|
112
|
+
console.log(' ' + chalk.cyan('wavespeed run wavespeed-ai/minimax-h3/text-to-video -p "drone shot over snowy peaks"'));
|
|
113
113
|
console.log();
|
|
114
114
|
}
|
|
115
115
|
export function registerAuth(program) {
|
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('.'));
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavespeed/cli",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"description": "WaveSpeed CLI
|
|
3
|
+
"version": "0.4.8",
|
|
4
|
+
"description": "WaveSpeed CLI — one command to run any WaveSpeed AI model from your terminal.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
package/skills/SKILL.md
CHANGED
|
@@ -31,12 +31,12 @@ wavespeed run bytedance/seedream-v5.0-pro \
|
|
|
31
31
|
|---|---|
|
|
32
32
|
| Text → image | `bytedance/seedream-v5.0-pro` |
|
|
33
33
|
| Image edit (instruction-driven) | `bytedance/seedream-v5.0-pro/edit` — requires `images: [url, ...]` |
|
|
34
|
-
| Text → video | `
|
|
35
|
-
| Image → video | `
|
|
36
|
-
| Video edit (instruction-driven) | `
|
|
37
|
-
| Video extend | `
|
|
34
|
+
| Text → video | `wavespeed-ai/minimax-h3/text-to-video` |
|
|
35
|
+
| Image → video | `wavespeed-ai/minimax-h3/image-to-video` — requires `image: url` |
|
|
36
|
+
| Video edit (instruction-driven) | `wavespeed-ai/minimax-h3/video-edit` — requires `video: url` |
|
|
37
|
+
| Video extend | `wavespeed-ai/minimax-h3/video-extend` — requires `video: url` |
|
|
38
38
|
|
|
39
|
-
These are good starting points. Browse alternatives with `wavespeed models <query>`.
|
|
39
|
+
These are good starting points. MiniMax H3 is the open-weights default: cheap, fast, and native stereo audio — the best place to start. When you need the highest quality, switch to `bytedance/seedance-2.5/*` (text-to-video, image-to-video, video-edit, video-extend). Browse alternatives with `wavespeed models <query>`.
|
|
40
40
|
|
|
41
41
|
## Common recipes
|
|
42
42
|
|
|
@@ -47,7 +47,7 @@ wavespeed run bytedance/seedream-v5.0-pro/edit \
|
|
|
47
47
|
-i images='["@./input.jpg"]' --json
|
|
48
48
|
|
|
49
49
|
# Image-to-video — same @ marker for single-URL fields
|
|
50
|
-
wavespeed run
|
|
50
|
+
wavespeed run wavespeed-ai/minimax-h3/image-to-video \
|
|
51
51
|
-p "subtle parallax, gentle wind" \
|
|
52
52
|
-i image=@./hero.jpg -i duration=5 --json
|
|
53
53
|
|