superacli 1.1.13 → 1.1.14
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/.agents/skills/humanenv-usage/SKILL.md +19 -0
- package/AGENTS.md +62 -0
- package/CONTRIBUTING.md +6 -2
- package/cli/plugin-install-guidance.js +25 -11
- package/cli/plugins-registry.js +25 -6
- package/cli/skills-catalog.js +85 -10
- package/coverage/clover.xml +1073 -965
- package/coverage/lcov-report/cli/adapter-schema.js.html +32 -32
- package/coverage/lcov-report/cli/adapters/builtin.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/http.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/index.html +1 -1
- package/coverage/lcov-report/cli/adapters/mcp.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/openapi.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/process.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/shell.js.html +1 -1
- package/coverage/lcov-report/cli/ask.js.html +1 -1
- package/coverage/lcov-report/cli/config.js.html +109 -109
- package/coverage/lcov-report/cli/discover.js.html +1 -1
- package/coverage/lcov-report/cli/executor.js.html +1 -1
- package/coverage/lcov-report/cli/help-json.js.html +1 -1
- package/coverage/lcov-report/cli/index.html +92 -92
- package/coverage/lcov-report/cli/mcp-diagnostics.js.html +1 -1
- package/coverage/lcov-report/cli/mcp-discovery.js.html +1 -1
- package/coverage/lcov-report/cli/mcp-local.js.html +1 -1
- package/coverage/lcov-report/cli/mcp-stdio-jsonrpc.js.html +1 -1
- package/coverage/lcov-report/cli/namespace-passthrough.js.html +1 -1
- package/coverage/lcov-report/cli/plan-runtime.js.html +1 -1
- package/coverage/lcov-report/cli/planner.js.html +1 -1
- package/coverage/lcov-report/cli/plugin-install-guidance.js.html +919 -877
- package/coverage/lcov-report/cli/plugins-command.js.html +452 -452
- package/coverage/lcov-report/cli/plugins-learn.js.html +60 -60
- package/coverage/lcov-report/cli/plugins-manager.js.html +133 -133
- package/coverage/lcov-report/cli/plugins-registry.js.html +105 -48
- package/coverage/lcov-report/cli/plugins-store.js.html +106 -106
- package/coverage/lcov-report/cli/skills-catalog.js.html +366 -141
- package/coverage/lcov-report/cli/skills-mcp.js.html +1 -1
- package/coverage/lcov-report/cli/skills.js.html +1 -1
- package/coverage/lcov-report/index.html +19 -19
- package/coverage/lcov-report/server/app.js.html +1 -1
- package/coverage/lcov-report/server/index.html +1 -1
- package/coverage/lcov-report/server/routes/ask.js.html +1 -1
- package/coverage/lcov-report/server/routes/commands.js.html +1 -1
- package/coverage/lcov-report/server/routes/config.js.html +1 -1
- package/coverage/lcov-report/server/routes/index.html +1 -1
- package/coverage/lcov-report/server/routes/jobs.js.html +1 -1
- package/coverage/lcov-report/server/routes/mcp.js.html +1 -1
- package/coverage/lcov-report/server/routes/plans.js.html +1 -1
- package/coverage/lcov-report/server/routes/plugins.js.html +1 -1
- package/coverage/lcov-report/server/routes/specs.js.html +1 -1
- package/coverage/lcov-report/server/services/configService.js.html +1 -1
- package/coverage/lcov-report/server/services/index.html +1 -1
- package/coverage/lcov-report/server/services/pluginsService.js.html +1 -1
- package/coverage/lcov-report/server/storage/adapter.js.html +1 -1
- package/coverage/lcov-report/server/storage/file.js.html +1 -1
- package/coverage/lcov-report/server/storage/index.html +1 -1
- package/coverage/lcov-report/server/storage/mongo.js.html +1 -1
- package/coverage/lcov.info +1423 -1120
- package/package.json +1 -1
- package/plugins/beads/install-guidance.json +10 -0
- package/plugins/beads/meta.json +5 -0
- package/plugins/codedb/meta.json +5 -0
- package/plugins/codedb/plugin.json +169 -0
- package/plugins/codedb/skills/quickstart/SKILL.md +65 -0
- package/plugins/humanenv/.agents/skills/humanenv-sdk-python-usage/SKILL.md +37 -0
- package/plugins/humanenv/.agents/skills/humanenv-usage/SKILL.md +32 -0
- package/plugins/humanenv/plugin.json +65 -0
- package/plugins/humanenv/skills/quickstart/SKILL.md +95 -0
- package/plugins/mmx/install-guidance.json +10 -0
- package/plugins/mmx/meta.json +5 -0
- package/plugins/mmx/plugin.json +413 -0
- package/plugins/mmx/skills/quickstart/SKILL.md +234 -0
- package/plugins/plugins.json +21 -9
- package/plugins/rtk/README.md +63 -0
- package/plugins/rtk/plugin.json +79 -0
- package/plugins/rtk/skills/quickstart/SKILL.md +78 -0
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mmx",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MiniMax AI Platform CLI — text, image, video, speech, music, vision, and search generation",
|
|
5
|
+
"source": "https://github.com/MiniMax-AI/cli/",
|
|
6
|
+
"checks": [
|
|
7
|
+
{ "type": "binary", "name": "mmx" }
|
|
8
|
+
],
|
|
9
|
+
"learn": {
|
|
10
|
+
"file": "skills/quickstart/SKILL.md"
|
|
11
|
+
},
|
|
12
|
+
"commands": [
|
|
13
|
+
{
|
|
14
|
+
"namespace": "mmx",
|
|
15
|
+
"resource": "auth",
|
|
16
|
+
"action": "login",
|
|
17
|
+
"description": "Authenticate via OAuth or API key",
|
|
18
|
+
"adapter": "process",
|
|
19
|
+
"adapterConfig": {
|
|
20
|
+
"command": "mmx",
|
|
21
|
+
"baseArgs": ["auth", "login"],
|
|
22
|
+
"parseJson": false,
|
|
23
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
24
|
+
},
|
|
25
|
+
"args": [
|
|
26
|
+
{ "name": "method", "type": "string", "required": false, "description": "Auth method: oauth, api-key", "flag": "--method" },
|
|
27
|
+
{ "name": "api-key", "type": "string", "required": false, "description": "API key to store", "flag": "--api-key" },
|
|
28
|
+
{ "name": "no-browser", "type": "boolean", "required": false, "description": "Use device-code flow instead of browser", "flag": "--no-browser" }
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"namespace": "mmx",
|
|
33
|
+
"resource": "auth",
|
|
34
|
+
"action": "status",
|
|
35
|
+
"description": "Check authentication status",
|
|
36
|
+
"adapter": "process",
|
|
37
|
+
"adapterConfig": {
|
|
38
|
+
"command": "mmx",
|
|
39
|
+
"baseArgs": ["auth", "status"],
|
|
40
|
+
"parseJson": false,
|
|
41
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
42
|
+
},
|
|
43
|
+
"args": []
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"namespace": "mmx",
|
|
47
|
+
"resource": "auth",
|
|
48
|
+
"action": "refresh",
|
|
49
|
+
"description": "Refresh OAuth credentials",
|
|
50
|
+
"adapter": "process",
|
|
51
|
+
"adapterConfig": {
|
|
52
|
+
"command": "mmx",
|
|
53
|
+
"baseArgs": ["auth", "refresh"],
|
|
54
|
+
"parseJson": false,
|
|
55
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
56
|
+
},
|
|
57
|
+
"args": []
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"namespace": "mmx",
|
|
61
|
+
"resource": "auth",
|
|
62
|
+
"action": "logout",
|
|
63
|
+
"description": "Clear stored credentials",
|
|
64
|
+
"adapter": "process",
|
|
65
|
+
"adapterConfig": {
|
|
66
|
+
"command": "mmx",
|
|
67
|
+
"baseArgs": ["auth", "logout"],
|
|
68
|
+
"parseJson": false,
|
|
69
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
70
|
+
},
|
|
71
|
+
"args": []
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"namespace": "mmx",
|
|
75
|
+
"resource": "text",
|
|
76
|
+
"action": "chat",
|
|
77
|
+
"description": "Send a chat completion request (MiniMax Messages API)",
|
|
78
|
+
"adapter": "process",
|
|
79
|
+
"adapterConfig": {
|
|
80
|
+
"command": "mmx",
|
|
81
|
+
"baseArgs": ["text", "chat"],
|
|
82
|
+
"positionalArgs": ["message"],
|
|
83
|
+
"jsonFlag": "--output",
|
|
84
|
+
"parseJson": true,
|
|
85
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
86
|
+
},
|
|
87
|
+
"args": [
|
|
88
|
+
{ "name": "message", "type": "string", "required": true, "description": "Message text (prefix role: to set role, e.g. assistant:Hi)", "flag": "--message" },
|
|
89
|
+
{ "name": "model", "type": "string", "required": false, "description": "Model ID (default: MiniMax-M2.7)", "flag": "--model" },
|
|
90
|
+
{ "name": "system", "type": "string", "required": false, "description": "System prompt", "flag": "--system" },
|
|
91
|
+
{ "name": "messages-file", "type": "string", "required": false, "description": "JSON file with messages array (use - for stdin)", "flag": "--messages-file" },
|
|
92
|
+
{ "name": "max-tokens", "type": "integer", "required": false, "description": "Maximum tokens to generate (default: 4096)", "flag": "--max-tokens" },
|
|
93
|
+
{ "name": "temperature", "type": "number", "required": false, "description": "Sampling temperature (0.0, 1.0]", "flag": "--temperature" },
|
|
94
|
+
{ "name": "top-p", "type": "number", "required": false, "description": "Nucleus sampling threshold", "flag": "--top-p" },
|
|
95
|
+
{ "name": "stream", "type": "boolean", "required": false, "description": "Stream response tokens", "flag": "--stream" },
|
|
96
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"namespace": "mmx",
|
|
101
|
+
"resource": "image",
|
|
102
|
+
"action": "generate",
|
|
103
|
+
"description": "Generate images (image-01 / image-01-live)",
|
|
104
|
+
"adapter": "process",
|
|
105
|
+
"adapterConfig": {
|
|
106
|
+
"command": "mmx",
|
|
107
|
+
"baseArgs": ["image", "generate"],
|
|
108
|
+
"parseJson": true,
|
|
109
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
110
|
+
},
|
|
111
|
+
"args": [
|
|
112
|
+
{ "name": "prompt", "type": "string", "required": true, "description": "Image description", "flag": "--prompt" },
|
|
113
|
+
{ "name": "aspect-ratio", "type": "string", "required": false, "description": "Aspect ratio (e.g. 16:9, 1:1)", "flag": "--aspect-ratio" },
|
|
114
|
+
{ "name": "n", "type": "integer", "required": false, "description": "Number of images to generate (default: 1)", "flag": "--n" },
|
|
115
|
+
{ "name": "seed", "type": "integer", "required": false, "description": "Random seed for reproducible output", "flag": "--seed" },
|
|
116
|
+
{ "name": "width", "type": "integer", "required": false, "description": "Custom width in pixels (512-2048, multiple of 8)", "flag": "--width" },
|
|
117
|
+
{ "name": "height", "type": "integer", "required": false, "description": "Custom height in pixels (512-2048, multiple of 8)", "flag": "--height" },
|
|
118
|
+
{ "name": "prompt-optimizer", "type": "boolean", "required": false, "description": "Automatically optimize the prompt", "flag": "--prompt-optimizer" },
|
|
119
|
+
{ "name": "aigc-watermark", "type": "boolean", "required": false, "description": "Embed AI-generated content watermark", "flag": "--aigc-watermark" },
|
|
120
|
+
{ "name": "subject-ref", "type": "string", "required": false, "description": "Subject reference (format: type=character,image=path-or-url)", "flag": "--subject-ref" },
|
|
121
|
+
{ "name": "out-dir", "type": "string", "required": false, "description": "Download images to directory", "flag": "--out-dir" },
|
|
122
|
+
{ "name": "out-prefix", "type": "string", "required": false, "description": "Filename prefix (default: image)", "flag": "--out-prefix" },
|
|
123
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"namespace": "mmx",
|
|
128
|
+
"resource": "video",
|
|
129
|
+
"action": "generate",
|
|
130
|
+
"description": "Generate a video (T2V, I2V, S2V modes)",
|
|
131
|
+
"adapter": "process",
|
|
132
|
+
"adapterConfig": {
|
|
133
|
+
"command": "mmx",
|
|
134
|
+
"baseArgs": ["video", "generate"],
|
|
135
|
+
"parseJson": true,
|
|
136
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
137
|
+
},
|
|
138
|
+
"args": [
|
|
139
|
+
{ "name": "model", "type": "string", "required": false, "description": "Model ID (default: MiniMax-Hailuo-2.3)", "flag": "--model" },
|
|
140
|
+
{ "name": "prompt", "type": "string", "required": true, "description": "Video description", "flag": "--prompt" },
|
|
141
|
+
{ "name": "first-frame", "type": "string", "required": false, "description": "First frame image (I2V mode)", "flag": "--first-frame" },
|
|
142
|
+
{ "name": "last-frame", "type": "string", "required": false, "description": "Last frame image (SEF mode, requires --first-frame)", "flag": "--last-frame" },
|
|
143
|
+
{ "name": "subject-image", "type": "string", "required": false, "description": "Subject reference image (S2V mode)", "flag": "--subject-image" },
|
|
144
|
+
{ "name": "callback-url", "type": "string", "required": false, "description": "Webhook URL for completion notification", "flag": "--callback-url" },
|
|
145
|
+
{ "name": "download", "type": "string", "required": false, "description": "Save video to file on completion", "flag": "--download" },
|
|
146
|
+
{ "name": "no-wait", "type": "boolean", "required": false, "description": "Return task ID immediately", "flag": "--no-wait" },
|
|
147
|
+
{ "name": "async", "type": "boolean", "required": false, "description": "Return task ID immediately (agent/CI mode)", "flag": "--async" },
|
|
148
|
+
{ "name": "poll-interval", "type": "integer", "required": false, "description": "Polling interval in seconds (default: 5)", "flag": "--poll-interval" },
|
|
149
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"namespace": "mmx",
|
|
154
|
+
"resource": "video",
|
|
155
|
+
"action": "task-get",
|
|
156
|
+
"description": "Query video task status",
|
|
157
|
+
"adapter": "process",
|
|
158
|
+
"adapterConfig": {
|
|
159
|
+
"command": "mmx",
|
|
160
|
+
"baseArgs": ["video", "task", "get"],
|
|
161
|
+
"parseJson": true,
|
|
162
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
163
|
+
},
|
|
164
|
+
"args": [
|
|
165
|
+
{ "name": "task-id", "type": "string", "required": true, "description": "Video generation task ID", "flag": "--task-id" },
|
|
166
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"namespace": "mmx",
|
|
171
|
+
"resource": "video",
|
|
172
|
+
"action": "download",
|
|
173
|
+
"description": "Download a completed video by file ID",
|
|
174
|
+
"adapter": "process",
|
|
175
|
+
"adapterConfig": {
|
|
176
|
+
"command": "mmx",
|
|
177
|
+
"baseArgs": ["video", "download"],
|
|
178
|
+
"parseJson": true,
|
|
179
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
180
|
+
},
|
|
181
|
+
"args": [
|
|
182
|
+
{ "name": "file-id", "type": "string", "required": true, "description": "File ID to download", "flag": "--file-id" },
|
|
183
|
+
{ "name": "out", "type": "string", "required": true, "description": "Output file path", "flag": "--out" },
|
|
184
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"namespace": "mmx",
|
|
189
|
+
"resource": "speech",
|
|
190
|
+
"action": "synthesize",
|
|
191
|
+
"description": "Text-to-speech synthesis (speech-2.8-hd / 2.6 / 02)",
|
|
192
|
+
"adapter": "process",
|
|
193
|
+
"adapterConfig": {
|
|
194
|
+
"command": "mmx",
|
|
195
|
+
"baseArgs": ["speech", "synthesize"],
|
|
196
|
+
"parseJson": false,
|
|
197
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
198
|
+
},
|
|
199
|
+
"args": [
|
|
200
|
+
{ "name": "model", "type": "string", "required": false, "description": "Model ID (default: speech-2.8-hd)", "flag": "--model" },
|
|
201
|
+
{ "name": "text", "type": "string", "required": true, "description": "Text to synthesize", "flag": "--text" },
|
|
202
|
+
{ "name": "text-file", "type": "string", "required": false, "description": "Read text from file (use - for stdin)", "flag": "--text-file" },
|
|
203
|
+
{ "name": "voice", "type": "string", "required": false, "description": "Voice ID (default: English_expressive_narrator)", "flag": "--voice" },
|
|
204
|
+
{ "name": "speed", "type": "number", "required": false, "description": "Speech speed multiplier", "flag": "--speed" },
|
|
205
|
+
{ "name": "volume", "type": "number", "required": false, "description": "Volume level", "flag": "--volume" },
|
|
206
|
+
{ "name": "pitch", "type": "number", "required": false, "description": "Pitch adjustment", "flag": "--pitch" },
|
|
207
|
+
{ "name": "format", "type": "string", "required": false, "description": "Audio format (default: mp3)", "flag": "--format" },
|
|
208
|
+
{ "name": "sample-rate", "type": "integer", "required": false, "description": "Sample rate (default: 32000)", "flag": "--sample-rate" },
|
|
209
|
+
{ "name": "bitrate", "type": "integer", "required": false, "description": "Bitrate (default: 128000)", "flag": "--bitrate" },
|
|
210
|
+
{ "name": "channels", "type": "integer", "required": false, "description": "Audio channels (default: 1)", "flag": "--channels" },
|
|
211
|
+
{ "name": "language", "type": "string", "required": false, "description": "Language boost", "flag": "--language" },
|
|
212
|
+
{ "name": "subtitles", "type": "boolean", "required": false, "description": "Include subtitle timing data", "flag": "--subtitles" },
|
|
213
|
+
{ "name": "pronunciation", "type": "string", "required": false, "description": "Custom pronunciation (format: from/to)", "flag": "--pronunciation" },
|
|
214
|
+
{ "name": "out", "type": "string", "required": false, "description": "Save audio to file", "flag": "--out" },
|
|
215
|
+
{ "name": "stream", "type": "boolean", "required": false, "description": "Stream raw audio to stdout", "flag": "--stream" },
|
|
216
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"namespace": "mmx",
|
|
221
|
+
"resource": "speech",
|
|
222
|
+
"action": "voices",
|
|
223
|
+
"description": "List available system voices",
|
|
224
|
+
"adapter": "process",
|
|
225
|
+
"adapterConfig": {
|
|
226
|
+
"command": "mmx",
|
|
227
|
+
"baseArgs": ["speech", "voices"],
|
|
228
|
+
"parseJson": true,
|
|
229
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
230
|
+
},
|
|
231
|
+
"args": [
|
|
232
|
+
{ "name": "language", "type": "string", "required": false, "description": "Filter voices by language (e.g. english, korean)", "flag": "--language" },
|
|
233
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
234
|
+
]
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"namespace": "mmx",
|
|
238
|
+
"resource": "music",
|
|
239
|
+
"action": "generate",
|
|
240
|
+
"description": "Generate a song (music-2.6 / music-2.6-free / music-2.5+ / music-2.5)",
|
|
241
|
+
"adapter": "process",
|
|
242
|
+
"adapterConfig": {
|
|
243
|
+
"command": "mmx",
|
|
244
|
+
"baseArgs": ["music", "generate"],
|
|
245
|
+
"parseJson": false,
|
|
246
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
247
|
+
},
|
|
248
|
+
"args": [
|
|
249
|
+
{ "name": "prompt", "type": "string", "required": false, "description": "Music style description", "flag": "--prompt" },
|
|
250
|
+
{ "name": "lyrics", "type": "string", "required": false, "description": "Song lyrics with structure tags", "flag": "--lyrics" },
|
|
251
|
+
{ "name": "lyrics-file", "type": "string", "required": false, "description": "Read lyrics from file", "flag": "--lyrics-file" },
|
|
252
|
+
{ "name": "lyrics-optimizer", "type": "boolean", "required": false, "description": "Auto-generate lyrics from prompt", "flag": "--lyrics-optimizer" },
|
|
253
|
+
{ "name": "instrumental", "type": "boolean", "required": false, "description": "Generate instrumental music", "flag": "--instrumental" },
|
|
254
|
+
{ "name": "vocals", "type": "string", "required": false, "description": "Vocal style description", "flag": "--vocals" },
|
|
255
|
+
{ "name": "genre", "type": "string", "required": false, "description": "Music genre", "flag": "--genre" },
|
|
256
|
+
{ "name": "mood", "type": "string", "required": false, "description": "Mood or emotion", "flag": "--mood" },
|
|
257
|
+
{ "name": "instruments", "type": "string", "required": false, "description": "Instruments to feature", "flag": "--instruments" },
|
|
258
|
+
{ "name": "tempo", "type": "string", "required": false, "description": "Tempo description (fast, slow, moderate)", "flag": "--tempo" },
|
|
259
|
+
{ "name": "bpm", "type": "integer", "required": false, "description": "Exact tempo in BPM", "flag": "--bpm" },
|
|
260
|
+
{ "name": "key", "type": "string", "required": false, "description": "Musical key (e.g. C major)", "flag": "--key" },
|
|
261
|
+
{ "name": "model", "type": "string", "required": false, "description": "Model: music-2.6, music-2.6-free, music-2.5+, music-2.5", "flag": "--model" },
|
|
262
|
+
{ "name": "output-format", "type": "string", "required": false, "description": "Return format: hex (default), url", "flag": "--output-format" },
|
|
263
|
+
{ "name": "aigc-watermark", "type": "boolean", "required": false, "description": "Embed AI-generated content watermark", "flag": "--aigc-watermark" },
|
|
264
|
+
{ "name": "format", "type": "string", "required": false, "description": "Audio format (default: mp3)", "flag": "--format" },
|
|
265
|
+
{ "name": "sample-rate", "type": "integer", "required": false, "description": "Sample rate (default: 44100)", "flag": "--sample-rate" },
|
|
266
|
+
{ "name": "bitrate", "type": "integer", "required": false, "description": "Bitrate (default: 256000)", "flag": "--bitrate" },
|
|
267
|
+
{ "name": "stream", "type": "boolean", "required": false, "description": "Stream raw audio to stdout", "flag": "--stream" },
|
|
268
|
+
{ "name": "out", "type": "string", "required": false, "description": "Save audio to file", "flag": "--out" },
|
|
269
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
270
|
+
]
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"namespace": "mmx",
|
|
274
|
+
"resource": "music",
|
|
275
|
+
"action": "cover",
|
|
276
|
+
"description": "Generate a cover version of a song (music-cover / music-cover-free)",
|
|
277
|
+
"adapter": "process",
|
|
278
|
+
"adapterConfig": {
|
|
279
|
+
"command": "mmx",
|
|
280
|
+
"baseArgs": ["music", "cover"],
|
|
281
|
+
"parseJson": false,
|
|
282
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
283
|
+
},
|
|
284
|
+
"args": [
|
|
285
|
+
{ "name": "model", "type": "string", "required": false, "description": "Model: music-cover, music-cover-free", "flag": "--model" },
|
|
286
|
+
{ "name": "prompt", "type": "string", "required": true, "description": "Target cover style description", "flag": "--prompt" },
|
|
287
|
+
{ "name": "audio", "type": "string", "required": false, "description": "URL of reference audio", "flag": "--audio" },
|
|
288
|
+
{ "name": "audio-file", "type": "string", "required": false, "description": "Local reference audio file", "flag": "--audio-file" },
|
|
289
|
+
{ "name": "lyrics", "type": "string", "required": false, "description": "Cover lyrics", "flag": "--lyrics" },
|
|
290
|
+
{ "name": "lyrics-file", "type": "string", "required": false, "description": "Read lyrics from file", "flag": "--lyrics-file" },
|
|
291
|
+
{ "name": "seed", "type": "integer", "required": false, "description": "Random seed 0-1000000 for reproducible results", "flag": "--seed" },
|
|
292
|
+
{ "name": "format", "type": "string", "required": false, "description": "Audio format: mp3, wav, pcm (default: mp3)", "flag": "--format" },
|
|
293
|
+
{ "name": "sample-rate", "type": "integer", "required": false, "description": "Sample rate (default: 44100)", "flag": "--sample-rate" },
|
|
294
|
+
{ "name": "bitrate", "type": "integer", "required": false, "description": "Bitrate (default: 256000)", "flag": "--bitrate" },
|
|
295
|
+
{ "name": "channel", "type": "integer", "required": false, "description": "Channels: 1 (mono) or 2 (stereo)", "flag": "--channel" },
|
|
296
|
+
{ "name": "stream", "type": "boolean", "required": false, "description": "Stream raw audio to stdout", "flag": "--stream" },
|
|
297
|
+
{ "name": "out", "type": "string", "required": false, "description": "Save audio to file", "flag": "--out" },
|
|
298
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"namespace": "mmx",
|
|
303
|
+
"resource": "search",
|
|
304
|
+
"action": "query",
|
|
305
|
+
"description": "Search the web via MiniMax",
|
|
306
|
+
"adapter": "process",
|
|
307
|
+
"adapterConfig": {
|
|
308
|
+
"command": "mmx",
|
|
309
|
+
"baseArgs": ["search", "query"],
|
|
310
|
+
"positionalArgs": ["q"],
|
|
311
|
+
"parseJson": true,
|
|
312
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
313
|
+
},
|
|
314
|
+
"args": [
|
|
315
|
+
{ "name": "q", "type": "string", "required": true, "description": "Search query string", "flag": "--q" },
|
|
316
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
317
|
+
]
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"namespace": "mmx",
|
|
321
|
+
"resource": "vision",
|
|
322
|
+
"action": "describe",
|
|
323
|
+
"description": "Describe an image using MiniMax VLM",
|
|
324
|
+
"adapter": "process",
|
|
325
|
+
"adapterConfig": {
|
|
326
|
+
"command": "mmx",
|
|
327
|
+
"baseArgs": ["vision", "describe"],
|
|
328
|
+
"parseJson": true,
|
|
329
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
330
|
+
},
|
|
331
|
+
"args": [
|
|
332
|
+
{ "name": "image", "type": "string", "required": false, "description": "Local image path or URL", "flag": "--image" },
|
|
333
|
+
{ "name": "file-id", "type": "string", "required": false, "description": "Pre-uploaded file ID", "flag": "--file-id" },
|
|
334
|
+
{ "name": "prompt", "type": "string", "required": false, "description": "Question about the image (default: Describe the image.)", "flag": "--prompt" },
|
|
335
|
+
{ "name": "output", "type": "string", "required": false, "description": "Output format: text, json", "flag": "--output" }
|
|
336
|
+
]
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"namespace": "mmx",
|
|
340
|
+
"resource": "quota",
|
|
341
|
+
"action": "show",
|
|
342
|
+
"description": "Show usage quotas and remaining credits",
|
|
343
|
+
"adapter": "process",
|
|
344
|
+
"adapterConfig": {
|
|
345
|
+
"command": "mmx",
|
|
346
|
+
"baseArgs": ["quota"],
|
|
347
|
+
"parseJson": true,
|
|
348
|
+
"missingDependencyHelp": "Run: mmx auth login --api-key sk-xxxxx"
|
|
349
|
+
},
|
|
350
|
+
"args": []
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"namespace": "mmx",
|
|
354
|
+
"resource": "config",
|
|
355
|
+
"action": "show",
|
|
356
|
+
"description": "Show current CLI configuration",
|
|
357
|
+
"adapter": "process",
|
|
358
|
+
"adapterConfig": {
|
|
359
|
+
"command": "mmx",
|
|
360
|
+
"baseArgs": ["config", "show"],
|
|
361
|
+
"parseJson": true,
|
|
362
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
363
|
+
},
|
|
364
|
+
"args": []
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"namespace": "mmx",
|
|
368
|
+
"resource": "config",
|
|
369
|
+
"action": "set",
|
|
370
|
+
"description": "Set a configuration value",
|
|
371
|
+
"adapter": "process",
|
|
372
|
+
"adapterConfig": {
|
|
373
|
+
"command": "mmx",
|
|
374
|
+
"baseArgs": ["config", "set"],
|
|
375
|
+
"parseJson": false,
|
|
376
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
377
|
+
},
|
|
378
|
+
"args": [
|
|
379
|
+
{ "name": "key", "type": "string", "required": true, "description": "Config key to set (e.g. region)", "flag": "--key" },
|
|
380
|
+
{ "name": "value", "type": "string", "required": true, "description": "Value to set", "flag": "--value" }
|
|
381
|
+
]
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"namespace": "mmx",
|
|
385
|
+
"resource": "config",
|
|
386
|
+
"action": "export-schema",
|
|
387
|
+
"description": "Export configuration schema as JSON",
|
|
388
|
+
"adapter": "process",
|
|
389
|
+
"adapterConfig": {
|
|
390
|
+
"command": "mmx",
|
|
391
|
+
"baseArgs": ["config", "export-schema"],
|
|
392
|
+
"parseJson": true,
|
|
393
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
394
|
+
},
|
|
395
|
+
"args": []
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"namespace": "mmx",
|
|
399
|
+
"resource": "_",
|
|
400
|
+
"action": "_",
|
|
401
|
+
"description": "Passthrough to execute any mmx CLI command directly",
|
|
402
|
+
"adapter": "process",
|
|
403
|
+
"adapterConfig": {
|
|
404
|
+
"command": "mmx",
|
|
405
|
+
"baseArgs": [],
|
|
406
|
+
"passthrough": true,
|
|
407
|
+
"parseJson": false,
|
|
408
|
+
"missingDependencyHelp": "Run: npm install -g mmx-cli"
|
|
409
|
+
},
|
|
410
|
+
"args": []
|
|
411
|
+
}
|
|
412
|
+
]
|
|
413
|
+
}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# mmx Usage Skill
|
|
2
|
+
|
|
3
|
+
Use the mmx plugin to generate text, images, video, speech, music, and search via the MiniMax AI Platform CLI.
|
|
4
|
+
|
|
5
|
+
## 1) Install and Authenticate
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Check if mmx is installed
|
|
9
|
+
mmx --version
|
|
10
|
+
|
|
11
|
+
# Install globally if needed
|
|
12
|
+
npm install -g mmx-cli
|
|
13
|
+
|
|
14
|
+
# Authenticate with API key
|
|
15
|
+
mmx auth login --api-key sk-xxxxx
|
|
16
|
+
|
|
17
|
+
# Or use environment variable
|
|
18
|
+
export MINIMAX_API_KEY=sk-xxxxx
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Get API key: https://platform.minimax.io/subscribe/token-plan
|
|
22
|
+
|
|
23
|
+
## 2) Validate Setup
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Check authentication status
|
|
27
|
+
sc mmx auth status
|
|
28
|
+
|
|
29
|
+
# Show remaining quota
|
|
30
|
+
sc mmx quota show
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 3) Text / Chat
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Simple chat
|
|
37
|
+
sc mmx text chat --message "What is MiniMax?"
|
|
38
|
+
|
|
39
|
+
# With system prompt and streaming
|
|
40
|
+
sc mmx text chat --system "You are a coding assistant" --message "Write fizzbuzz in Go" --stream
|
|
41
|
+
|
|
42
|
+
# Multi-turn conversation
|
|
43
|
+
sc mmx text chat --message "user:Hi" --message "assistant:Hey!" --message "How are you?"
|
|
44
|
+
|
|
45
|
+
# JSON output for parsing
|
|
46
|
+
sc mmx text chat --message "Hello" --output json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 4) Image Generation
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Simple image
|
|
53
|
+
sc mmx image generate --prompt "A cat in a spacesuit on Mars"
|
|
54
|
+
|
|
55
|
+
# Multiple images with aspect ratio
|
|
56
|
+
sc mmx image generate --prompt "Mountain landscape" --n 3 --aspect-ratio 16:9
|
|
57
|
+
|
|
58
|
+
# Custom dimensions (512-2048, multiple of 8)
|
|
59
|
+
sc mmx image generate --prompt "Wide landscape" --width 1920 --height 1080
|
|
60
|
+
|
|
61
|
+
# With prompt optimizer and watermark
|
|
62
|
+
sc mmx image generate --prompt "sunset" --prompt-optimizer --aigc-watermark
|
|
63
|
+
|
|
64
|
+
# Reproducible output with seed
|
|
65
|
+
sc mmx image generate --prompt "A castle" --seed 42
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 5) Video Generation
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Simple video (async - returns immediately)
|
|
72
|
+
sc mmx video generate --prompt "Ocean waves at sunset" --async --quiet
|
|
73
|
+
|
|
74
|
+
# Wait for completion and download
|
|
75
|
+
sc mmx video generate --prompt "A robot painting" --download robot.mp4
|
|
76
|
+
|
|
77
|
+
# I2V: First frame image-to-video
|
|
78
|
+
sc mmx video generate --prompt "Walk forward" --first-frame start.jpg
|
|
79
|
+
|
|
80
|
+
# S2V: Subject reference for character consistency
|
|
81
|
+
sc mmx video generate --prompt "A detective walking" --subject-image character.jpg
|
|
82
|
+
|
|
83
|
+
# SEF: Start-end frame interpolation (requires Hailuo-02)
|
|
84
|
+
sc mmx video generate --prompt "Walk forward" --first-frame start.jpg --last-frame end.jpg
|
|
85
|
+
|
|
86
|
+
# Check task status
|
|
87
|
+
sc mmx video task-get --task-id <task-id>
|
|
88
|
+
|
|
89
|
+
# Download completed video
|
|
90
|
+
sc mmx video download --file-id <file-id> --out video.mp4
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## 6) Speech Synthesis
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Simple TTS
|
|
97
|
+
sc mmx speech synthesize --text "Hello, world!" --out hello.mp3
|
|
98
|
+
|
|
99
|
+
# With voice and speed control
|
|
100
|
+
sc mmx speech synthesize --text "Hi" --voice English_magnetic_voiced_man --speed 1.2
|
|
101
|
+
|
|
102
|
+
# List available voices
|
|
103
|
+
sc mmx speech voices
|
|
104
|
+
|
|
105
|
+
# Filter by language
|
|
106
|
+
sc mmx speech voices --language english
|
|
107
|
+
|
|
108
|
+
# Streaming audio (pipe to media player)
|
|
109
|
+
sc mmx speech synthesize --text "Stream me" --stream | mpv --no-terminal -
|
|
110
|
+
|
|
111
|
+
# From stdin
|
|
112
|
+
echo "Breaking news" | sc mmx speech synthesize --text-file - --out news.mp3
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 7) Music Generation
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Generate with lyrics
|
|
119
|
+
sc mmx music generate --prompt "Upbeat pop" --lyrics "[verse] La da dee, sunny day" --out song.mp3
|
|
120
|
+
|
|
121
|
+
# Auto-generate lyrics from prompt
|
|
122
|
+
sc mmx music generate --prompt "Indie folk, melancholic, rainy night" --lyrics-optimizer --out song.mp3
|
|
123
|
+
|
|
124
|
+
# Instrumental (no vocals)
|
|
125
|
+
sc mmx music generate --prompt "Cinematic orchestral" --instrumental --out bgm.mp3
|
|
126
|
+
|
|
127
|
+
# Detailed music parameters
|
|
128
|
+
sc mmx music generate \
|
|
129
|
+
--prompt "Warm morning folk" \
|
|
130
|
+
--vocals "male and female duet, harmonies in chorus" \
|
|
131
|
+
--instruments "acoustic guitar, piano" \
|
|
132
|
+
--bpm 95 \
|
|
133
|
+
--lyrics-file song.txt \
|
|
134
|
+
--out duet.mp3
|
|
135
|
+
|
|
136
|
+
# Cover generation from reference audio
|
|
137
|
+
sc mmx music cover --prompt "Jazz, piano, warm female vocal" --audio https://example.com/song.mp3 --out cover.mp3
|
|
138
|
+
|
|
139
|
+
# Local audio file
|
|
140
|
+
sc mmx music cover --prompt "Indie folk" --audio-file original.mp3 --out cover.mp3
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## 8) Vision / Image Understanding
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# Describe local image
|
|
147
|
+
sc mmx vision describe --image photo.jpg
|
|
148
|
+
|
|
149
|
+
# From URL
|
|
150
|
+
sc mmx vision describe --image https://example.com/photo.jpg --prompt "What breed is this dog?"
|
|
151
|
+
|
|
152
|
+
# With specific question
|
|
153
|
+
sc mmx vision describe --image photo.jpg --prompt "Extract all text from this image"
|
|
154
|
+
|
|
155
|
+
# Using pre-uploaded file ID
|
|
156
|
+
sc mmx vision describe --file-id file-123456789 --prompt "What is in this image?"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 9) Web Search
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Simple search
|
|
163
|
+
sc mmx search query --q "MiniMax AI latest news"
|
|
164
|
+
|
|
165
|
+
# JSON output for parsing
|
|
166
|
+
sc mmx search query --q "latest AI developments" --output json
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 10) Configuration
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Show current config
|
|
173
|
+
sc mmx config show
|
|
174
|
+
|
|
175
|
+
# Set region (global or cn)
|
|
176
|
+
sc mmx config set --key region --value cn
|
|
177
|
+
|
|
178
|
+
# Export config schema
|
|
179
|
+
sc mmx config export-schema
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## 11) Passthrough Mode
|
|
183
|
+
|
|
184
|
+
Use the passthrough command for options not explicitly mapped:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
sc mmx _ _ --help
|
|
188
|
+
sc mmx _ _ text chat --message "Hello" --dry-run
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Common Workflows
|
|
192
|
+
|
|
193
|
+
### Agent-CI Mode (non-interactive)
|
|
194
|
+
```bash
|
|
195
|
+
# Set env var and run non-interactively
|
|
196
|
+
export MINIMAX_API_KEY=sk-xxxxx
|
|
197
|
+
sc mmx text chat --message "Hello" --output json --non-interactive
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Streaming Responses
|
|
201
|
+
```bash
|
|
202
|
+
# For real-time output in terminal
|
|
203
|
+
sc mmx text chat --message "Tell me a story" --stream
|
|
204
|
+
|
|
205
|
+
# Stream audio
|
|
206
|
+
sc mmx speech synthesize --text "Hello" --stream | mpv -
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Error Handling
|
|
210
|
+
|
|
211
|
+
mmx uses standard exit codes:
|
|
212
|
+
- 0: Success
|
|
213
|
+
- 1: General error
|
|
214
|
+
- 130: Interrupted (Ctrl+C)
|
|
215
|
+
|
|
216
|
+
For authentication issues, re-authenticate:
|
|
217
|
+
```bash
|
|
218
|
+
mmx auth logout
|
|
219
|
+
mmx auth login --api-key sk-xxxxx
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Dual Region Support
|
|
223
|
+
|
|
224
|
+
MiniMax supports two regions:
|
|
225
|
+
- Global: `--region global` (default) → api.minimax.io
|
|
226
|
+
- CN: `--region cn` → api.minimaxi.com
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# Use CN region
|
|
230
|
+
sc mmx config set --key region --value cn
|
|
231
|
+
|
|
232
|
+
# Or via CLI flag
|
|
233
|
+
sc mmx text chat --message "Hello" --region cn
|
|
234
|
+
```
|