Aller au contenu principal

130+ modèles d'IA dans votre terminal

Une commande et une clé API pour la vidéo, les images, la musique, la voix et le chat LLM depuis le shell.

@unifically/cli

Fonctionne sous macOS, Linux et Windows. Nécessite Node.js 18 ou plus récent.

terminal
$ uai run google/veo-3.1-fast prompt="a cat walking on the beach at sunset" duration=8 --sync⠹ google/veo-3.1-fast · processing · 0:12 · est $0.30✓ generated in 0:47  ▸ veo-3.1-fast-b4e1.mp4 (2.1MB)

C'est quoi

Tous les modèles, une seule interface

La CLI utilise la même API UnificAlly que le playground : Flux, Veo, Kling, SeeDream, Suno, ElevenLabs, GPT, Claude et le reste du catalogue. Par défaut, un traitement média renvoie un id de tâche ; --sync attend la fin et télécharge le résultat.

Chaque argument key=value devient une entrée du modèle, donc la même commande fonctionne dans tout le catalogue. La CLI actualise le catalogue automatiquement et rejette les ids provider/model inconnus avant l'envoi.

Modèles

130+

Installation

npm i -g

Commandes

uai · unifically

Licence

MIT

Configuration

Installer et se connecter

Installez depuis npm, puis connectez la clé API de votre tableau de bord.

Un paquet npm. Node.js 18 ou plus récent :

npm
$ npm install -g @unifically/cli

Interactif

Lancez uai tel quel pour ouvrir une session

Des commandes sans le préfixe uai, dans une zone de saisie façon Claude Code. Passez un script à uai session et chaque ligne s'exécute dans l'ordre.

uai · session
$ uai session › model google/veo-3.1-fast✓ session model google/veo-3.1-fast› params duration=8› run prompt="a cat on the beach at sunset" --sync⠹ processing · 0:24 · est $0.30✓ generated in 0:52  ▸ veo-3.1-fast-c81d.mp4 (2.0MB)

Modèle épinglé

Choisissez un modèle une fois avec model, puis un simple run prompt="..." suffit pour le reste de la session (model off l'efface).

model google/veo-3.1-fast

Valeurs par défaut de session

params injecte des valeurs par défaut dans chaque run ; les valeurs explicites l'emportent. unset en retire une et session affiche ce qui est actif.

params duration=8 · unset duration · session

Coller des images

Collez un fichier ou une capture : il devient [Image N], envoyé au CDN en arrière-plan.

[Image 1]

Échappement shell

Préfixez une ligne par ! pour l'exécuter dans votre shell sans quitter la session.

!ffprobe out.mp4

Complétion et historique

Tab complète commandes, ids de modèles, options et clés de config. Les flèches parcourent l'historique persistant.

Tab · ↑ / ↓

Mode batch

Passez un script et chaque ligne s'exécute dans l'ordre. Les erreurs n'interrompent pas le reste ; exit arrête plus tôt.

uai session < script.txt

Entrées

Comment les arguments arrivent au modèle

Chaque key=value devient une entrée du modèle : les nouveaux modèles fonctionnent sans mise à jour de la CLI. Les opérateurs couvrent les types, les fichiers et l’imbrication.

Opérateurs d’entrée

Façon httpie. Les valeurs sont converties par défaut ; les autres opérateurs désactivent la conversion ou vont plus loin.

key=valueseed=42

Conversion automatique : nombres, true/false et null deviennent de vrais types.

key==valueversion==3.0

Chaîne littérale, jamais convertie. version==3.0 reste "3.0".

key:=jsonurls:='["a","b"]'

JSON strict, pour les tableaux et les objets.

key=@pathimage_url=@photo.png

Envoie d’abord le fichier ou l’URL, puis transmet l’URL hébergée.

a.0.b=valuemessages.0.role=user

La notation par points imbrique objets et tableaux.

Références média

Les fichiers locaux sont envoyés automatiquement ; les URLs passent telles quelles. Un flag au pluriel remplit un champ tableau et un flag au singulier un champ texte : suivez ce que documente le modèle.

--images / --imageimage_urls[] / image_url

Le pluriel remplit image_urls[] ; le singulier, image_url.

--videos / --videovideo_urls[] / video_url

Le pluriel remplit video_urls[] ; le singulier, video_url.

--audios / --audioaudio_urls[] / audio_url

Le pluriel remplit audio_urls[] ; le singulier, audio_url.

--first-image / --start-imagestart_image_url

Première image. Les modèles kling-*-video utilisent automatiquement start_frame_url.

--last-image / --end-imageend_image_url

Dernière image. Les modèles kling-*-video utilisent automatiquement end_frame_url.

key=@fileany other file field

Tout paramètre non couvert par les flags accepte un fichier avec @.

Référence

Toutes les commandes

Le jeu complet de commandes avec syntaxe, options et un exemple réel pour chacune. Copiez n'importe quel exemple directement dans votre terminal.

Générer

uai run

Soumet une tâche de génération. Ajoutez --sync pour interroger jusqu’au bout et télécharger en une seule étape.

Syntaxe

uai run <provider/model> [key=value ...] [flags]

Options

-w, --sync--async--url--open / --web-o, --output <path>--save / --no-save--dry-run--confirm--json
uai run
$ uai run black-forest-labs/flux.2-pro prompt="a fox" aspect_ratio=1:1 --sync✓ generated in 0:06 · $0.03  ▸ flux.2-pro-a1f3.png (1.4MB)

uai run <llm>

Les LLM passent par la même commande run : la CLI les route vers le chat et diffuse la réponse dans votre terminal. Ni id de tâche ni téléchargement.

Syntaxe

uai run <provider/model> "prompt" [key=value ...]

Options

system="..."temperature=max_tokens=top_p=stop=seed=response_format:=tools:=tool_choice=--images <file>--stream / --no-stream--json
uai run
$ uai run openai/gpt-5.5 "explain quantum tunneling in one paragraph"Quantum tunneling is a particle passing through an energybarrier it classically lacks the energy to cross... # stdin becomes the prompt$ cat essay.txt | uai run anthropic/claude-fable-5 system="be terse"

uai cost

Estime le coût d'un travail avant de le lancer. Simulation, sans frais.

Syntaxe

uai cost <provider/model> [key=value ...]

Options

--json
uai cost
$ uai cost google/veo-3.1-quality prompt="test" duration=8est $1.20 · dry run, nothing charged

Tâches et suivi

uai status / uai wait

Vérifie une tâche, ou bloque jusqu'à la fin puis télécharge. Sans id, prend votre tâche la plus récente.

Syntaxe

uai status [task_id] · uai wait [task_id]

Options

status: --url, --jsonwait: --urlwait: --save / --no-savewait: -o, --output <path>wait: --poll-interval <s>wait: --timeout <s>wait: --json
uai status
$ uai statustask_9f27c1 · google/veo-3.1-fast · processing · 0:31$ uai wait task_9f27c1✓ completed in 1:12  ▸ veo-3.1-fast-9f27.mp4 (2.4MB)

uai tasks

Liste les tâches de votre compte, les plus récentes d'abord. Filtres par modèle, statut, type, fournisseur ou date.

Syntaxe

uai tasks [provider/model] [filters]

Options

--status processing|completed|failed--type <csv>--provider <csv>--since <date|unix>--before <date|unix>--page <n>--page-size 10|25|50|100--search <q>--json
uai tasks
$ uai tasks --status completed --type video --page-size 25task_9f27c1 · google/veo-3.1-fast · completed · $0.30 · 2mtask_b7d2aa · kuaishou/kling-3.0-video · completed · $0.4536 · 3h

Catalogue et recherche

uai models

Parcourez le catalogue en direct lorsqu'une clé est disponible ; le cache local sert hors connexion. Utilisez refresh pour le mettre à jour explicitement.

Syntaxe

uai models [--type ...] [--search ...] · uai models <provider/model> · uai models refresh

Options

--type image|video|audio|llm--search <q>--refresh--json
uai models
$ uai models --search flux --type imageblack-forest-labs/flux.2-pro       image · from $0.03black-forest-labs/flux.2-klein-4b  image · from $0.014

uai resources

Listes de voix et endpoints utilitaires par noms simples. Passez le nom d'une voix et la CLI résout l'id attendu par le modèle.

Syntaxe

uai resources <path ...>

Options

--search <q>--all--json
uai resources
$ uai resources elevenlabs voices --search sarahSarah - Mature, Reassuring, Confident   EXAVITQu4vr4xnSDxMaL$ uai run elevenlabs/text-to-speech text="Hello" voice="Sarah"  voice "Sarah" → voice=EXAVITQu4vr4xnSDxMaL

Fichiers

uai upload

Téléversez un fichier local ou une URL vers le CDN et récupérez un file_url.

Syntaxe

uai upload <file | url> [more ...]

Options

--json
uai upload
$ uai upload poster.png✓ uploaded  ▸ https://files.unifically.com/u/poster-8c1a.png

Compte et configuration

uai account

Votre identité et votre solde en direct.

Syntaxe

uai account

Options

--json
uai account
$ uai accountyou@example.com · balance $14.20

uai config / uai auth

Valeurs par défaut (dossier de sortie, sondage, sauvegarde) et gestion de la clé API.

Syntaxe

uai config list|get|set|unset|path · uai auth login|status|logout

Options

saveoutputDirpollIntervaltimeoutbaseUrllogologoStyle--json
uai config
$ uai config set outputDir ~/Downloads/ai✓ outputDir = ~/Downloads/ai$ uai auth status✓ key sk-...9f2 · valid

uai onboard

Assistant de premier lancement : connecte votre clé API, choisit un dossier de sortie et charge le catalogue de modèles.

Syntaxe

uai onboard

Options

--force
uai onboard
$ uai onboard✓ API key connected✓ output directory ~/ai✓ model catalog loaded

uai exec

Mode machine pour agents et scripts : exécute n'importe quelle commande API en flux d'événements JSONL — un objet JSON par ligne de stdout (start, submitted, progress, delta, saved, result, error), stderr silencieux, mêmes codes de sortie.

Syntaxe

uai exec <command ...> → JSONL events on stdout

Options

--verbose
uai exec
$ uai exec run black-forest-labs/flux.2-pro prompt="a fox" --sync -o fox.png{"event":"submitted","task_id":"0c15…","model":"…"}{"event":"progress","status":"processing","elapsed_ms":3401}{"event":"saved","dest":"fox.png","bytes":342502}{"event":"result","data":{"status":"completed", …}}

uai / uai session

La session en ligne classique — les commandes sans le préfixe uai. Envoyez un script à uai session et chaque ligne s'exécute dans l'ordre ; les erreurs n'interrompent pas la suite.

Syntaxe

uai · uai session · uai --resume <session-id> · uai session < script.txt

Options

--no-logo--resume <session-id>
uai session
$ uai session --no-logo <<'EOF'run black-forest-labs/flux.2-pro prompt="a fox" --syncrun google/veo-3.1-fast prompt="a fox walking" --syncEOF

uai completion

Scripts de complétion pour bash, zsh, fish et PowerShell, couvrant commandes, flags et ids de modèles en cache.

Syntaxe

uai completion install [shell] · uai completion bash|zsh|fish|powershell
uai completion
$ uai completion install✓ bash tab-completion installed

uai help / uai version

La référence intégrée et la version installée.

Syntaxe

uai help | --help | -h · uai version | --version | -v
uai help
$ uai helpUsage: uai <command> [options]

Médias collés

Collez une image directement dans une session

Sans envoi manuel ni URL à recopier : collez un fichier ou une capture, puis placez le repère là où l’URL doit aller.

[Image N]

Dans une session interactive, collez un fichier image ou une capture d'écran et il devient [Image N], téléversé vers le CDN en arrière-plan. Placez le marqueur là où l'URL doit aller.

paste
# in a session, paste an image (Explorer copy, drag-drop, or Ctrl+V):› run google/nano-banana-pro prompt="restyle this" [Image 1]✓ [Image 1] uploaded · generated in 0:09  ▸ nano-banana-pro-e2d4.png (1.1MB)

Options

Options de la CLI

Les cartes de commandes indiquent les filtres spécifiques comme --status et --search. Les options priment sur la configuration lorsqu'elles s'appliquent toutes les deux.

-w, --syncBloque : interroge jusqu’à la fin et télécharge.
--asyncLe comportement par défaut, explicite : soumet et renvoie l’id de la tâche.
-o, --output <path>Enregistre vers un fichier ou dossier précis.
--urlN’affiche que l’URL de sortie sur stdout ; implique --sync.
--open / --webTélécharge le résultat et l’ouvre dans votre application par défaut ; implique --sync.
--save / --no-save / --no-downloadForce les téléchargements actifs ou non.
--out-template <t>Modèle de nom de fichier : {model} {id} {index} {ext}.
--jsonSortie structurée lisible par machine sur stdout.
--dry-runEstimation du coût seulement, rien n'est soumis.
--confirmAffiche le coût estimé et demande avant de dépenser.
--webhook <url>Envoie la tâche terminée en POST vers une URL de rappel.
--poll-interval <s>Secondes entre interrogations (défaut 3).
--timeout <s>Attente maximale pour --sync et les flux LLM (600 par défaut).
--stream / --no-streamForce le streaming LLM activé ou désactivé.
--api-key <key> / --base-url <url>Clé API et URL de base par appel.
--resume <session-id>Restaure une session interactive enregistrée par id.
--no-logoSaute le logo de session.
--verboseAffiche une progression lisible sur stderr avec uai exec.
-h, --help / -v, --versionAffiche la référence des commandes ou la version installée.
--no-color / -q, --quietDésactive les couleurs, ou sortie silencieuse avec -q.

Des tubes propres pour scripts et agents

--json imprime des données structurées sur stdout, les logs et spinners vont sur stderr. Les invites sont sautées quand stdin n'est pas un terminal, et chaque requête a un timeout.

scripting
$ URL=$(uai run black-forest-labs/flux.2-pro prompt="a fox" --url)$ uai tasks --status processing --json | jq -r '.tasks[].task_id'task_9f27c1# agents: JSONL event stream — one JSON object per stdout line$ uai exec run google/veo-3.1-fast prompt="a fox" --sync | jq -r .eventstart → submitted → progress → saved → result

Connaître le prix avant de dépenser

uai cost est une estimation gratuite et --confirm demande avant de soumettre. Un vrai refus pour solde insuffisant est toujours HTTP 402 ; les erreurs de capacité du fournisseur sont signalées comme telles.

uai cost
$ uai cost google/veo-3.1-quality prompt="test" duration=8est $1.20 · dry run, nothing charged$ uai run google/veo-3.1-quality prompt="test" duration=8 --confirmest $1.20 · continue? [Y/n]

Conception

Comment ça marche

Une commande par tâche

run soumet et affiche un id de tâche immédiatement, ce qui convient aux scripts et aux agents. Ajoutez --sync pour interroger et télécharger en une étape. Une attente expirée se reprend avec uai wait <task_id>.

Vos fichiers deviennent des URLs

Collez une image dans une session et elle devient [Image N], envoyée au CDN en arrière-plan. Les chemins de fichiers locaux sont envoyés automatiquement partout où une URL est attendue ; les URLs passent telles quelles.

Le coût avant de dépenser

uai cost chiffre n'importe quel travail sans frais, --confirm montre l'estimation et demande avant d'envoyer, et uai account affiche votre solde en direct. Un vrai refus pour solde insuffisant est toujours un HTTP 402 ; les erreurs de capacité du fournisseur sont signalées comme telles, pour savoir s'il faut recharger ou réessayer.

Faite pour les scripts et les agents

--json imprime des données structurées sur stdout tandis que les logs vont sur stderr : les pipes restent propres. Rien ne se bloque : chaque requête a un timeout et les invites sont ignorées quand stdin n'est pas un terminal.

Paramètres imbriqués

Au-delà du key=value plat, la notation par points construit objets et tableaux imbriqués : messages.0.role=user messages.0.content="..." pour le chat multi-tours, settings.instrumental=true pour les options imbriquées et inputs.images.0=@photo.jpg pour les tableaux.

La CLI est gratuite

Ne payez que les générations, aux mêmes prix par tâche que l'API, facturées à votre clé. Chiffrez d'abord un travail avec uai cost, ou consultez la page des tarifs.

FAQ

Questions fréquentes sur la CLI UnificAlly

Un outil en ligne de commande (paquet npm @unifically/cli, licence MIT) qui exécute 130+ modèles d'image, de vidéo, d'audio et de LLM via l'API UnificAlly. Il soumet les tâches, les interroge jusqu'à la fin et télécharge les résultats, avec une seule clé API.

npm install -g @unifically/cli avec Node.js 18 ou plus récent. Cela installe deux commandes identiques, uai et unifically. Lancez uai onboard une fois pour connecter votre clé et charger le catalogue.

La CLI est gratuite. Vous ne payez que les générations, aux mêmes prix par tâche que l'API UnificAlly. uai cost estime n'importe quel travail avant de dépenser et --confirm demande avant d'envoyer.

Oui. --json met la sortie structurée sur stdout et les logs sur stderr, --url n'imprime que l'URL du résultat, les invites sont ignorées quand stdin n'est pas un terminal, et chaque requête a un timeout.

Utilisez des flags comme --images, --videos ou --first-image. Les fichiers locaux sont envoyés au CDN automatiquement, les URLs passent telles quelles, et coller une image dans une session la transforme en [Image N].

Oui. Les LLM passent par la même commande run : uai run openai/gpt-5.5 "votre prompt" diffuse directement dans votre terminal. Utilisez system="..." pour un prompt système, --no-stream pour un seul bloc de texte, ou passez stdin comme prompt.