원클릭으로
minimax-cli
MiniMax multimodal via mmx-cli — TTS, video, music, image, vision, search
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
MiniMax multimodal via mmx-cli — TTS, video, music, image, vision, search
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Reconcile split-brain truth sources in a multi-organ federation — when arifOS capability_map, Hermes config.yaml providers block, MCP server registry, and runtime env all claim to be the canonical source for "what's configured". Load when Arif reports "Hermes says 1 provider, arifOS says 28", when a tool call fails with unknown provider, or when fixing audit findings about API key / model / organ coverage.
Add, fix, or migrate custom/third-party LLM providers in a Hermes Agent install so they appear in `/model` (CLI) and the Telegram gateway picker. Covers providers block shape, env-var key mapping, security-blocker on direct config writes, three-tier multimodal fallback chains, MiMo UltraSpeed/Pro/v2.5 capability matrix and supports_vision flag for forced auxiliary routing, vault→hermes.env key sync pattern, picker zen with 5-state failure classification (OK/PAUSED/BROKEN/CHAT_INCOMPATIBLE/EXC) and dedupe by route priority, MoA preset cross-dependency on provider models, MiniMax direct provider + mmx-cli for multimodal generation, OpenCode Go vs Zen tier verification, and dead fallback cleanup.
Test whether a proposed improvement actually beats the existing baseline BEFORE committing to build it. Spawn parallel forge agents that each compare challenger vs baseline on the same data. Kill ideas that don't improve; forge only what measurably helps.
Map of the arifOS federation — organs, ports, roles, MCP surfaces, health probes. Load when Arif asks 'what organs are alive', 'show me the federation', 'is X running', 'what port is Y', or when you need to route a task to the right organ.
Probe live state BEFORE proposing fixes, additions, or changes. Read configs, test commands, check what exists — then act only on real gaps. Use ALWAYS. This is not optional. Arif corrected multiple times (2026-07-04, 2026-07-08, 2026-07-11) for proposing fixes to things that already worked, for citing stale audits as live state, and for accepting 'first time' / 'novel' / 'pick from N options' prompts without probing disk.
Forge new constitutional organs in arifOS — vector indexing, dual-gate architecture, EMD pipeline integration, Qdrant backfill, derived-view enrichment.
| name | minimax-cli |
| description | MiniMax multimodal via mmx-cli — TTS, video, music, image, vision, search |
| version | 1.0.0 |
| tags | ["minimax","tts","video","music","image","vision","multimodal"] |
| metadata | {"hermes":{"requires":["mmx-cli"]}} |
MiniMax multimodal capabilities via mmx CLI. Token Plan subscription required.
npm install -g mmx-climmx auth login --api-key <sk-cp-key>| Capability | Command | Example |
|---|---|---|
| Text chat | mmx text chat --message "..." | mmx text chat --message "Explain NPV" |
| TTS | mmx speech synthesize --text "..." --out voice.mp3 | mmx speech synthesize --text "Hello" --out hi.mp3 |
| Image gen | mmx image generate --prompt "..." | mmx image generate --prompt "sunset ocean" --aspect-ratio 16:9 |
| Video gen | mmx video generate --prompt "..." | mmx video generate --prompt "cat at sunset" |
| Music gen | mmx music generate --prompt "..." | mmx music generate --prompt "jazz summer" --out jazz.mp3 |
| Music gen (lyrics) | mmx music generate --prompt-file tags.txt --lyrics-file lyrics.txt --out song.mp3 | See Music Generation Workflow below |
| Vision | mmx vision describe --file image.png | mmx vision describe --file photo.jpg |
| Web search | mmx search query --query "..." | mmx search query --query "oil price today" |
| Quota | mmx quota | Check remaining Token Plan balance |
| Auth status | mmx auth status | Verify login + region |
--api-key <key> — override auth--region global|cn — force region--output json|text — output format--timeout <seconds> — request timeout (default 300)--non-interactive — CI/agent mode (no prompts)Files saved to minimax-output/ in cwd. When using from Hermes, display media directly in output.
When Arif requests voice messages (TTS), use this fallback order:
text_to_speech tool — uses OpenAI by default, fast, good quality. Fails on quota (429).edge-tts CLI — free, no API key, good Malay voice. Install: pip install edge-tts --break-system-packages
# Malay male voice
edge-tts --text "your text" --voice ms-MY-OsmanNeural --write-media /tmp/tts_output.mp3
# Malay female voice
edge-tts --text "your text" --voice ms-MY-YasminNeural --write-media /tmp/tts_output.mp3
Send with MEDIA:/tmp/tts_output.mp3 in response.mmx speech synthesize — MiniMax TTS, quota-based but high quality.When user says "voice" or "TTS": try built-in first → if 429 → fall back to edge-tts immediately (no need to ask).
Full song generation from lyrics + genre tags. Two input files required:
1. Tags file (tags.txt) — comma-separated genre, mood, instrument tags, no spaces after commas:
traditional malay folk,acoustic guitar,gamelan,kompang,joyful,warm,nostalgic,female vocal
2. Lyrics file (lyrics.txt) — bracketed structural tags:
[Intro]
[Verse]
Your lyrics here...
[Chorus]
Chorus lyrics...
[Bridge]
Bridge lyrics...
[Outro]
3. Generate:
mmx music generate \
--prompt-file tags.txt \
--lyrics-file lyrics.txt \
--out song.mp3 \
--non-interactive
Output: MP3, auto-selects model (music-2.6 as of 2026-07). ~4.2MB for a ~3min song, 256kbps stereo 44.1kHz.
Quick prompt-only (no lyrics):
mmx music generate --prompt "jazz piano,relaxing,lo-fi" --out lofi.mp3
Workflow for Telegram delivery:
/tmp/song_tags.txt/tmp/song_lyrics.txtmmx music generate with --out /tmp/song.mp3ls -lh /tmp/song.mp3 && file /tmp/song.mp3MEDIA:/tmp/song.mp3 in responseAuth key: source /root/.secrets/vault.env → MINIMAX_API_KEY (sk-cp- prefix, Token Plan).
When user requests a song in a specific cultural/traditional style (e.g., "Kaparinyo", "dondang sayang", "keroncong"):
Proven example (2026-07-11): Generic Kaparinyo vs researched Minangkabau/Gamad version with authentic Bahasa Minang lyrics. The researched version produced materially better results because tags matched the actual musical tradition (keroncong, Portuguese guitar, gandang) rather than generic "gamelan, kompang."
Research sources: Academic papers (ResearchGate), Wikipedia, YouTube traditional performances, Spotify/Smule for lyric verification. See references/kaparinyo-research-example.md for a full worked example.
Two tools for evaluating generated music:
scripts/akal_somatic_scoring.py — ffmpeg-only audio scoring. Three checks: PULSE (temporal fidelity), SOUL (cultural alignment), FLOW (entropy equilibrium). No librosa needed. Returns JSON verdict (SEAL/SABAR/HOLD).templates/cultural_manifold.json — Reusable schema for culturally-grounded music generation. Defines identity, structural priors, harmonic constraints, timbre palette, lyric constraints, and evaluation thresholds. Copy and modify for other traditions (Zapin, Asli, Dondang Sayang, etc.).Full evaluation toolkit at /root/music-eval/ — genre scoring, somatic analysis, paradox engine, motif memory, Telegram signal observer. See references/music-eval-pipeline.md for architecture, CLI usage, and A-FORGE integration path. A-FORGE already has paradox-engine/models.py with 16-dim somatic vectors — see references/aforge-paradox-engine.md.
references/jina-reader-medium.md — Reading Medium/Cloudflare-protected articles via Jina Readerreferences/cross-organ-wiring-pattern.md — Wiring external engines into arifOS kernel (enforcement gates)When the trading agent needs to analyze MT5/chart screenshots but the main model lacks native vision, MiniMax vision is the primary fallback. This is WAJIB for any trading workflow — the agent must be able to read chart patterns, S/R levels, and order levels from screenshots.
# Auth (once per session — key is in vault.env)
source /root/.secrets/vault.env
mmx auth login --api-key "$MINIMAX_API_KEY" --non-interactive
# Analyze chart screenshot
mmx vision describe --file /path/to/chart.jpg --non-interactive 2>&1
# JSON output includes:
# .content — the text description of the image
# .base_resp — status_code, status_msg
Proven workflow (2026-07-18):
# Step 1: Get the image (from user message, Telegram, etc.)
# Step 2: Run vision analysis
RESULT=$(mmx vision describe --file /root/.hermes/cache/images/img_xxx.jpg --non-interactive 2>&1)
# Step 3: Extract the analysis text
echo "$RESULT" | python3 -c "import json,sys; print(json.load(sys.stdin)['content'])"
# Step 4: Combine with live API data for a complete picture
What it can read from a trading chart:
When to use: ANY time Arif or Syed sends a chart screenshot asking "what do you see" or "analisa chart ni". Never reply "sorry cannot see images" — this is now a solved problem.
Quota check before use: mmx quota — vision counts against the same Token Plan quota as text/video/music.
mmx vision describe returns 429 (quota limit), try: (1) Anthropic API if ANTHROPIC_API_KEY has credits, direct curl to /v1/messages with base64 image; (2) MiMo API if MIMO_API_KEY has Token Plan credits; (3) tesseract OCR as last resort — extracts text (price levels, labels) but not candle patterns. Proven 2026-07-18: MiMo 429, Anthropic credit exhausted, but OCR successfully read XAUUSD chart levels from MT5 screenshot.mmx config set --key region --value globalmmx image generate --output is ignored — The --output flag on mmx image generate does NOT work. Files always save as image_001.jpg, image_002.jpg, etc. in the current working directory (not minimax-output/). After generation, find the file with find /root -name "image_001.jpg" -newer /tmp/some_recent_file or check ls -lt in the session cwd, then cp to your desired path. Proven 2026-07-20: specified --output /tmp/abang_sado_minimax.jpg but file landed at /root/WELL/image_001.jpg.sk-cp- = Token Plan (subscription), not pay-as-you-gommx video task get --task-id <id>, then downloadnpx skills add MiniMax-AI/cli -y -g fails with "PromptScript does not support global skill installation" → manual symlink: ln -sf ~/.hermes/skills/minimax-cli/SKILL.md ~/.claude/skills/minimax-cli.md and same for ~/.openclaw/skills/minimax-output/ in cwd, not to Hermes audio cachetext_to_speech tool hits OpenAI 429 quota regularly — don't retry, fall back to edge-tts immediatelylibrosa for real spectral features.librosa.beat.beat_track(), chroma_cqt(), and mfcc() may segfault (exit 139) on some numpy/librosa version combos. Use manual STFT-based analysis instead: librosa.stft() → np.abs() → compute entropy/centroid from magnitude matrix. See references/librosa-analysis.md for working code.references/librosa-analysis.md works on both. Always test on a 30s WAV clip first before running on full tracks.web_extract fails, ?format=json returns 403, RSS only has 10 most recent. Use Jina Reader: curl -sL "https://r.jina.ai/https://medium.com/@user/article-slug" -H "Accept: text/plain" returns clean markdown. Works for any Cloudflare-protected page. Store this as the primary Medium extraction method.scripts/akal_somatic_scoring.py for ffmpeg-only audio scoring (PULSE/SOUL/FLOW). No librosa dependency. Usage: python3 scripts/akal_somatic_scoring.py <audio.mp3>. For cultural manifold evaluation, use templates/cultural_manifold.json as the reference schema.