Skip to content

Commit d28fcdc

Browse files
authored
Merge pull request #239 from Qu-Ming-1/fix/mcp-v2-music-sunset
chore: retire Music CLI and SDK support
2 parents 24875e0 + ee1e6a0 commit d28fcdc

34 files changed

Lines changed: 53 additions & 1923 deletions

ERRORS.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -125,20 +125,6 @@ All errors fall under [Network Errors](#networkerrors).
125125

126126
---
127127

128-
## Music Commands
129-
130-
### `mmx music generate`
131-
132-
| Scenario | Error Message |
133-
|---|---|
134-
| Neither `--prompt` nor `--lyrics` provided | `At least one of --prompt or --lyrics is required.` |
135-
| `--lyrics-file` not found | `File not found: ${flags.lyricsFile}` |
136-
| `--lyrics-file` unreadable | `Cannot read file: ${e.message}` |
137-
| `--out` path no write permission | `Permission denied: cannot write to "${outPath}".` |
138-
| Disk full | `Disk full — cannot write audio file.` |
139-
140-
---
141-
142128
## Vision Commands
143129

144130
### `mmx vision describe`

README.md

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<img src="https://file.cdn.minimax.io/public/MMX.png" alt="MiniMax" width="100%" />
1+
<img src="https://file.cdn.minimax.io/public/MMX-capabilities.png" alt="MiniMax" width="100%" />
22

33
<p align="center">
44
<strong>The official CLI for the MiniMax AI Platform</strong><br>
5-
Built for AI agents. Generate text, images, video, speech, and music — from any agent or terminal.
5+
Built for AI agents. Generate text, images, video, and speech — from any agent or terminal.
66
</p>
77

88
<p align="center">
@@ -21,12 +21,11 @@
2121
- **Image** — Text-to-image with aspect ratio and batch controls
2222
- **Video** — Async video generation with progress tracking
2323
- **Speech** — TTS with 30+ voices, speed control, streaming playback
24-
- **Music** — Text-to-music with lyrics, instrumental mode, auto lyrics, and cover generation from reference audio
2524
- **Vision** — Image understanding and description
2625
- **Search** — Web search powered by MiniMax
2726
- **Dual Region** — Seamless Global (`api.minimax.io`) and CN (`api.minimaxi.com`) support
2827

29-
<img src="https://file.cdn.minimax.io/public/MMX-CLI.png" alt="MiniMax" width="100%" />
28+
<img src="https://file.cdn.minimax.io/public/MMX-CLI-help.png" alt="MiniMax" width="100%" />
3029

3130
## Install
3231

@@ -56,7 +55,6 @@ mmx text chat --message "What is MiniMax?"
5655
mmx image "A cat in a spacesuit"
5756
mmx speech synthesize --text "Hello!" --out hello.mp3
5857
mmx video generate --prompt "Ocean waves at sunset"
59-
mmx music generate --prompt "Upbeat pop" --lyrics "[verse] La da dee, sunny day"
6058
mmx search "MiniMax AI latest news"
6159
mmx vision photo.jpg
6260
mmx quota
@@ -113,20 +111,6 @@ echo "Breaking news" | mmx speech synthesize --text-file - --out news.mp3
113111
mmx speech voices
114112
```
115113

116-
### `mmx music`
117-
118-
```bash
119-
# Generate with lyrics
120-
mmx music generate --prompt "Upbeat pop" --lyrics "[verse] La da dee, sunny day" --out song.mp3
121-
# Auto-generate lyrics from prompt
122-
mmx music generate --prompt "Indie folk, melancholic, rainy night" --lyrics-optimizer --out song.mp3
123-
# Instrumental (no vocals)
124-
mmx music generate --prompt "Cinematic orchestral" --instrumental --out bgm.mp3
125-
# Cover — generate a cover version from a reference audio file
126-
mmx music cover --prompt "Jazz, piano, warm female vocal" --audio-file original.mp3 --out cover.mp3
127-
mmx music cover --prompt "Indie folk" --audio https://example.com/song.mp3 --out cover.mp3
128-
```
129-
130114
### `mmx vision`
131115

132116
```bash

README_CN.md

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<img src="https://file.cdn.minimax.io/public/MMX.png" alt="MiniMax" width="100%" />
1+
<img src="https://file.cdn.minimax.io/public/MMX-capabilities.png" alt="MiniMax" width="100%" />
22

33
<p align="center">
44
<strong>MiniMax AI 开放平台官方命令行工具</strong><br>
5-
专为 AI Agent 打造。在任意 Agent 或终端中生成文字、图像、视频、语音和音乐
5+
专为 AI Agent 打造。在任意 Agent 或终端中生成文字、图像、视频和语音
66
</p>
77

88
<p align="center">
@@ -21,12 +21,11 @@
2121
- **图像生成** — 文生图,支持比例和批量控制
2222
- **视频生成** — 异步生成,进度追踪
2323
- **语音合成** — 30+ 音色、语速调节、流式播放
24-
- **音乐生成** — 文生音乐,支持自定义歌词、纯音乐、自动生词,以及基于参考音频的 Cover 生成
2524
- **图像理解** — 图片描述与识别
2625
- **网络搜索** — MiniMax 搜索引擎
2726
- **双区域** — 国际版(`api.minimax.io`)和国内版(`api.minimaxi.com`)自动切换
2827

29-
<img src="https://file.cdn.minimax.io/public/MMX-CLI.png" alt="MiniMax" width="100%" />
28+
<img src="https://file.cdn.minimax.io/public/MMX-CLI-help.png" alt="MiniMax" width="100%" />
3029

3130
## 安装
3231

@@ -56,7 +55,6 @@ mmx text chat --message "你好,MiniMax!"
5655
mmx image "一只穿宇航服的猫"
5756
mmx speech synthesize --text "你好!" --out hello.mp3
5857
mmx video generate --prompt "海浪拍打礁石"
59-
mmx music generate --prompt "欢快的流行乐" --lyrics "[主歌] 啦啦啦,阳光照"
6058
mmx search "MiniMax AI 最新动态"
6159
mmx vision photo.jpg
6260
mmx quota
@@ -113,20 +111,6 @@ echo "头条新闻" | mmx speech synthesize --text-file - --out news.mp3
113111
mmx speech voices
114112
```
115113

116-
### `mmx music`
117-
118-
```bash
119-
# 带歌词生成
120-
mmx music generate --prompt "欢快的流行乐" --lyrics "[主歌] 啦啦啦,阳光照" --out song.mp3
121-
# 自动生成歌词
122-
mmx music generate --prompt "忧郁的独立民谣,雨夜" --lyrics-optimizer --out song.mp3
123-
# 纯音乐(无人声)
124-
mmx music generate --prompt "史诗管弦乐" --instrumental --out bgm.mp3
125-
# Cover — 基于参考音频生成翻唱版本
126-
mmx music cover --prompt "爵士钢琴,慵懒女声" --audio-file original.mp3 --out cover.mp3
127-
mmx music cover --prompt "民谣吉他" --audio https://example.com/song.mp3 --out cover.mp3
128-
```
129-
130114
### `mmx vision`
131115

132116
```bash

SDK.md

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -122,67 +122,6 @@ const voices = await sdk.speech.voices();
122122
const englishVoices = await sdk.speech.voices('en');
123123
```
124124

125-
### Music
126-
127-
```typescript
128-
const music = await sdk.music.generate({
129-
model: 'music-3.0',
130-
prompt: 'Upbeat pop song',
131-
lyrics: '[verse] La da dee, sunny day',
132-
output_format: 'hex',
133-
});
134-
135-
// Instrumental
136-
const instrumental = await sdk.music.generate({
137-
prompt: 'Cinematic orchestral',
138-
is_instrumental: true,
139-
});
140-
141-
// Auto-generate lyrics
142-
const autoLyrics = await sdk.music.generate({
143-
prompt: 'Indie folk, melancholic, rainy night',
144-
lyrics_optimizer: true,
145-
});
146-
147-
// Streaming
148-
const stream = await sdk.music.generate({
149-
prompt: 'Upbeat pop',
150-
lyrics: '[verse] Hello world',
151-
stream: true,
152-
});
153-
154-
for await (const chunk of stream) {
155-
// chunk contains decoded audio bytes
156-
}
157-
158-
// One-step cover — lyrics are extracted from the reference audio when omitted
159-
const cover = await sdk.music.generate({
160-
model: 'music-cover-free',
161-
prompt: 'Jazz piano trio with a warm intimate vocal',
162-
audio_url: 'https://example.com/reference.mp3',
163-
output_format: 'url',
164-
});
165-
166-
// Two-step cover — use a feature ID returned by the cover preprocess API
167-
const rewrittenCover = await sdk.music.generate({
168-
model: 'music-cover',
169-
prompt: 'Acoustic folk with gentle strings and soft vocals',
170-
cover_feature_id: 'feature-id-from-preprocess',
171-
lyrics: '[Verse]\nThese are the rewritten lyrics for the cover',
172-
});
173-
174-
// Structured prompt
175-
const structured = await sdk.music.generate({
176-
prompt: 'A beautiful song',
177-
vocals: 'warm male baritone',
178-
genre: 'jazz',
179-
mood: 'relaxing',
180-
instruments: 'piano, saxophone',
181-
bpm: 120,
182-
key: 'C major',
183-
});
184-
```
185-
186125
### Vision
187126

188127
```typescript

docs/cli-design.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ mmx
2828
│ ├── task
2929
│ │ └── get Query video task status
3030
│ └── download Download a completed video by file ID
31-
├── music
32-
│ └── generate Generate a song (music-3.0)
3331
├── quota
3432
│ └── show Display Token Plan usage and remaining quotas
3533
└── config

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mmx-cli",
3-
"version": "1.0.19",
3+
"version": "1.0.20",
44
"description": "CLI for the MiniMax AI Platform",
55
"type": "module",
66
"repository": {

skill/SKILL.md

Lines changed: 2 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
name: mmx-cli
3-
description: Use mmx to generate text, images, video, speech, and music via the MiniMax AI platform. Use when the user wants to create media content, chat with MiniMax models, perform web search, or manage MiniMax API resources from the terminal.
3+
description: Use mmx to generate text, images, video, and speech via the MiniMax AI platform. Use when the user wants to create media content, chat with MiniMax models, perform web search, or manage MiniMax API resources from the terminal.
44
---
55

66
# MiniMax CLI — Agent Skill Guide
77

8-
Use `mmx` to generate text, images, video, speech, music, and perform web search via the MiniMax AI platform.
8+
Use `mmx` to generate text, images, video, speech, and perform web search via the MiniMax AI platform.
99

1010
## Prerequisites
1111

@@ -205,105 +205,6 @@ echo "Breaking news." | mmx speech synthesize --text-file - --out news.mp3
205205

206206
---
207207

208-
### music generate
209-
210-
Generate music. Responds well to rich, structured descriptions.
211-
212-
**Model:** `music-3.0` — default model.
213-
214-
```bash
215-
mmx music generate --prompt <text> [--lyrics <text>] [flags]
216-
```
217-
218-
| Flag | Type | Description |
219-
|---|---|---|
220-
| `--prompt <text>` | string | Music style description (can be detailed) |
221-
| `--lyrics <text>` | string | Song lyrics with structure tags. Required unless `--instrumental` or `--lyrics-optimizer` is used. |
222-
| `--lyrics-file <path>` | string | Read lyrics from file. Use `-` for stdin |
223-
| `--lyrics-optimizer` | boolean | Auto-generate lyrics from prompt. Cannot be used with `--lyrics` or `--instrumental`. |
224-
| `--instrumental` | boolean | Generate instrumental music (no vocals). Cannot be used with `--lyrics`. |
225-
| `--vocals <text>` | string | Vocal style, e.g. `"warm male baritone"`, `"bright female soprano"`, `"duet with harmonies"` |
226-
| `--genre <text>` | string | Music genre, e.g. folk, pop, jazz |
227-
| `--mood <text>` | string | Mood or emotion, e.g. warm, melancholic, uplifting |
228-
| `--instruments <text>` | string | Instruments to feature, e.g. `"acoustic guitar, piano"` |
229-
| `--tempo <text>` | string | Tempo description, e.g. fast, slow, moderate |
230-
| `--bpm <number>` | number | Exact tempo in beats per minute |
231-
| `--key <text>` | string | Musical key, e.g. C major, A minor, G sharp |
232-
| `--avoid <text>` | string | Elements to avoid in the generated music |
233-
| `--use-case <text>` | string | Use case context, e.g. `"background music for video"`, `"theme song"` |
234-
| `--structure <text>` | string | Song structure, e.g. `"verse-chorus-verse-bridge-chorus"` |
235-
| `--references <text>` | string | Reference tracks or artists, e.g. `"similar to Ed Sheeran"` |
236-
| `--extra <text>` | string | Additional fine-grained requirements |
237-
| `--aigc-watermark` | boolean | Embed AI-generated content watermark |
238-
| `--format <fmt>` | string | Audio format (default: `mp3`) |
239-
| `--sample-rate <hz>` | number | Sample rate (default: 44100) |
240-
| `--bitrate <bps>` | number | Bitrate (default: 256000) |
241-
| `--out <path>` | string | Save audio to file |
242-
| `--stream` | boolean | Stream raw audio to stdout |
243-
244-
At least one of `--prompt` or `--lyrics` is required.
245-
246-
```bash
247-
# With lyrics
248-
mmx music generate --prompt "Upbeat pop" --lyrics "La la la..." --out song.mp3 --quiet
249-
250-
# Auto-generate lyrics from prompt
251-
mmx music generate --prompt "Upbeat pop about summer" --lyrics-optimizer --out summer.mp3 --quiet
252-
253-
# Instrumental
254-
mmx music generate --prompt "Cinematic orchestral, building tension" --instrumental --out bgm.mp3 --quiet
255-
256-
# Detailed prompt with vocal characteristics
257-
mmx music generate --prompt "Warm morning folk" \
258-
--vocals "male and female duet, harmonies in chorus" \
259-
--instruments "acoustic guitar, piano" \
260-
--bpm 95 \
261-
--lyrics-file song.txt \
262-
--out duet.mp3
263-
```
264-
265-
---
266-
267-
### music cover
268-
269-
Generate a cover version of a song based on reference audio.
270-
271-
**Model:** `music-cover-free` — unlimited for API key users, RPM = 3.
272-
273-
```bash
274-
mmx music cover --prompt <text> (--audio <url> | --audio-file <path>) [flags]
275-
```
276-
277-
| Flag | Type | Description |
278-
|---|---|---|
279-
| `--prompt <text>` | string, **required** | Target cover style, e.g. `"Indie folk, acoustic guitar, warm male vocal"` |
280-
| `--audio <url>` | string | URL of reference audio (mp3, wav, flac, etc. — 6s to 6min, max 50MB) |
281-
| `--audio-file <path>` | string | Local reference audio file (auto base64-encoded) |
282-
| `--lyrics <text>` | string | Cover lyrics. If omitted, extracted from reference audio via ASR. |
283-
| `--lyrics-file <path>` | string | Read lyrics from file. Use `-` for stdin |
284-
| `--seed <number>` | number | Random seed 0–1000000 for reproducible results |
285-
| `--format <fmt>` | string | Audio format: `mp3`, `wav`, `pcm` (default: `mp3`) |
286-
| `--sample-rate <hz>` | number | Sample rate (default: 44100) |
287-
| `--bitrate <bps>` | number | Bitrate (default: 256000) |
288-
| `--channel <n>` | number | Channels: `1` (mono) or `2` (stereo, default) |
289-
| `--out <path>` | string | Save audio to file |
290-
| `--stream` | boolean | Stream raw audio to stdout |
291-
292-
```bash
293-
# Cover from URL
294-
mmx music cover --prompt "Indie folk, acoustic guitar, warm male vocal" \
295-
--audio https://filecdn.minimax.chat/public/d20eda57-2e36-45bf-9e12-82d9f2e69a86.mp3 --out cover.mp3 --quiet
296-
297-
# Cover from local file with custom lyrics
298-
mmx music cover --prompt "Jazz, piano, slow" \
299-
--audio-file original.mp3 --lyrics-file lyrics.txt --out jazz_cover.mp3 --quiet
300-
301-
# Reproducible result with seed
302-
mmx music cover --prompt "Pop, upbeat" --audio https://filecdn.minimax.chat/public/d20eda57-2e36-45bf-9e12-82d9f2e69a86.mp3 --seed 42 --out cover.mp3
303-
```
304-
305-
---
306-
307208
### vision describe
308209

309210
Image understanding via VLM. Provide either `--image` or `--file-id`, not both.
@@ -428,13 +329,11 @@ Set per-modality defaults so you don't need `--model` every time:
428329
mmx config set --key default-text-model --value MiniMax-M3
429330
mmx config set --key default-speech-model --value speech-2.8-hd
430331
mmx config set --key default-video-model --value MiniMax-Hailuo-2.3
431-
mmx config set --key default-music-model --value music-3.0
432332

433333
# Use without --model
434334
mmx text chat --message "Hello"
435335
mmx speech synthesize --text "Hello" --out hello.mp3
436336
mmx video generate --prompt "Ocean waves"
437-
mmx music generate --prompt "Upbeat pop" --instrumental
438337

439338
# --model still overrides per-call
440339
mmx text chat --model MiniMax-M3 --message "Hello"

src/client/endpoints.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,6 @@ export function fileRetrieveEndpoint(baseUrl: string, fileId: string): string {
3434
return `${baseUrl}/v1/files/retrieve?file_id=${fileId}`;
3535
}
3636

37-
export function musicEndpoint(baseUrl: string): string {
38-
return `${baseUrl}/v1/music_generation`;
39-
}
40-
41-
export function musicCoverPreprocessEndpoint(baseUrl: string): string {
42-
return `${baseUrl}/v1/music_cover_preprocess`;
43-
}
44-
4537
export function searchEndpoint(baseUrl: string): string {
4638
return `${baseUrl}/v1/coding_plan/search`;
4739
}

0 commit comments

Comments
 (0)