minimax-multimodal-toolkit
Skill4 starsChanged 57 days agoApache-2.0View on GitHub
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.
- Reads credentials
- Installs packages
7 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- martgueritainaccurate875/skillstheir own version, first seen Nov 8, 2026
- czhmisaka/deepseek-harness-customtheir own version, first seen Sep 11, 2026
- FuSheng-MG/Pi-Agent-skillstheir own version, first seen Jul 24, 2026
- madebyaris/advance-minimax-m3-cursor-rulestheir own version, first seen Jun 10, 2026
- huangzida/skillstheir own version, first seen Apr 4, 2026
- MiniMax-AI/skillsedited, first seen Mar 24, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- MiniMax-AI/skills★ 14k48% same
Wrote their own version · 6
- madebyaris/advance-minimax-m3-cursor-rules★ 125same name
- martgueritainaccurate875/skills★ 6same name
- huangzida/skills★ 2same name
- FuSheng-MG/Pi-Agent-skills★ 1same name
- lengmodkx/claude-skills★ 1same name
- czhmisaka/deepseek-harness-custom★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-exploreSkill
- openspec-proposeSkill
- 3d-animation-short-generatorSkill
- brand-promo-video-generatorSkill
- co-op-game-intro-generatorSkill
- h3-prompt-writingSkill
- handdrawn-live-video-generatorSkill
- minimalist-product-ad-generatorSkill
- minimax-music-genSkill
- minimax-music-playlistSkill
- music-video-subtitle-generatorSkill
- paper-collage-explainer-generatorSkill
- papercraft-stop-motion-explainerSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use mmx to generate text, images, video, speech, music, and perform web search via the MiniMax AI platform.
- Distinctive: line 29
Always use these flags in non-interactive (agent/CI) contexts:
- Distinctive: line 308
Use this to dynamically register mmx commands as tools in your agent framework.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
MiniMax CLI — Agent Skill Guide
Use mmx to generate text, images, video, speech, music, and perform web search via the MiniMax AI platform.
Prerequisites
# Install
npm install -g mmx-cli
# Auth (persisted to ~/.mmx/credentials.json)
mmx auth login --api-key sk-xxxxx
# Or pass per-call
mmx text chat --api-key sk-xxxxx --message "Hello"Region is auto-detected. Override with --region global or --region cn.
Agent Flags
Always use these flags in non-interactive (agent/CI) contexts:
| Flag | Purpose |
--non-interactive | Fail fast on missing args instead of prompting |
--quiet | Suppress spinners/progress; stdout is pure data |
--output json | Machine-readable JSON output |
--async | Return task ID immediately (video generation) |
--dry-run | Preview the API request without executing |
--yes | Skip confirmation prompts |
Commands
text chat
Chat completion. Default model: MiniMax-M2.7.
mmx text chat --message <text> [flags]| Flag | Type | Description |
--message <text> | string, required, repeatable | Message text. Prefix with role: to set role (e.g. "system:You are helpful", "user:Hello") |
--messages-file <path> | string | JSON file with messages array. Use - for stdin |
--system <text> | string | System prompt |
--model <model> | string | Model ID (default: MiniMax-M2.7) |
--max-tokens <n> | number | Max tokens (default: 4096) |
--temperature <n> | number | Sampling temperature (0.0, 1.0] |
--top-p <n> | number | Nucleus sampling threshold |
--stream | boolean | Stream tokens (default: on in TTY) |
--tool <json-or-path> | string, repeatable | Tool definition JSON or file path |
# Single message
mmx text chat --message "user:What is MiniMax?" --output json --quiet
# Multi-turn
mmx text chat \
--system "You are a coding assistant." \
--message "user:Write fizzbuzz in Python" \
--output json
# From file
cat conversation.json | mmx text chat --messages-file - --output jsonstdout: response text (text mode) or full response object (json mode).
image generate
Generate images. Model: image-01.
mmx image generate --prompt <text> [flags]| Flag | Type | Description |
--prompt <text> | string, required | Image description |
--aspect-ratio <ratio> | string | e.g. 16:9, 1:1 |
--n <count> | number | Number of images (default: 1) |
--subject-ref <params> | string | Subject reference: type=character,image=path-or-url |
--out-dir <dir> | string | Download images to directory |
--out-prefix <prefix> | string | Filename prefix (default: image) |
mmx image generate --prompt "A cat in a spacesuit" --output json --quiet
# stdout: image URLs (one per line in quiet mode)
mmx image generate --prompt "Logo" --n 3 --out-dir ./gen/ --quiet
# stdout: saved file paths (one per line)video generate
Generate video. Default model: MiniMax-Hailuo-2.3. This is an async task — by default it polls until completion.
mmx video generate --prompt <text> [flags]| Flag | Type | Description |
--prompt <text> | string, required | Video description |
--model <model> | string | MiniMax-Hailuo-2.3 (default) or MiniMax-Hailuo-2.3-Fast |
--first-frame <path-or-url> | string | First frame image |
--callback-url <url> | string | Webhook URL for completion |
--download <path> | string | Save video to specific file |
--async | boolean | Return task ID immediately |
--no-wait | boolean | Same as --async |
--poll-interval <seconds> | number | Polling interval (default: 5) |
# Non-blocking: get task ID
mmx video generate --prompt "A robot." --async --quiet
# stdout: {"taskId":"..."}
# Blocking: wait and get file path
mmx video generate --prompt "Ocean waves." --download ocean.mp4 --quiet
# stdout: ocean.mp4video task get
Query status of a video generation task.
mmx video task get --task-id <id> [--output json]video download
Download a completed video by task ID.
mmx video download --file-id <id> [--out <path>]speech synthesize
Text-to-speech. Default model: speech-2.8-hd. Max 10k chars.
mmx speech synthesize --text <text> [flags]| Flag | Type | Description |
--text <text> | string | Text to synthesize |
--text-file <path> | string | Read text from file. Use - for stdin |
--model <model> | string | speech-2.8-hd (default), speech-2.6, speech-02 |
--voice <id> | string | Voice ID (default: English_expressive_narrator) |
--speed <n> | number | Speed multiplier |
--volume <n> | number | Volume level |
--pitch <n> | number | Pitch adjustment |
--format <fmt> | string | Audio format (default: mp3) |
--sample-rate <hz> | number | Sample rate (default: 32000) |
--bitrate <bps> | number | Bitrate (default: 128000) |
--channels <n> | number | Audio channels (default: 1) |
--language <code> | string | Language boost |
--subtitles | boolean | Include subtitle timing data |
--pronunciation <from/to> | string, repeatable | Custom pronunciation |
--sound-effect <effect> | string | Add sound effect |
--out <path> | string | Save audio to file |
--stream | boolean | Stream raw audio to stdout |
mmx speech synthesize --text "Hello world" --out hello.mp3 --quiet
# stdout: hello.mp3
echo "Breaking news." | mmx speech synthesize --text-file - --out news.mp3music generate
Generate music. Model: music-2.5. Responds well to rich, structured descriptions.
mmx music generate --prompt <text> [--lyrics <text>] [flags]| Flag | Type | Description |
--prompt <text> | string | Music style description (can be detailed) |
--lyrics <text> | string | Song lyrics with structure tags. Use "\u65e0\u6b4c\u8bcd" for instrumental. Cannot be used with --instrumental |
--lyrics-file <path> | string | Read lyrics from file. Use - for stdin |
--vocals <text> | string | Vocal style, e.g. "warm male baritone", "bright female soprano", "duet with harmonies" |
--genre <text> | string | Music genre, e.g. folk, pop, jazz |
--mood <text> | string | Mood or emotion, e.g. warm, melancholic, uplifting |
--instruments <text> | string | Instruments to feature, e.g. "acoustic guitar, piano" |
--tempo <text> | string | Tempo description, e.g. fast, slow, moderate |
--bpm <number> | number | Exact tempo in beats per minute |
--key <text> | string | Musical key, e.g. C major, A minor, G sharp |
--avoid <text> | string | Elements to avoid in the generated music |
--use-case <text> | string | Use case context, e.g. "background music for video", "theme song" |
--structure <text> | string | Song structure, e.g. "verse-chorus-verse-bridge-chorus" |
--references <text> | string | Reference tracks or artists, e.g. "similar to Ed Sheeran" |
--extra <text> | string | Additional fine-grained requirements |
--instrumental | boolean | Generate instrumental music (no vocals). Cannot be used with --lyrics or --lyrics-file |
--aigc-watermark | boolean | Embed AI-generated content watermark |
--format <fmt> | string | Audio format (default: mp3) |
--sample-rate <hz> | number | Sample rate (default: 44100) |
--bitrate <bps> | number | Bitrate (default: 256000) |
--out <path> | string | Save audio to file |
--stream | boolean | Stream raw audio to stdout |
At least one of --prompt or --lyrics is required.
# Simple usage
mmx music generate --prompt "Upbeat pop" --lyrics "La la la..." --out song.mp3 --quiet
# Detailed prompt with vocal characteristics
mmx music generate --prompt "Warm morning folk" \
--vocals "male and female duet, harmonies in chorus" \
--instruments "acoustic guitar, piano" \
--bpm 95 \
--lyrics-file song.txt \
--out duet.mp3
# Instrumental (use --instrumental flag)
mmx music generate --prompt "Cinematic orchestral, building tension" --instrumental --out bgm.mp3vision describe
Image understanding via VLM. Provide either --image or --file-id, not both.
mmx vision describe (--image <path-or-url> | --file-id <id>) [flags]| Flag | Type | Description |
--image <path-or-url> | string | Local path or URL (auto base64-encoded) |
--file-id <id> | string | Pre-uploaded file ID (skips base64) |
--prompt <text> | string | Question about the image (default: "Describe the image.") |
mmx vision describe --image photo.jpg --prompt "What breed?" --output jsonstdout: description text (text mode) or full response (json mode).
search query
Web search via MiniMax.
mmx search query --q <query>| Flag | Type | Description |
--q <query> | string, required | Search query |
mmx search query --q "MiniMax AI" --output json --quietquota show
Display Token Plan usage and remaining quotas.
mmx quota show [--output json]Tool Schema Export
Export all commands as Anthropic/OpenAI-compatible JSON tool schemas:
# All tool-worthy commands (excludes auth/config/update)
mmx config export-schema
# Single command
mmx config export-schema --command "video generate"Use this to dynamically register mmx commands as tools in your agent framework.
Exit Codes
| Code | Meaning |
| 0 | Success |
| 1 | General error |
| 2 | Usage error (bad flags, missing args) |
| 3 | Authentication error |
| 4 | Quota exceeded |
| 5 | Timeout |
| 10 | Content filter triggered |
Piping Patterns
# stdout is always clean data — safe to pipe
mmx text chat --message "Hi" --output json | jq '.content'
# stderr has progress/spinners — discard if needed
mmx video generate --prompt "Waves" 2>/dev/null
# Chain: generate image → describe it
URL=$(mmx image generate --prompt "A sunset" --quiet)
mmx vision describe --image "$URL" --quiet
# Async video workflow
TASK=$(mmx video generate --prompt "A robot" --async --quiet | jq -r '.taskId')
mmx video task get --task-id "$TASK" --output json
mmx video download --task-id "$TASK" --out robot.mp4Configuration Precedence
CLI flags → environment variables → ~/.mmx/config.json → defaults.
# Persistent config
mmx config set --key region --value cn
mmx config show
# Environment
export MINIMAX_API_KEY=sk-xxxxx
export MINIMAX_REGION=cn<!-- QUALITY_BASELINE_V1 -->When to use(什么时候使用)
当用户需要 为当前请求选择并执行可验证、可恢复的专业工作流 时加载本技能。先从请求中提取目标、输入、约束、交付格式和验收标准;描述摘要为: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.。
Rules
- 先读后写:先确认当前状态与真实能力,再执行会改变外部状态的动作。
- 权限最小化:只使用完成当前步骤所需的文件、工具、账户与网络范围。
- 证据优先:运行结果、资源 ID、版本、哈希或测试输出缺失时,明确标记为
NOT_VERIFIED。 - 幂等优先:保留请求标识与阶段状态;结果不明确时先查询,不进行盲目重试。
- 隐私安全:日志、示例、回执和错误信息不得包含 token、cookie、密钥或个人敏感数据。
Workflow
Step 1:澄清意图
确认本技能是否匹配目标;若只是相邻需求,交给更精确的技能。
Step 2:执行预检
确认目标、输入、约束、可用工具、成功标准和失败边界;任一关键条件未知时停止在只读阶段。
Step 3:形成计划
列出将调用的工具、会改变的对象、成功标准以及失败后的安全退出方式。
Step 4:执行动作
按最小充分步骤执行,并在关键状态变化处记录证据;每个外部调用均保留可关联的状态或回执。
Step 5:验证交付
输出结果、验证证据、未完成项、风险和明确的下一步,并把事实、推断和未验证项分开陈述。
Validation checklist
- 技能触发条件与用户意图一致,没有把相邻任务误路由到本技能。
- 输入、目标对象、版本和输出位置均已明确,且没有使用猜测值替代必填值。
- 所有写入、付费、发布或不可逆动作都在用户授权范围内。
- 结果已用独立检查验证;仅有“命令成功”或“文件存在”不算完整验收。
- 输出包含实际证据、失败/跳过项、剩余风险和可执行的下一步。
Gotchas
- 把计划当结果:文档或提示词不等于真实执行;必须标明实际运行层级。
- 错误重试:超时或响应丢失可能已经产生远端状态,先查询再决定是否重试。
- 隐式扩大范围:批量、全量、发布、覆盖和付费不是普通读写的自然延伸。
- 版本漂移:引用外部资源时记录版本、tag 或提交;不要把可变分支当发布证据。
- 证据过期:缓存、旧截图和历史测试不能证明当前环境;在交付前刷新关键证据。
不适用与边界
不超出用户给定范围;写入、付费、发布和不可逆动作需要明确授权。 如果请求需要别的技能,不复制其正文;按技能名称进行交接,并保留当前任务上下文。
Progressive disclosure
- 需要确定输入/输出、状态和授权点时,读取
references/workflow-contract.md。 - 需要交付前自检时,读取
references/validation-checklist.md。 - 遇到超时、部分成功或恢复场景时,读取
references/error-recovery.md。 - 首次运行、拒绝越权和失败恢复分别参考
examples/happy-path.md、examples/boundary-refusal.md、examples/failure-recovery.md。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

