# Mmx CLI

> Operate the local MiniMax CLI (`mmx`) from Codex for web search, vision, image / video / speech / music generation, quota inspection, and MiniMax file operations. `mmx text chat` is forbidden — Codex is the text generator.

- Skill: `immortalqx/mmx-cli` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add immortalqx/mmx-cli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/immortalqx/mmx-cli/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Immortalqx (https://skillmd.com/u/immortalqx)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/immortalqx/mmx-cli

---


# MiniMax CLI

Target request: `$ARGUMENTS`

## Overview

Operate the already-installed local `mmx` command as the execution surface for MiniMax tasks. Keep the main flow focused on doing the user`s task, not on teaching the CLI.

Load `references/setup-notes.md` only when the user explicitly asks about installation, authentication, configuration, or schema export.

## Hard Constraints

These rules are absolute. There are no exceptions driven by user phrasing.

1. **`mmx text chat` is forbidden, in every situation.** Do not invoke it for chat, completion, translation, summarization, rewriting, coding help, or any other text task. Codex itself is the text generator. This includes "user asked for a poem" — answer it in your own reply, do not shell out to mmx.
2. **Default command is `mmx search query`.** If the user has not asked for anything more specific and web research will help, this is the only mmx command you may run by default.
3. **Every other generation command is opt-in.** `image generate`, `video generate`, `speech synthesize`, `music generate`, `music cover`, and `vision describe` may only run when the user explicitly asks for them in the current message. Phrasing like "make me a picture" or "generate an image" without naming `mmx` is **not** explicit — ask the user to confirm or have them paste the exact command they want.
4. **`quota show`, `auth *`, `config *`, `update`** may be used for housekeeping as needed (e.g. checking auth before a generation call). They do not consume creative quota and are not subject to the explicit-ask rule.
5. **Search-quality rules** are in `references/search-playbook.md` and apply whenever `mmx search query` runs.

If a request could be served by your own reasoning (most prose, code, analysis), do it directly. Reach for `mmx search` only when the answer must come from the live web; reach for the other generation commands only when explicitly authorized.

## text chat — DISABLED

> This command is **forbidden** by the "Hard Constraints" section above. Do not invoke `mmx text chat` under any circumstances — not for chat, completion, translation, summary, or any other text task. Codex itself is the text generator.
>
> The reference below is kept only so the command and its flags remain discoverable. Nothing here is runnable.

Chat completion. Default model: `MiniMax-M2.7`.

```bash
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 |

```bash
# 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 json
```

**stdout**: response text (text mode) or full response object (json mode).

## Execution Workflow

1. Determine the narrowest `mmx` command that fits the task: `search query`, `vision describe`, `image generate`, `video generate`, `speech synthesize`, `music generate`, `music cover`, `quota show`, or `file` operations. (`text chat` is disabled — see Hard Constraints.)
2. Verify runtime readiness with `mmx --version` or `mmx auth status --output json --quiet --non-interactive`.
3. Run the command with agent-safe defaults first.
4. Save generated artifacts with explicit workspace-local output paths.
5. Verify the returned JSON, task IDs, URLs, or files before reporting success.

## Agent Defaults

Use these flags by default in agent mode:

- `--non-interactive`
- `--quiet`
- `--output json` when machine-readable output helps

Add these selectively:

- `--dry-run` before an expensive or ambiguous request
- `--async` for long-running video generation
- explicit output path flags such as `--out`, `--out-dir`, or `--download` for binary artifacts

## Search Policy

When using `mmx search query`, default to mixed Chinese + English and multiple search passes. Do not answer from a single query unless the task is trivial.

For any non-trivial search:

1. Run at least one English technical query.
2. Run at least one Chinese query for the same concept.
3. Run at least one mixed-language query that combines Chinese topic words with canonical English names, abbreviations, model names, venue names, or product terms.
4. If the topic is recent, ambiguous, or sparse, add more passes with synonyms, recency words, or source-specific filters in the query string.
5. Compare results across the query set before answering.
6. Prefer citing URLs and titles from JSON output instead of paraphrasing from memory.

Read `references/search-playbook.md` when query design matters.

## Command Patterns

Prefer short, task-shaped commands:

```bash
mmx search query --q "embodied navigation world model benchmark" --output json --quiet --non-interactive
mmx vision describe --image figure.png --prompt "Explain the key takeaway." --output json --quiet --non-interactive
mmx auth status --output json --quiet --non-interactive
```

Use explicit workspace-local output paths for generated artifacts:

```bash
mmx image generate --prompt "..." --out-dir .\\outputs --quiet --non-interactive
mmx speech synthesize --text "..." --out .\\outputs\\sample.mp3 --quiet --non-interactive
mmx video generate --prompt "..." --download .\\outputs\\clip.mp4 --quiet --non-interactive
```

Preview expensive or ambiguous generation first:

```bash
mmx image generate --prompt "..." --dry-run --output json --quiet --non-interactive
```

Track async video tasks through `video task get` and `video download` before treating the job as complete.

## Failure Handling

- Report missing `mmx`, failed auth, or quota blockers directly.
- Broaden weak search runs with bilingual synonyms and additional passes.
- Prefer `--dry-run` or `--async` before committing to expensive generation.
- Perform the required follow-up step when a command returns only task IDs, file IDs, or URLs instead of a finished local artifact.

## References

Load these only when needed:

- `references/setup-notes.md` for installation, auth, config, and schema export
- `references/search-playbook.md` for concrete bilingual multi-search patterns

