Official command-line interface for muapi.ai — generate images, videos, and audio directly from your terminal.
Agent-first design — every command works for both humans (colored output, tables) and AI agents (--output-json, --jq filtering, semantic exit codes, MCP server mode).
- MuAPI CLI docs — Command reference and setup guidance.
- MuAPI API reference — Underlying endpoints and prediction lifecycle.
- midjourney-api — Python SDK for Midjourney V7, V8, and Niji image generation.
- suno-api — Python SDK for Suno music, audio, and voice workflows.
- minimax-music-3-api — Python SDK for MiniMax Music 3.0 text-to-music generation on Muapi.
- awesome-minimax-music-3-prompts — Curated song prompts and lyrics-formatting guide for MiniMax Music 3.0.
- MiniMax-H3-API — Python SDK for MiniMax H3 video-generation workflows on Muapi.
- awesome-minimax-h3-prompts — Prompt gallery with runnable MiniMax H3 examples for the CLI.
- Wan-3.0-API — Python SDK and MCP server for Wan 3.0-compatible AI video generation.
- Wan-3.0-Prime-API — Python SDK and MCP server for the higher-fidelity Wan 3.0 Prime tier.
- Gemini-Omni-1.1-Flash-API — Python SDK and MCP server for Google's newly announced Gemini Omni 1.1 Flash update.
- Awesome-Gemini-Omni-API-Prompts — Curated Gemini Omni prompts and REST examples.
- Open-Generative-AI — Browser-based GUI for the same models — no CLI required
- Awesome-GPT-Image-2-API-Prompts — Curated prompt library to run via this CLI
- ai-creator-academy — free curriculum teaching creators how to monetize generative AI, including running models via this CLI
- Flux-3-Dev-API — Python wrapper for Black Forest Labs' FLUX 3 (Dev variant) — text-to-image, image-to-image, text-to-video, image-to-video
- Grok-Imagine-Image-2-API — Python SDK and MCP server for Grok Imagine Image 2.0 generation and editing through MuAPI
- awesome-flux-3-api-prompts — FLUX 3 API guide, prompts, and parameters
- flux-3-video-api — Python wrapper focused on FLUX 3 Text-to-Video and Image-to-Video
- seedance-2.5-mcp — MCP server for generating Seedance 2.5 Preview videos through MuAPI.
- seedance-2-mcp — MCP server for generating Seedance 2 videos through MuAPI.
- Text-to-Speech-API — speech model comparison and raw API examples that can be run through the CLI.
- Speech-to-Text-API — transcription and audio-analysis examples for the same Muapi endpoints.
- Image-Enhancement-API — image upscaling and background-removal API examples.
- Video-Utilities-API — video enhancement and MMAudio utility examples.
- AI-3D-Model-API — Tripo3D and Meshy API comparisons and examples.
# npm (recommended — no Python required)
npm install -g muapi-cli
# pip
pip install muapi-cli
# or run without installing
npx muapi-cli --help# New user? Create an account
muapi auth register --email you@example.com --password "..."
muapi auth verify --email you@example.com --otp 123456
muapi auth login --email you@example.com --password "..."
# Or paste an existing API key
muapi auth configure --api-key "YOUR_KEY"
# Generate — pick a curated verb…
muapi image generate "a cyberpunk city at night" --model flux-dev
muapi video generate "a dog running on a beach" --model kling-master
muapi audio create "upbeat lo-fi hip hop for studying"
# …or run any model by endpoint name (schema-driven, covers the whole catalog)
muapi run flux-dev-image -p "a cyberpunk city at night"
muapi run seedance-2-text-to-video -p "drone shot over snowy peaks" -i duration=5
muapi run <model> -h # introspects the live OpenAPI schema
# Check balance
muapi account balance
# Wait for an existing job
muapi predict wait <request_id>| Command | Description |
|---|---|
muapi auth register --email x --password y |
Create a new account (sends OTP) |
muapi auth verify --email x --otp 123456 |
Verify email after registration |
muapi auth login --email x --password y |
Log in and save API key automatically |
muapi auth forgot-password --email x |
Send password reset OTP |
muapi auth reset-password --email x --otp y --password z |
Reset password |
muapi auth configure |
Manually save an API key |
muapi auth whoami |
Show current API key (masked) |
muapi auth logout |
Remove stored API key |
| Command | Description |
|---|---|
muapi account balance |
Show current credit balance |
muapi account topup --amount 20 |
Add credits via Stripe checkout |
| Command | Description |
|---|---|
muapi keys list |
List all API keys on your account |
muapi keys create --name label |
Create a new API key (shown once) |
muapi keys delete <id> |
Delete an API key by ID |
| Command | Description |
|---|---|
muapi image generate <prompt> |
Text-to-image generation |
muapi image edit <prompt> --image <url> |
Image-to-image editing |
muapi image models |
List available models |
Models: flux-dev, flux-schnell, flux-kontext-dev/pro/max, hidream-fast/dev/full, wan2.1, reve, gpt4o, midjourney, seedream, qwen
| Command | Description |
|---|---|
muapi video generate <prompt> |
Text-to-video generation |
muapi video from-image <prompt> --image <url> |
Image-to-video animation |
muapi video models |
List available models |
Models: veo3, veo3-fast, kling-master, kling-std, kling-pro, wan2.1/2.2, seedance-pro/lite, hunyuan, runway, pixverse, vidu, minimax-std/pro
| Command | Description |
|---|---|
muapi audio create <prompt> |
Create music with Suno |
muapi audio remix <song-id> |
Remix an existing Suno song |
muapi audio extend <song-id> |
Extend a Suno song |
muapi audio from-text <prompt> |
Generate audio with MMAudio |
muapi audio from-video <video-url> |
Add AI audio to a video |
| Command | Description |
|---|---|
muapi enhance upscale <url> |
AI image upscaling |
muapi enhance bg-remove <url> |
Remove background |
muapi enhance face-swap --source <url> --target <url> |
Face swap image/video |
muapi enhance skin <url> |
Skin enhancement |
muapi enhance colorize <url> |
Colorize B&W photo |
muapi enhance ghibli <url> |
Ghibli anime style |
muapi enhance anime <url> |
Anime style conversion |
muapi enhance extend <url> |
Outpaint/extend image |
muapi enhance product-shot <url> |
Professional product photo |
muapi enhance erase <url> --mask <url> |
Object removal |
| Command | Description |
|---|---|
muapi edit effects --video <url> --effect <name> |
AI video/image effects |
muapi edit lipsync --video <url> --audio <url> |
Lip sync to audio |
muapi edit dance --image <url> --video <url> |
Make person dance |
muapi edit dress --image <url> |
Change clothing |
muapi edit clipping <video-url> |
AI highlight extraction |
Reaches any model in the muapi.ai catalog by endpoint name, even ones not covered by the curated image / video / audio / enhance / edit verbs. The input schema is fetched from the live OpenAPI spec, so muapi run <model> -h always reflects the real, current parameters.
| Command | Description |
|---|---|
muapi run <model> -h |
Print model-specific inputs from the live OpenAPI schema |
muapi run <model> -p "..." |
Run with a prompt |
muapi run <model> -p "..." -i k=v -i k=v |
Pass arbitrary inputs (JSON-parsed when valid) |
muapi run <model> --input-file inputs.json |
Inputs from a JSON file |
muapi run <model> ... --dry-run |
Show the request body without sending |
<model> accepts either a real endpoint slug (flux-dev-image, nano-banana-2, seedance-2-text-to-video) or a short alias from the curated tables (flux-dev, seedream, kling-master).
Merge order for inputs (later wins): --input-file → -i k=v → -p prompt.
# Discover a model's real inputs
muapi run nano-banana-2 -h
# Run it
muapi run nano-banana-2 -p "a logo for a coffee shop" -i num_images=2 --download ./out
# Pipe-safe JSON
muapi run flux-dev-image -p "..." --output-json --jq '.outputs[0]'| Command | Description |
|---|---|
muapi predict result <id> |
Fetch current status (no polling) |
muapi predict wait <id> |
Wait until complete |
| Command | Description |
|---|---|
muapi upload file <path> |
Upload a local file → get hosted URL |
| Command | Description |
|---|---|
muapi models list |
List all models |
muapi models list --category video |
Filter by category |
| Command | Description |
|---|---|
muapi config set <key> <value> |
Set a persistent default |
muapi config get <key> |
Read a config value |
muapi config list |
Show all config |
Useful keys: output (json/human), model.image, model.video, no_color (true/false)
| Command | Description |
|---|---|
muapi docs openapi |
Fetch the full OpenAPI spec |
muapi docs open |
Open Swagger UI in browser |
| Command | Description |
|---|---|
muapi mcp serve |
Start MCP server (stdio) for AI agents |
| Flag | Description |
|---|---|
--wait / --no-wait |
Poll until done (default: --wait) |
--output-json / -j |
Print raw JSON response |
--jq <expr> |
Filter JSON output (e.g. '.outputs[0]') |
--download <dir> / -d |
Auto-download outputs to directory |
--no-color |
Disable colored output |
| Variable | Description |
|---|---|
MUAPI_API_KEY |
API key (overrides keychain/config) |
MUAPI_BASE_URL |
Override API base URL |
NO_COLOR |
Disable colored output |
| Code | Meaning |
|---|---|
0 |
Success |
1 |
General error |
3 |
Authentication error |
4 |
Rate limited |
5 |
Not found |
6 |
Billing error |
7 |
Timeout |
8 |
Validation error |
muapi supports two MCP transport modes. Both expose the same 19 tools: image generate/edit, video generate/from-image, audio create/from-text, enhance (upscale/bg-remove/face-swap/ghibli), edit lipsync/clipping, predict result, upload file, keys list/create/delete, account balance/topup.
The hosted MCP server at https://api.muapi.ai/mcp uses the standard Streamable HTTP transport. Any MCP client can connect with just your API key — no CLI install needed.
Claude Code:
claude mcp add --transport http muapi \
https://api.muapi.ai/mcp \
--header "Authorization: Bearer YOUR_MUAPI_KEY"Cursor — add to mcp.json (Cmd+Shift+P → Open MCP settings):
{
"mcpServers": {
"muapi": {
"url": "https://api.muapi.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_MUAPI_KEY" }
}
}
}Windsurf — open Settings → MCP:
{
"mcpServers": {
"muapi": {
"serverUrl": "https://api.muapi.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_MUAPI_KEY" }
}
}
}Run the CLI as a local stdio MCP server. Requires the CLI to be installed.
muapi mcp serveClaude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"muapi": {
"command": "muapi",
"args": ["mcp", "serve"],
"env": { "MUAPI_API_KEY": "your-key-here" }
}
}
}Any stdio-compatible client — use the command + args pattern above, substituting your client's config format.
For more details on the self-hosted MCP server see muapi-mcp-server.
This repository also ships a Grok Build plugin that connects Grok to Muapi's hosted MCP
server. Install the muapi plugin from the Grok Build marketplace, then set
MUAPI_API_KEY in the environment used by Grok Build:
export MUAPI_API_KEY="YOUR_MUAPI_KEY"The plugin provides live model discovery plus image, video, audio, enhancement, editing, and async-result tools. Generation and enhancement consume Muapi credits; account top-ups, key management, and external publishing remain approval-gated by the plugin instructions.
For a direct project-local setup without waiting for marketplace review, add the hosted MCP server to Grok Build with:
grok mcp add --transport http muapi \
https://api.muapi.ai/mcp \
--header "Authorization: Bearer ${MUAPI_API_KEY}"# Full onboarding without human intervention
muapi auth register --email agent@example.com --password "secret"
muapi auth verify --email agent@example.com --otp 123456
muapi auth login --email agent@example.com --password "secret"
muapi account balance --output-json
muapi account topup --amount 10 --output-json --no-open
# Submit async, capture request_id, poll when ready
REQUEST_ID=$(muapi video generate "a dog on a beach" \
--model kling-master --no-wait --output-json --jq '.request_id' | tr -d '"')
muapi predict wait "$REQUEST_ID" --download ./outputs
# Chain: upload → edit → download
URL=$(muapi upload file ./photo.jpg --output-json --jq '.url' | tr -d '"')
muapi image edit "make it look like a painting" --image "$URL" \
--model flux-kontext-pro --download ./outputs
# Rotate API keys programmatically
NEW_KEY=$(muapi keys create --name "ci-$(date +%Y%m%d)" --output-json --jq '.api_key' | tr -d '"')
OLD_ID=$(muapi keys list --output-json --jq '.[0].id')
muapi keys delete "$OLD_ID" --yes
# Discover available endpoints
muapi docs openapi --jq '.paths | keys[]'muapi --install-completion bash
muapi --install-completion zsh
muapi --install-completion fish