@mrgoonie/multix 0.6.0 → 0.7.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 CHANGED
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.7.0](https://github.com/mrgoonie/multix-cli/compare/v0.6.0...v0.7.0) (2026-09-24)
9
+
10
+
11
+ ### Added
12
+
13
+ * add self-update command, fal.ai provider, and fix release node version ([#48](https://github.com/mrgoonie/multix-cli/issues/48)) ([9881d33](https://github.com/mrgoonie/multix-cli/commit/9881d33ef336471845b933422e443ae63f973bed))
14
+ * **gemini:** add gemini 3.8 flash and flash-lite tts via interactions api ([#46](https://github.com/mrgoonie/multix-cli/issues/46)) ([216ce1f](https://github.com/mrgoonie/multix-cli/commit/216ce1f1deb4ad08cb8d04641a98646aae93d2f8))
15
+
8
16
  ## [0.6.0](https://github.com/mrgoonie/multix-cli/compare/v0.5.2...v0.6.0) (2026-09-23)
9
17
 
10
18
 
package/README.md CHANGED
@@ -4,7 +4,7 @@ AI multimodal CLI — generate images/video/speech/music, analyze and transcribe
4
4
 
5
5
  ![Isometric technical illustration of multix media workflows](docs-site/public/images/multix-isometric-banner.png)
6
6
 
7
- Supports **OpenAI** (image, image edits, TTS, STT, optional Codex image driver), **Gemini** (analyze, transcribe, generate, Veo video, Flash TTS), **MiniMax** (image, video, speech, music), **OpenRouter** (image generation), **Leonardo.Ai** (image, video, upscale), **BytePlus** (Seedream image, Seedance video, Hyper3D / Hitem3d 3D), **Cloudflare** (Workers AI image and speech; AI Gateway-routed Replicate video), and **ElevenLabs** (TTS, voice cloning, STT, voice changer, SFX, music, dubbing, isolation, alignment).
7
+ Supports **OpenAI** (image, image edits, TTS, STT, optional Codex image driver), **Gemini** (analyze, transcribe, generate, Veo video, Flash TTS), **MiniMax** (image, video, speech, music), **OpenRouter** (image generation), **Leonardo.Ai** (image, video, upscale), **BytePlus** (Seedream image, Seedance video, Hyper3D / Hitem3d 3D), **Cloudflare** (Workers AI image and speech; AI Gateway-routed Replicate video), **ElevenLabs** (TTS, voice cloning, STT, voice changer, SFX, music, dubbing, isolation, alignment), and **fal.ai** (generic model runner, image, video via the fal queue API).
8
8
 
9
9
  ## Documentation
10
10
 
@@ -65,6 +65,11 @@ Set at least one provider key. Add to `.env` in your project root or `~/.multix/
65
65
  | `LEONARDO_VIDEO_MODEL` | No | Default Leonardo video model (default `MOTION2`) |
66
66
  | `BYTEPLUS_API_KEY` | For BytePlus | [BytePlus](https://console.byteplus.com/auth/api-keys) |
67
67
  | `ELEVENLABS_API_KEY` | For ElevenLabs | [ElevenLabs](https://elevenlabs.io/app/settings/api-keys) |
68
+ | `FAL_KEY` | For fal.ai | [fal.ai](https://fal.ai/dashboard/keys) |
69
+ | `FAL_BASE_URL` | No | Override fal queue base (default `https://queue.fal.run`) |
70
+ | `FAL_IMAGE_MODEL` | No | Default fal image model (default `fal-ai/flux/schnell`) |
71
+ | `FAL_VIDEO_MODEL` | No | Default fal text-to-video model (default `fal-ai/kling-video/v1.6/standard/text-to-video`) |
72
+ | `FAL_VIDEO_IMAGE_MODEL` | No | Default fal image-to-video model, used when `--image-url` is passed without `-m` (default `fal-ai/kling-video/v1.6/standard/image-to-video`) |
68
73
  | `ARK_API_KEY` | No | Fallback for `BYTEPLUS_API_KEY` (Volcengine ARK shared name) |
69
74
  | `BYTEPLUS_BASE_URL` | No | Override BytePlus base (default `https://ark.ap-southeast.bytepluses.com/api/v3`) |
70
75
  | `BYTEPLUS_IMAGE_MODEL` | No | Default Seedream model (default `seedream-4-0-250828`) |
@@ -88,7 +93,7 @@ Set at least one provider key. Add to `.env` in your project root or `~/.multix/
88
93
  | `IMAGE_GEN_MODEL` | No | Override Gemini image generation model |
89
94
  | `VIDEO_GEN_MODEL` | No | Override Gemini video generation model |
90
95
  | `GEMINI_MODEL` / `MULTIMODAL_MODEL` | No | Override Gemini analyze/transcribe/extract model (doc convert uses `--model`; default `gemini-3.6-flash`) |
91
- | `GEMINI_TTS_MODEL` / `TTS_MODEL` | No | Override Gemini TTS model (default `gemini-3.1-flash-tts-preview`) |
96
+ | `GEMINI_TTS_MODEL` / `TTS_MODEL` | No | Override Gemini TTS model (default `gemini-3.8-flash-lite-tts`) |
92
97
 
93
98
  Priority: `process.env` > `cwd/.env` > `~/.multix/.env`.
94
99
 
@@ -104,6 +109,19 @@ multix check [--verbose]
104
109
 
105
110
  Exits 0 if at least one provider key is configured, or authenticated Codex image capability is available. Exits 1 if no provider is usable or Gemini auth fails.
106
111
 
112
+ ### `multix update`
113
+
114
+ Update the CLI itself to the latest (or a given dist-tag) version published on npm.
115
+
116
+ ```
117
+ multix update [--check] [--tag <tag>] [--dry-run] [-v]
118
+ ```
119
+
120
+ - Detects how `multix` was installed (npm, pnpm, yarn, or bun global) from the running binary's path and runs the matching global-install command, e.g. `npm i -g @mrgoonie/multix@latest`.
121
+ - `--check` only compares the current version against the npm registry; it never installs.
122
+ - `--tag <tag>` installs a dist-tag such as `beta` instead of `latest`. Passing `--tag` always installs the requested tag, skipping the "already up to date" comparison that applies to the default `latest` flow.
123
+ - `--dry-run` prints the install command instead of running it.
124
+
107
125
  ### `multix gemini`
108
126
 
109
127
  ```bash
@@ -129,7 +147,7 @@ multix gemini generate-video --prompt "Ocean waves" [--model veo-3.1-generate-pr
129
147
  multix gemini image-to-video <imagePath> --prompt "camera pans left" [--last-frame <path>] [--model veo-3.1-generate-preview] [--resolution 1080p] [--aspect-ratio 16:9] [--output <path>] [-v]
130
148
 
131
149
  # Text-to-speech (Gemini 3.1 Flash TTS — single & multi-speaker)
132
- multix gemini generate-speech (--text|--prompt) "Say cheerfully: Have a wonderful day!" [--model gemini-3.1-flash-tts-preview] [--voice Kore] [--output-format wav|pcm] [--output <path>] [-v]
150
+ multix gemini generate-speech (--text|--prompt) "Have a wonderful day!" [--model gemini-3.8-flash-lite-tts] [--voice Kore] [--style "cheerful and friendly"] [--output-format wav|pcm] [--output <path>] [-v]
133
151
 
134
152
  # Multi-speaker (max 2): repeat --speaker name:voice; prompt should prefix lines with "<name>:"
135
153
  multix gemini generate-speech --text "Joe: How's it going? Jane: Not too bad!" \
@@ -140,7 +158,7 @@ multix gemini generate-speech --text "Joe: How's it going? Jane: Not too bad!" \
140
158
  - Text output (analyze, transcribe, extract, doc convert): `gemini-3.6-flash` (default), `gemini-3.5-flash` (manual override)
141
159
  - Image gen: `gemini-3.1-flash-image-preview` (Nano Banana 2, fastest), `gemini-3-pro-image-preview` (4K text), `imagen-4.0-generate-001` (production)
142
160
  - Video: `veo-3.1-generate-preview` (requires billing)
143
- - TTS: `gemini-3.1-flash-tts-preview` (default), `gemini-2.5-flash-preview-tts`, `gemini-2.5-pro-preview-tts`
161
+ - TTS: `gemini-3.8-flash-lite-tts` (default, fast/cheap, 101 languages), `gemini-3.8-flash-tts` (highest fidelity, 130 languages), legacy `gemini-3.1-flash-tts-preview`, `gemini-2.5-flash-preview-tts`, `gemini-2.5-pro-preview-tts`. Gemini 3.8 models use the Interactions API, read the text verbatim, take delivery direction via `--style`, and also accept custom `voice_…`/`voicekey_…` voice ids.
144
162
 
145
163
  `gemini-3.6-flash` is a text-output model. Use Nano Banana/Imagen for images, Veo for video, and Gemini Flash TTS for speech.
146
164
 
@@ -425,6 +443,33 @@ multix elevenlabs models
425
443
  - Dubbing is async: submit → poll → download per-language tracks.
426
444
  - Output format strings combine codec + sample rate + bitrate, e.g. `mp3_44100_128`, `pcm_24000`, `ulaw_8000`.
427
445
 
446
+ ### `multix fal`
447
+
448
+ Generic runner plus convenience commands for [fal.ai](https://fal.ai)'s queue REST API. Any model id works with `run`; `image`/`video` set sensible defaults and download media automatically.
449
+
450
+ ```bash
451
+ # Generic runner — works with any fal model id
452
+ multix fal run fal-ai/flux/schnell --input '{"prompt":"a cyberpunk cat"}' [--no-download] [--wait-timeout 480000] [-v]
453
+ multix fal run fal-ai/flux/schnell --input @input.json
454
+
455
+ # Text-to-image (default model: fal-ai/flux/schnell)
456
+ multix fal image "a cyberpunk cat" [-m <model>] [--image-size square_hd] [-n 1] [--seed <n>] [--negative-prompt <text>] [--output <path>] [--no-download] [-v]
457
+
458
+ # Text-to-video (default model: fal-ai/kling-video/v1.6/standard/text-to-video),
459
+ # or image-to-video with --image-url (default model: fal-ai/kling-video/v1.6/standard/image-to-video).
460
+ # Without -m, the default model switches automatically based on whether --image-url is passed.
461
+ multix fal video "a dancer under neon lights" [-m <model>] [--image-url <https-url>] [--duration <n>] [--aspect-ratio 16:9] [--seed <n>] [--no-download] [--wait-timeout 900000] [-v]
462
+
463
+ # Queue status / result for a request submitted any other way
464
+ multix fal status <model> <requestId>
465
+ multix fal result <model> <requestId> [--download]
466
+ ```
467
+
468
+ **Notes:**
469
+ - Auth header is `Authorization: Key $FAL_KEY`; base URL is `https://queue.fal.run`.
470
+ - All fal jobs are async: submit → poll `status` → fetch `result`. `run`/`image`/`video` do this automatically.
471
+ - Media URLs are extracted generically from the result JSON (any `url` field, recursively) and downloaded to `MULTIX_OUTPUT_DIR`.
472
+
428
473
  ### `multix media`
429
474
 
430
475
  Requires `ffmpeg` (video/audio) and `magick` (images) on PATH.