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.
Files changed (75) hide show
  1. package/.agents/skills/humanenv-usage/SKILL.md +19 -0
  2. package/AGENTS.md +62 -0
  3. package/CONTRIBUTING.md +6 -2
  4. package/cli/plugin-install-guidance.js +25 -11
  5. package/cli/plugins-registry.js +25 -6
  6. package/cli/skills-catalog.js +85 -10
  7. package/coverage/clover.xml +1073 -965
  8. package/coverage/lcov-report/cli/adapter-schema.js.html +32 -32
  9. package/coverage/lcov-report/cli/adapters/builtin.js.html +1 -1
  10. package/coverage/lcov-report/cli/adapters/http.js.html +1 -1
  11. package/coverage/lcov-report/cli/adapters/index.html +1 -1
  12. package/coverage/lcov-report/cli/adapters/mcp.js.html +1 -1
  13. package/coverage/lcov-report/cli/adapters/openapi.js.html +1 -1
  14. package/coverage/lcov-report/cli/adapters/process.js.html +1 -1
  15. package/coverage/lcov-report/cli/adapters/shell.js.html +1 -1
  16. package/coverage/lcov-report/cli/ask.js.html +1 -1
  17. package/coverage/lcov-report/cli/config.js.html +109 -109
  18. package/coverage/lcov-report/cli/discover.js.html +1 -1
  19. package/coverage/lcov-report/cli/executor.js.html +1 -1
  20. package/coverage/lcov-report/cli/help-json.js.html +1 -1
  21. package/coverage/lcov-report/cli/index.html +92 -92
  22. package/coverage/lcov-report/cli/mcp-diagnostics.js.html +1 -1
  23. package/coverage/lcov-report/cli/mcp-discovery.js.html +1 -1
  24. package/coverage/lcov-report/cli/mcp-local.js.html +1 -1
  25. package/coverage/lcov-report/cli/mcp-stdio-jsonrpc.js.html +1 -1
  26. package/coverage/lcov-report/cli/namespace-passthrough.js.html +1 -1
  27. package/coverage/lcov-report/cli/plan-runtime.js.html +1 -1
  28. package/coverage/lcov-report/cli/planner.js.html +1 -1
  29. package/coverage/lcov-report/cli/plugin-install-guidance.js.html +919 -877
  30. package/coverage/lcov-report/cli/plugins-command.js.html +452 -452
  31. package/coverage/lcov-report/cli/plugins-learn.js.html +60 -60
  32. package/coverage/lcov-report/cli/plugins-manager.js.html +133 -133
  33. package/coverage/lcov-report/cli/plugins-registry.js.html +105 -48
  34. package/coverage/lcov-report/cli/plugins-store.js.html +106 -106
  35. package/coverage/lcov-report/cli/skills-catalog.js.html +366 -141
  36. package/coverage/lcov-report/cli/skills-mcp.js.html +1 -1
  37. package/coverage/lcov-report/cli/skills.js.html +1 -1
  38. package/coverage/lcov-report/index.html +19 -19
  39. package/coverage/lcov-report/server/app.js.html +1 -1
  40. package/coverage/lcov-report/server/index.html +1 -1
  41. package/coverage/lcov-report/server/routes/ask.js.html +1 -1
  42. package/coverage/lcov-report/server/routes/commands.js.html +1 -1
  43. package/coverage/lcov-report/server/routes/config.js.html +1 -1
  44. package/coverage/lcov-report/server/routes/index.html +1 -1
  45. package/coverage/lcov-report/server/routes/jobs.js.html +1 -1
  46. package/coverage/lcov-report/server/routes/mcp.js.html +1 -1
  47. package/coverage/lcov-report/server/routes/plans.js.html +1 -1
  48. package/coverage/lcov-report/server/routes/plugins.js.html +1 -1
  49. package/coverage/lcov-report/server/routes/specs.js.html +1 -1
  50. package/coverage/lcov-report/server/services/configService.js.html +1 -1
  51. package/coverage/lcov-report/server/services/index.html +1 -1
  52. package/coverage/lcov-report/server/services/pluginsService.js.html +1 -1
  53. package/coverage/lcov-report/server/storage/adapter.js.html +1 -1
  54. package/coverage/lcov-report/server/storage/file.js.html +1 -1
  55. package/coverage/lcov-report/server/storage/index.html +1 -1
  56. package/coverage/lcov-report/server/storage/mongo.js.html +1 -1
  57. package/coverage/lcov.info +1423 -1120
  58. package/package.json +1 -1
  59. package/plugins/beads/install-guidance.json +10 -0
  60. package/plugins/beads/meta.json +5 -0
  61. package/plugins/codedb/meta.json +5 -0
  62. package/plugins/codedb/plugin.json +169 -0
  63. package/plugins/codedb/skills/quickstart/SKILL.md +65 -0
  64. package/plugins/humanenv/.agents/skills/humanenv-sdk-python-usage/SKILL.md +37 -0
  65. package/plugins/humanenv/.agents/skills/humanenv-usage/SKILL.md +32 -0
  66. package/plugins/humanenv/plugin.json +65 -0
  67. package/plugins/humanenv/skills/quickstart/SKILL.md +95 -0
  68. package/plugins/mmx/install-guidance.json +10 -0
  69. package/plugins/mmx/meta.json +5 -0
  70. package/plugins/mmx/plugin.json +413 -0
  71. package/plugins/mmx/skills/quickstart/SKILL.md +234 -0
  72. package/plugins/plugins.json +21 -9
  73. package/plugins/rtk/README.md +63 -0
  74. package/plugins/rtk/plugin.json +79 -0
  75. 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
+ ```