@mrgoonie/multix 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mrgoonie/multix",
3
- "version": "0.10.0",
4
- "description": "AI multimodal CLI — OpenAI, Gemini, MiniMax, OpenRouter, Leonardo, BytePlus, ElevenLabs, fal.ai, ffmpeg, ImageMagick, doc-to-md",
3
+ "version": "0.12.0",
4
+ "description": "AI multimodal CLI — OpenAI, Gemini, MiniMax, OpenRouter, Leonardo, BytePlus, ElevenLabs, fal.ai, Atlas Cloud, Replicate, ffmpeg, ImageMagick, doc-to-md",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "multix": "./dist/cli.js"
@@ -49,6 +49,8 @@
49
49
  "leonardo-ai",
50
50
  "fal",
51
51
  "fal-ai",
52
+ "atlascloud",
53
+ "replicate",
52
54
  "ffmpeg",
53
55
  "imagemagick",
54
56
  "media",
package/skill/SKILL.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: multix
3
- description: AI multimodal CLI — generate and edit images (OpenAI, Codex driver, Gemini Nano Banana, Imagen, MiniMax, OpenRouter, Leonardo, BytePlus Seedream, Cloudflare Workers AI FLUX.1 Schnell, fal.ai FLUX), generate video (Gemini Veo, MiniMax Hailuo, OpenRouter via Veo/Seedance/Kling, Leonardo via Motion/Veo/Kling/Hailuo/Seedance/LTX, BytePlus Seedance, Cloudflare AI Gateway via Replicate, fal.ai queue models), TTS/STT/music (OpenAI, Gemini Flash TTS incl. Gemini 3.8 with delivery-style control, MiniMax, Cloudflare Workers AI MeloTTS, ElevenLabs), 3D models (BytePlus Hyper3D/Hitem3d), analyze/transcribe media, convert documents to Markdown, optimize media via ffmpeg/ImageMagick, and self-update the CLI. Use whenever the user wants to create, edit, or transform images/video/audio/3D/documents from a CLI, mentions any of: OpenAI, Codex image driver, image-to-image, i2i, image edit, watercolor/cyberpunk style transfer, reference image, OpenRouter, Nano Banana, Flux, Seedream, Veo, Hailuo, Seedance, Kling, Cloudflare Workers AI, AI Gateway, fal.ai, video generation, text-to-video, image-to-video, i2v, ElevenLabs voice cloning, updating/upgrading multix, or asks for batch media optimization.
4
- version: 0.10.0 # x-release-please-version
3
+ description: AI multimodal CLI — generate and edit images (OpenAI, Codex driver, Gemini Nano Banana, Imagen, MiniMax, OpenRouter, Leonardo, BytePlus Seedream, Cloudflare Workers AI FLUX.1 Schnell, fal.ai FLUX, Replicate FLUX), generate video (Gemini Veo, MiniMax Hailuo, OpenRouter via Veo/Seedance/Kling, Leonardo via Motion/Veo/Kling/Hailuo/Seedance/LTX, BytePlus Seedance, Cloudflare AI Gateway via Replicate, fal.ai queue models, Replicate direct API models incl. P-Video), TTS/STT/music (OpenAI, Gemini Flash TTS incl. Gemini 3.8 with delivery-style control, MiniMax, Cloudflare Workers AI MeloTTS, ElevenLabs), 3D models (BytePlus Hyper3D/Hitem3d), analyze/transcribe media, convert documents to Markdown, optimize media via ffmpeg/ImageMagick, and self-update the CLI. Use whenever the user wants to create, edit, or transform images/video/audio/3D/documents from a CLI, mentions any of: OpenAI, Codex image driver, image-to-image, i2i, image edit, watercolor/cyberpunk style transfer, reference image, OpenRouter, Nano Banana, Flux, Seedream, Veo, Hailuo, Seedance, Kling, Cloudflare Workers AI, AI Gateway, fal.ai, Atlas Cloud, Replicate, replicate.com models, Replicate predictions, video generation, text-to-video, image-to-video, i2v, ElevenLabs voice cloning, updating/upgrading multix, or asks for batch media optimization.
4
+ version: 0.12.0 # x-release-please-version
5
5
  ---
6
6
 
7
7
  # multix — AI Multimodal CLI
@@ -22,6 +22,8 @@ Activate this skill when the user asks to:
22
22
  - Convert PDFs / DOCX / images to Markdown
23
23
  - Optimize, resize, batch-convert, or split video/audio/image files
24
24
  - Run any fal.ai model (generic queue-API runner), or fal.ai's default image/video models
25
+ - Run any Atlas Cloud model (image, image edit, video, TTS/STT, 3D) with schema-validated inputs and resumable async predictions
26
+ - Run any Replicate model (official or versioned) via the direct API, generate Replicate images/video, or resume/cancel a Replicate prediction by id
25
27
  - Update multix itself to the latest (or a given dist-tag) npm version
26
28
 
27
29
  ## Self-update
@@ -43,6 +45,8 @@ LEONARDO_API_KEY # Leonardo.Ai (image/video/upscale)
43
45
  BYTEPLUS_API_KEY # BytePlus / Volcengine ARK (Seedream/Seedance/Hyper3D)
44
46
  ELEVENLABS_API_KEY # ElevenLabs (TTS, cloning, STT, music, dubbing)
45
47
  FAL_KEY # fal.ai (generic queue-API model runner, image/video)
48
+ ATLASCLOUD_API_KEY # Atlas Cloud (any model: image, edit, video, audio, 3D)
49
+ REPLICATE_API_TOKEN # Replicate direct API (REPLICATE_API_KEY accepted as fallback)
46
50
  CLOUDFLARE_ACCOUNT_ID # Cloudflare Workers AI / AI Gateway account
47
51
  CLOUDFLARE_API_TOKEN # Cloudflare Workers AI / AI Gateway token
48
52
  # Video additionally requires CLOUDFLARE_AI_GATEWAY_ID and REPLICATE_API_TOKEN.
@@ -79,6 +83,8 @@ multix check [--verbose]
79
83
  | BytePlus | `multix byteplus generate --prompt "<text>" [--model seedream-4-0-250828] [--size 2K] [--aspect-ratio 16:9] [-n N] [--input-image <path\|url>]` | Sync |
80
84
  | Cloudflare | `multix cloudflare generate --prompt "<text>" [--steps 1-8] [--seed <n>]` | Workers AI FLUX.1 Schnell only |
81
85
  | fal.ai | `multix fal image "<text>" [-m <model>] [--image-size square_hd] [-n N] [--seed <n>]` | Default `fal-ai/flux/schnell`; also `multix fal run <model> --input <json\|@file>` for any fal model |
86
+ | Atlas Cloud | `multix atlas image "<text>" [-m <model>] [--size <size>] [--aspect-ratio 1:1] [-n N] [--seed <n>]` | Default `black-forest-labs/flux-schnell`; flags are validated against the model's schema |
87
+ | Replicate | `multix replicate image "<text>" [-m <owner/name>] [--aspect-ratio 16:9] [-n N] [--seed <n>]` | Default `black-forest-labs/flux-schnell`; also `multix replicate run <model> --input <json\|@file>` for any model |
82
88
 
83
89
  Aspect ratios (most providers): `1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9`.
84
90
 
@@ -128,6 +134,50 @@ multix fal status <model> <requestId>
128
134
  multix fal result <model> <requestId> [--download]
129
135
  ```
130
136
 
137
+ ## Atlas Cloud
138
+
139
+ Auth is `Authorization: Bearer $ATLASCLOUD_API_KEY`; the media API base is `https://api.atlascloud.ai/api/v1`. Each job is an async prediction: commands wait (bounded by `--wait-timeout`) and download to `MULTIX_OUTPUT_DIR` as `atlas-<idprefix>-NN.<ext>`. `--async` prints only the prediction id on stdout (progress goes to stderr) so scripts can capture it. A failed prediction, or a partial download, exits non-zero with a resume command.
140
+
141
+ Inputs are model-specific. multix reads the model's published schema and maps flags onto its field names (`size`/`image_size`, `images[]`/`image`, `audio_url`/`audio`). Unsupported flags and invalid values fail before anything is billed, and the error lists the accepted values. Pass `--no-validate` to skip this check.
142
+
143
+ ```bash
144
+ multix atlas image "a red fox in the snow" [-m <model>] [--size <size>] [--aspect-ratio 1:1] [-n 1] [--seed <n>]
145
+ multix atlas image-to-image --prompt "make it dusk" --ref ./photo.png # default openai/gpt-image-1-mini/edit
146
+ multix atlas video "waves at sunset" [--duration <s>] [--resolution 720p] # default bytedance/seedance-v1-pro-fast/text-to-video
147
+ multix atlas image-to-video --ref ./frame.png [--prompt "slow pan"]
148
+ multix atlas audio "Hello from multix" [--voice <id>] # TTS, default xai/tts-v1
149
+ multix atlas audio --audio ./meeting.mp3 # STT, transcript printed to stdout
150
+ multix atlas 3d "a low-poly treasure chest" [--ref ./object.png] # tencent/hunyuan3d-rapid
151
+ multix atlas run <modelId> --input '{"prompt":"a cat"}' [--type image|video|audio]
152
+
153
+ # Async + resume
154
+ id=$(multix atlas video "waves" --async)
155
+ multix atlas status "$id" --wait --download [--output <path>]
156
+ ```
157
+
158
+ `--ref` takes one value per flag; repeat it for several references. Local `--ref` and `--audio` files are uploaded first (`multix atlas upload <file>` prints only a temporary URL). Uploads accept only image, video and audio files up to 200 MB (`ATLASCLOUD_MAX_UPLOAD_MB`). `run --no-validate` skips the schema, so pass `--type` with it. Atlas Cloud has no cancel endpoint.
159
+
160
+ ## Replicate
161
+
162
+ Direct Replicate API (`Authorization: Bearer $REPLICATE_API_TOKEN`, fallback `REPLICATE_API_KEY`), separate from the Cloudflare AI Gateway route. Official models (`owner/name`) run on the model endpoint; community models need `owner/name:version`, a bare version id, or `--version`. Commands wait with bounded polling by default and download every media output as `replicate-<id8>-NN.<ext>` (first 8 characters of the prediction id). A partial download failure exits non-zero with a `status <id> --download` retry command. `replicate image` converts to WebP unless `--image-format original`/`--no-webp`, an explicit `--output-format`, or a non-`.webp` `--output` is given.
163
+
164
+ ```bash
165
+ # Generic runner (input is passed through unchanged; --file uploads local files into an input key)
166
+ multix replicate run black-forest-labs/flux-schnell --input '{"prompt":"a cyberpunk cat"}'
167
+ multix replicate run owner/model:<version-id> --input @payload.json [--file image=./photo.png]
168
+
169
+ # Image (default black-forest-labs/flux-schnell) and video (default prunaai/p-video; --image for image-to-video)
170
+ multix replicate image "a futuristic city" [-m <owner/name>] [--aspect-ratio 16:9] [-n 1] [--output-format png]
171
+ multix replicate video "a cinematic establishing shot" [--image <path|url>] [--duration 5] [--input '{"draft":true}']
172
+
173
+ # Long jobs: submit async, keep the id, resume or cancel later without re-running
174
+ multix replicate video "a slow pan over mountains" --async
175
+ multix replicate status <prediction-id> --wait --download
176
+ multix replicate cancel <prediction-id>
177
+ ```
178
+
179
+ Shared flags: `--async`, `--wait`, `--prefer-wait [seconds]` (sends `Prefer: wait=N`, still polls if unfinished), `--wait-timeout <ms>`, `--no-download` (print URLs), `--output <path|dir/>`. `failed`/`canceled`/`aborted` predictions exit non-zero. Local files up to 256 KB are inlined as data URIs; larger files (< 100 MB) go through the Replicate Files API.
180
+
131
181
  ## Image-to-image (edit existing image with a prompt)
132
182
 
133
183
  Every supported provider exposes `image-to-image` and the alias `i2i`. Refs accept local file path OR URL.
@@ -317,11 +367,17 @@ Requires `cwebp` (libwebp: `brew install webp`, `apt install webp`) on `PATH`.
317
367
  | `BYTEPLUS_VIDEO_PARAMS_MODE` | `flags` (default) or `structured` |
318
368
  | `FAL_BASE_URL` | Override fal queue base (default `https://queue.fal.run`) |
319
369
  | `FAL_IMAGE_MODEL` / `FAL_VIDEO_MODEL` | fal.ai default model ids (default `fal-ai/flux/schnell`, `fal-ai/kling-video/v1.6/standard/text-to-video`) |
370
+ | `ATLASCLOUD_BASE_URL` | Override Atlas Cloud media API base (default `https://api.atlascloud.ai/api/v1`) |
371
+ | `ATLASCLOUD_IMAGE_MODEL` / `ATLASCLOUD_IMAGE_EDIT_MODEL` / `ATLASCLOUD_VIDEO_MODEL` / `ATLASCLOUD_IMAGE_TO_VIDEO_MODEL` / `ATLASCLOUD_TTS_MODEL` / `ATLASCLOUD_STT_MODEL` / `ATLASCLOUD_TEXT_TO_3D_MODEL` / `ATLASCLOUD_IMAGE_TO_3D_MODEL` | Atlas Cloud default model ids per command |
372
+ | `ATLASCLOUD_MAX_UPLOAD_MB` | Size limit for local files uploaded to Atlas Cloud (default 200) |
320
373
  | `GEMINI_TTS_MODEL` / `TTS_MODEL` | Override Gemini TTS model (default `gemini-3.8-flash-lite-tts`) |
321
374
  | `CLOUDFLARE_ACCOUNT_ID` / `CLOUDFLARE_API_TOKEN` | Required for Cloudflare Workers AI image/speech and AI Gateway video |
322
375
  | `CLOUDFLARE_AI_GATEWAY_ID` | Optional for native Cloudflare image/speech; required for Cloudflare video |
323
376
  | `CLOUDFLARE_AI_GATEWAY_COLLECT_LOG_PAYLOAD` | Set `true` to explicitly opt in to AI Gateway request-payload collection; defaults to `false` |
324
- | `REPLICATE_API_TOKEN` | Required for Cloudflare AI Gateway video |
377
+ | `REPLICATE_API_TOKEN` | Replicate direct API token (`multix replicate`); also required for Cloudflare AI Gateway video |
378
+ | `REPLICATE_API_KEY` | Fallback for `REPLICATE_API_TOKEN` (direct `multix replicate` only) |
379
+ | `REPLICATE_BASE_URL` | Override Replicate API root (default `https://api.replicate.com/v1`) |
380
+ | `REPLICATE_IMAGE_MODEL` / `REPLICATE_VIDEO_MODEL` | Replicate default models (default `black-forest-labs/flux-schnell`, `prunaai/p-video`) |
325
381
  | `CLOUDFLARE_AI_IMAGE_MODEL` / `CLOUDFLARE_AI_TTS_MODEL` | Fixed-model settings: only `@cf/black-forest-labs/flux-1-schnell` and `@cf/myshell-ai/melotts` respectively are accepted |
326
382
  | `MULTIX_DISABLE_HOME_ENV` | `1` to skip every home-directory env file (`~/.multix/.env`, `~/.claude/...`) |
327
383
  | `MULTIX_LEGACY_CLAUDE_ENV` | `1` to also read legacy `.claude` env files (credential names only) |
@@ -365,6 +421,14 @@ multix doc convert --input report.pdf --auto-name
365
421
  multix fal image "A sunset over mountains"
366
422
  multix fal run fal-ai/flux/schnell --input '{"prompt":"A sunset over mountains"}'
367
423
 
424
+ # Atlas Cloud
425
+ multix atlas image "A sunset over mountains"
426
+ multix atlas status "$(multix atlas video "Ocean waves" --async)" --wait --download
427
+
428
+ # Replicate
429
+ multix replicate image "A sunset over mountains"
430
+ multix replicate video "A sunset timelapse" --async # then: multix replicate status <id> --wait --download
431
+
368
432
  # Self-update
369
433
  multix update --check
370
434
  multix update