@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/CHANGELOG.md +14 -0
- package/README.md +84 -2
- package/dist/cli.js +5842 -3630
- package/package.json +4 -2
- package/skill/SKILL.md +67 -3
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrgoonie/multix",
|
|
3
|
-
"version": "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.
|
|
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` |
|
|
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
|