@mrgoonie/multix 0.1.1 → 0.3.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 +40 -2
- package/dist/cli.js +676 -269
- package/package.json +1 -1
- package/skill/SKILL.md +105 -7
package/package.json
CHANGED
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), generate video (Veo, Hailuo, Seedance, Leonardo), TTS/STT/music (OpenAI, Gemini Flash TTS, MiniMax, ElevenLabs), 3D models (Hyper3D), analyze/transcribe media, convert documents to Markdown, optimize media via ffmpeg/ImageMagick. Use whenever the user wants to create, edit, or transform images/video/audio/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, ElevenLabs voice cloning, 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), 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), TTS/STT/music (OpenAI, Gemini Flash TTS, MiniMax, Cloudflare Workers AI MeloTTS, ElevenLabs), 3D models (BytePlus Hyper3D/Hitem3d), analyze/transcribe media, convert documents to Markdown, optimize media via ffmpeg/ImageMagick. 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, video generation, text-to-video, image-to-video, i2v, ElevenLabs voice cloning, or asks for batch media optimization.
|
|
4
|
+
version: 0.3.0 # x-release-please-version
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# multix — AI Multimodal CLI
|
|
@@ -12,8 +12,12 @@ Activate this skill when the user asks to:
|
|
|
12
12
|
- Generate images from a text prompt (any provider)
|
|
13
13
|
- **Edit/transform an existing image with a prompt** (image-to-image, alias `i2i`)
|
|
14
14
|
- Generate video from text or from a reference image (image-to-video, alias `i2v`)
|
|
15
|
+
- **Generate video via OpenRouter routed models** (Veo, Seedance, Kling — use `multix openrouter video-models` to list)
|
|
16
|
+
- **Generate video via BytePlus Seedance** directly (text-to-video, image-to-video, reference-to-video)
|
|
17
|
+
- **Generate video via Leonardo** (Motion, Veo, Kling, Hailuo, Seedance, LTX models)
|
|
18
|
+
- Generate images or speech with Cloudflare Workers AI, or video through Cloudflare AI Gateway's Replicate route
|
|
15
19
|
- Generate or clone a voice, run STT, generate music or sound effects
|
|
16
|
-
- Generate 3D models (Hyper3D / Hitem3d)
|
|
20
|
+
- Generate 3D models (BytePlus Hyper3D / Hitem3d)
|
|
17
21
|
- Analyze, transcribe, or extract structured data from media/docs
|
|
18
22
|
- Convert PDFs / DOCX / images to Markdown
|
|
19
23
|
- Optimize, resize, batch-convert, or split video/audio/image files
|
|
@@ -23,11 +27,14 @@ Activate this skill when the user asks to:
|
|
|
23
27
|
```
|
|
24
28
|
GEMINI_API_KEY # Google AI Studio
|
|
25
29
|
OPENAI_API_KEY # OpenAI API (image, image edit, TTS, STT)
|
|
26
|
-
OPENROUTER_API_KEY # OpenRouter (multi-model gateway)
|
|
30
|
+
OPENROUTER_API_KEY # OpenRouter (multi-model gateway: image + video via Veo, Seedance, Kling)
|
|
27
31
|
MINIMAX_API_KEY # MiniMax (image/video/speech/music)
|
|
28
32
|
LEONARDO_API_KEY # Leonardo.Ai (image/video/upscale)
|
|
29
33
|
BYTEPLUS_API_KEY # BytePlus / Volcengine ARK (Seedream/Seedance/Hyper3D)
|
|
30
34
|
ELEVENLABS_API_KEY # ElevenLabs (TTS, cloning, STT, music, dubbing)
|
|
35
|
+
CLOUDFLARE_ACCOUNT_ID # Cloudflare Workers AI / AI Gateway account
|
|
36
|
+
CLOUDFLARE_API_TOKEN # Cloudflare Workers AI / AI Gateway token
|
|
37
|
+
# Video additionally requires CLOUDFLARE_AI_GATEWAY_ID and REPLICATE_API_TOKEN.
|
|
31
38
|
```
|
|
32
39
|
|
|
33
40
|
Priority: `process.env` > `cwd/.env` > `~/.multix/.env`.
|
|
@@ -55,9 +62,35 @@ multix check [--verbose]
|
|
|
55
62
|
| OpenRouter | `multix openrouter generate --prompt "<text>" [--model <id>] [--aspect-ratio 16:9] [--image-size 2K] [--num-images N]` | Default `google/gemini-3.1-flash-image-preview` |
|
|
56
63
|
| Leonardo | `multix leonardo generate "<text>" [-w 1024 -h 1024] [--alchemy] [--ultra] [--quality HIGH]` | Polls until done, downloads automatically |
|
|
57
64
|
| BytePlus | `multix byteplus generate --prompt "<text>" [--model seedream-4-0-250828] [--size 2K] [--aspect-ratio 16:9] [-n N] [--input-image <path\|url>]` | Sync |
|
|
65
|
+
| Cloudflare | `multix cloudflare generate --prompt "<text>" [--steps 1-8] [--seed <n>]` | Workers AI FLUX.1 Schnell only |
|
|
58
66
|
|
|
59
67
|
Aspect ratios (most providers): `1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9`.
|
|
60
68
|
|
|
69
|
+
## Cloudflare media
|
|
70
|
+
|
|
71
|
+
Cloudflare image and speech use the [Workers AI REST API](https://developers.cloudflare.com/workers-ai/get-started/rest-api/) with `CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN`. `CLOUDFLARE_AI_GATEWAY_ID` is optional for those Workers AI calls, but required with `REPLICATE_API_TOKEN` for video. The CLI deliberately supports only the fixed models shown here; it does not expose an arbitrary Workers AI catalog.
|
|
72
|
+
|
|
73
|
+
`CLOUDFLARE_AI_GATEWAY_COLLECT_LOG_PAYLOAD` defaults to `false`; set it to `true` only to explicitly opt in to AI Gateway request-payload collection. It controls a gateway request header, not multix CLI logging: the CLI does not log credential values or provider output URLs.
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Workers AI image (FLUX.1 Schnell; sync)
|
|
77
|
+
multix cloudflare generate --prompt "a cyberpunk cat" \
|
|
78
|
+
[--model @cf/black-forest-labs/flux-1-schnell] [--steps 1-8] [--seed <n>] [--output <path>] [-v]
|
|
79
|
+
|
|
80
|
+
# Workers AI speech (MeloTTS; sync, saves MP3)
|
|
81
|
+
multix cloudflare generate-speech --text "Hello world" \
|
|
82
|
+
[--lang <code>] [--model @cf/myshell-ai/melotts] [--output <path>] [-v]
|
|
83
|
+
|
|
84
|
+
# Replicate prunaai/p-video through Cloudflare AI Gateway; no native Workers AI video
|
|
85
|
+
multix cloudflare generate-video --prompt "Ocean waves" \
|
|
86
|
+
[--duration 5] [--aspect-ratio 16:9] [--resolution 720p] [--fps 24] \
|
|
87
|
+
[--wait] [--wait-timeout 600000] [--download] [--output <path>] [-v]
|
|
88
|
+
multix cloudflare video-status <predictionId> \
|
|
89
|
+
[--wait] [--wait-timeout 600000] [--download] [--output <path>] [-v]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Video follows Cloudflare's documented [Replicate AI Gateway route](https://developers.cloudflare.com/ai-gateway/usage/providers/replicate/). `generate-video` returns a prediction ID unless `--wait` or `--download` is passed; either waits, saves the completed MP4, and prints its local path. For `video-status`, `--wait` reports the terminal status and `--download` implies waiting plus saves the MP4. No Cloudflare video command prints the provider output URL.
|
|
93
|
+
|
|
61
94
|
## Image-to-image (edit existing image with a prompt)
|
|
62
95
|
|
|
63
96
|
Every supported provider exposes `image-to-image` and the alias `i2i`. Refs accept local file path OR URL.
|
|
@@ -138,8 +171,9 @@ multix gemini i2v ./photo.jpg --prompt "camera pans left" [--last-frame <path>]
|
|
|
138
171
|
# MiniMax Hailuo — async with auto-poll
|
|
139
172
|
multix minimax generate-video --prompt "A dancer" --duration 6 --resolution 1080P [--first-frame <url>]
|
|
140
173
|
|
|
141
|
-
# OpenRouter
|
|
142
|
-
multix openrouter i2v --prompt "<text>" --image-url https://... [--
|
|
174
|
+
# OpenRouter — video via routed models (Veo, Seedance, Kling); async, URL input only
|
|
175
|
+
multix openrouter i2v --prompt "<text>" --image-url https://... [--model google/veo-3.1] [--resolution 720p]
|
|
176
|
+
multix openrouter video-models # list all available video models
|
|
143
177
|
multix openrouter video-status <jobId> [--download] [--output <path>]
|
|
144
178
|
|
|
145
179
|
# Leonardo MOTION2 / VEO3 / kling
|
|
@@ -152,7 +186,31 @@ multix byteplus i2v ./photo.jpg --prompt "<text>"
|
|
|
152
186
|
multix byteplus reference-to-video --prompt "<text>" --ref-image ./hero.jpg:subject ...
|
|
153
187
|
```
|
|
154
188
|
|
|
155
|
-
|
|
189
|
+
Most video commands accept `--wait`, `--wait-timeout <ms>`, `--download`, `--output <path>`, `--no-thumb`. Cloudflare video has no thumbnail flags; see [Cloudflare media](#cloudflare-media) for its distinct `--wait` and `--download` behavior.
|
|
190
|
+
|
|
191
|
+
### Decision tree — which provider to pick for video generation
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
User wants to generate a video?
|
|
195
|
+
├── Text-to-video?
|
|
196
|
+
│ ├── Gemini Veo (experimental, Google billing) → multix gemini generate-video
|
|
197
|
+
│ ├── MiniMax Hailuo (async, auto-poll) → multix minimax generate-video
|
|
198
|
+
│ ├── Leonardo (Motion/Veo/Kling/Hailuo/Seedance/LTX) → multix leonardo video
|
|
199
|
+
│ └── BytePlus Seedance 2.0 (direct) → multix byteplus video
|
|
200
|
+
├── Image-to-video?
|
|
201
|
+
│ ├── Gemini Veo (experimental) → multix gemini i2v
|
|
202
|
+
│ ├── OpenRouter (Veo, Seedance, Kling — URL input) → multix openrouter i2v --image-url <url>
|
|
203
|
+
│ ├── Leonardo (needs imageId from Leonardo upload) → multix leonardo i2v
|
|
204
|
+
│ └── BytePlus Seedance 2.0 (local file or URL) → multix byteplus i2v
|
|
205
|
+
└── Multi-reference video (images + videos + audio)? → multix byteplus reference-to-video
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Provider selection hints for agents
|
|
209
|
+
|
|
210
|
+
- **OpenRouter video** supports Veo, Seedance, Kling, and more via model routing. Image input must be a URL (not a local file). Run `multix openrouter video-models` to discover available models.
|
|
211
|
+
- **BytePlus Seedance** is the best choice when `BYTEPLUS_API_KEY` is available and you need text-to-video, image-to-video (local file or URL), or multi-reference video.
|
|
212
|
+
- **Leonardo** offers the widest model selection (Motion, Veo, Kling, Hailuo, Seedance, LTX) but requires a Leonardo API key.
|
|
213
|
+
- If one provider's key is unavailable, fall back to another that supports the same capability.
|
|
156
214
|
|
|
157
215
|
## Speech, music, voice, 3D, docs, media
|
|
158
216
|
|
|
@@ -203,8 +261,48 @@ Files saved under `./multix-output/` by default. Override with `MULTIX_OUTPUT_DI
|
|
|
203
261
|
| `LEONARDO_DEFAULT_MODEL` / `LEONARDO_VIDEO_MODEL` | Leonardo model defaults |
|
|
204
262
|
| `BYTEPLUS_IMAGE_MODEL` / `BYTEPLUS_VIDEO_MODEL` / `BYTEPLUS_3D_MODEL` | BytePlus model defaults |
|
|
205
263
|
| `BYTEPLUS_VIDEO_PARAMS_MODE` | `flags` (default) or `structured` |
|
|
264
|
+
| `CLOUDFLARE_ACCOUNT_ID` / `CLOUDFLARE_API_TOKEN` | Required for Cloudflare Workers AI image/speech and AI Gateway video |
|
|
265
|
+
| `CLOUDFLARE_AI_GATEWAY_ID` | Optional for native Cloudflare image/speech; required for Cloudflare video |
|
|
266
|
+
| `CLOUDFLARE_AI_GATEWAY_COLLECT_LOG_PAYLOAD` | Set `true` to explicitly opt in to AI Gateway request-payload collection; defaults to `false` |
|
|
267
|
+
| `REPLICATE_API_TOKEN` | Required for Cloudflare AI Gateway video |
|
|
268
|
+
| `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 |
|
|
206
269
|
| `MULTIX_DISABLE_HOME_ENV` | `1` to skip `~/.multix/.env` |
|
|
207
270
|
|
|
271
|
+
## Quick examples for agents
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# Text-to-image
|
|
275
|
+
multix openai generate --prompt "A sunset over mountains"
|
|
276
|
+
multix gemini generate --prompt "A sunset over mountains" --aspect-ratio 16:9
|
|
277
|
+
multix openrouter generate --prompt "A sunset over mountains" --num-images 2
|
|
278
|
+
multix byteplus generate --prompt "A sunset over mountains" --size 2K
|
|
279
|
+
|
|
280
|
+
# Image-to-image (edit an existing image)
|
|
281
|
+
multix gemini i2i --prompt "make it watercolor" --ref ./photo.jpg
|
|
282
|
+
multix openrouter i2i --prompt "make it cyberpunk" --ref ./photo.jpg
|
|
283
|
+
|
|
284
|
+
# Text-to-video
|
|
285
|
+
multix byteplus video --prompt "Ocean waves crashing on rocks" --duration 8
|
|
286
|
+
multix leonardo video "Ocean waves crashing on rocks" --model kling-2.6
|
|
287
|
+
multix gemini generate-video --prompt "Ocean waves crashing on rocks"
|
|
288
|
+
|
|
289
|
+
# Image-to-video
|
|
290
|
+
multix openrouter i2v --prompt "camera slowly pans left" --image-url https://example.com/photo.jpg
|
|
291
|
+
multix byteplus i2v ./photo.jpg --prompt "camera slowly pans left"
|
|
292
|
+
|
|
293
|
+
# Transcribe / analyze media
|
|
294
|
+
multix gemini analyze --files ./video.mp4 --prompt "Summarize this video"
|
|
295
|
+
multix gemini transcribe --files ./audio.mp3
|
|
296
|
+
multix elevenlabs transcribe --input ./audio.mp3 --diarize
|
|
297
|
+
|
|
298
|
+
# Compress / split media
|
|
299
|
+
multix media optimize --input large.mp4 --output small.mp4 --target-size 50
|
|
300
|
+
multix media split --input long-video.mp4 --chunk-duration 600
|
|
301
|
+
|
|
302
|
+
# Convert document to markdown
|
|
303
|
+
multix doc convert --input report.pdf --auto-name
|
|
304
|
+
```
|
|
305
|
+
|
|
208
306
|
## Security & scope
|
|
209
307
|
|
|
210
308
|
This skill produces shell commands for the local `multix` CLI. It does NOT execute the commands itself, exfiltrate API keys, or modify provider accounts.
|