Zum Hauptinhalt springen

130+ KI-Modelle in Ihrem Terminal

Ein Befehl und ein API-Schlüssel für Video, Bilder, Musik, Sprache und LLM-Chat direkt aus der Shell.

@unifically/cli

Läuft auf macOS, Linux und Windows. Benötigt Node.js 18 oder neuer.

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)

Was es ist

Jedes Modell über eine Oberfläche

Die CLI nutzt dieselbe UnificAlly-API wie der Playground: Flux, Veo, Kling, SeeDream, Suno, ElevenLabs, GPT, Claude und den Rest des Katalogs. Medienläufe geben standardmäßig eine Task-id zurück; --sync wartet bis zum Abschluss und lädt das Ergebnis herunter.

Jedes key=value-Argument wird Teil der Modelleingabe, daher funktioniert derselbe Befehl im gesamten Katalog. Die CLI aktualisiert den Katalog automatisch und lehnt unbekannte provider/model-ids vor dem Absenden ab.

Modelle

130+

Installation

npm i -g

Befehle

uai · unifically

Lizenz

MIT

Einrichtung

Installieren und anmelden

Installieren Sie von npm und verbinden Sie dann den API-Schlüssel aus Ihrem Dashboard.

Ein npm-Paket. Node.js 18 oder neuer:

npm
$ npm install -g @unifically/cli

Interaktiv

uai ohne Argumente öffnet eine Session

Befehle ohne uai-Präfix, in einer Eingabebox im Stil von Claude Code. Leiten Sie ein Skript in uai session und jede Zeile läuft der Reihe nach.

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)

Festes Modell

Wählen Sie einmal ein Modell mit model, danach genügt run prompt="..." für den Rest der Sitzung (model off setzt es zurück).

model google/veo-3.1-fast

Session-Defaults

params fügt Standardwerte in jeden Run ein; explizite Werte haben Vorrang. unset entfernt einen, session zeigt, was aktiv ist.

params duration=8 · unset duration · session

Bilder einfügen

Fügen Sie eine Datei oder einen Screenshot ein: daraus wird [Image N], im Hintergrund zum CDN hochgeladen.

[Image 1]

Shell-Escape

Stellen Sie einer Zeile ! voran, um sie in Ihrer Shell auszuführen, ohne die Session zu verlassen.

!ffprobe out.mp4

Vervollständigung und Verlauf

Tab vervollständigt Befehle, Modell-ids, Flags und Config-Schlüssel. Pfeiltasten blättern durch den persistenten Verlauf.

Tab · ↑ / ↓

Batch-Modus

Leiten Sie ein Skript hinein und jede Zeile läuft der Reihe nach. Fehler brechen den Rest nicht ab; exit beendet früher.

uai session < script.txt

Eingaben

Wie Argumente beim Modell ankommen

Jedes key=value wird zur Modelleingabe, deshalb funktionieren neue Modelle ohne CLI-Update. Die Operatoren decken Typen, Dateien und Verschachtelung ab.

Eingabe-Operatoren

Im httpie-Stil. Werte werden standardmäßig konvertiert; die anderen Operatoren schalten das ab oder gehen tiefer.

key=valueseed=42

Automatisch konvertiert: Zahlen, true/false und null werden zu echten Typen.

key==valueversion==3.0

Literaler String, nie konvertiert. version==3.0 bleibt "3.0".

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

Striktes JSON, für Arrays und Objekte.

key=@pathimage_url=@photo.png

Lädt Datei oder URL zuerst hoch und sendet dann die gehostete URL.

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

Punktnotation verschachtelt Objekte und Arrays.

Medien-Referenzen

Lokale Dateien werden automatisch hochgeladen, URLs durchgereicht. Ein Plural-Flag füllt ein Array-Feld, ein Singular-Flag ein String-Feld — richten Sie sich danach, was das Modell dokumentiert.

--images / --imageimage_urls[] / image_url

Plural befüllt image_urls[], Singular image_url.

--videos / --videovideo_urls[] / video_url

Plural befüllt video_urls[], Singular video_url.

--audios / --audioaudio_urls[] / audio_url

Plural befüllt audio_urls[], Singular audio_url.

--first-image / --start-imagestart_image_url

Erstes Bild. kling-*-video-Modelle verwenden automatisch start_frame_url.

--last-image / --end-imageend_image_url

Letztes Bild. kling-*-video-Modelle verwenden automatisch end_frame_url.

key=@fileany other file field

Jeder Parameter, den die Flags nicht abdecken, nimmt eine Datei mit @.

Referenz

Alle Befehle

Der komplette Befehlssatz mit Syntax, Flags und je einem realen Beispiel. Jedes Beispiel lässt sich direkt ins Terminal kopieren.

Generieren

uai run

Sendet einen Generierungs-Task. Mit --sync wird bis zum Ende gepollt und in einem Schritt heruntergeladen.

Syntax

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

Flags & Optionen

-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>

LLMs laufen über denselben run-Befehl — die CLI leitet sie an den Chat weiter und streamt direkt in Ihr Terminal. Keine Task-id, kein Download.

Syntax

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

Flags & Optionen

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

Schätzt die Kosten eines Auftrags vor dem Start. Probelauf, ohne Kosten.

Syntax

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

Flags & Optionen

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

Tasks & Überwachung

uai status / uai wait

Prüft eine Aufgabe oder blockiert bis zum Abschluss und lädt herunter. Ohne id gilt Ihre neueste Aufgabe.

Syntax

uai status [task_id] · uai wait [task_id]

Flags & Optionen

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

Listet die Aufgaben Ihres Kontos, neueste zuerst. Filter nach Modell, Status, Typ, Anbieter oder Datum.

Syntax

uai tasks [provider/model] [filters]

Flags & Optionen

--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

Katalog & Suche

uai models

Durchsuchen Sie mit API-Schlüssel den Live-Katalog; der lokale Cache dient offline als Ersatz. Mit refresh wird er ausdrücklich aktualisiert.

Syntax

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

Flags & Optionen

--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

Stimmlisten und Hilfs-Endpoints unter einfachen Namen. Übergeben Sie einen Stimmennamen und die CLI löst die id auf, die das Modell erwartet.

Syntax

uai resources <path ...>

Flags & Optionen

--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

Dateien

uai upload

Laden Sie eine lokale Datei oder URL zum CDN hoch und erhalten Sie eine file_url zurück.

Syntax

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

Flags & Optionen

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

Konto & Einrichtung

uai account

Identität und aktueller Kontostand.

Syntax

uai account

Flags & Optionen

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

uai config / uai auth

Standardwerte (Ausgabeverzeichnis, Polling, Speichern) und API-Schlüssel-Verwaltung.

Syntax

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

Flags & Optionen

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

uai onboard

Einrichtungsassistent beim ersten Start: verbindet den API-Schlüssel, wählt ein Ausgabeverzeichnis und lädt den Modellkatalog.

Syntax

uai onboard

Flags & Optionen

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

uai exec

Maschinenmodus für Agenten und Skripte: führt jeden API-Befehl als JSONL-Ereignisstrom aus — ein JSON-Objekt pro stdout-Zeile (start, submitted, progress, delta, saved, result, error), stilles stderr, gleiche Exit-Codes.

Syntax

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

Flags & Optionen

--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

Die klassische Inline-Session — Befehle ohne das uai-Präfix. Ein per Pipe übergebenes Skript führt uai session Zeile für Zeile aus; Fehler brechen den Rest nicht ab.

Syntax

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

Flags & Optionen

--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

Autovervollständigung für bash, zsh, fish und PowerShell, inklusive Befehlen, Flags und zwischengespeicherten Modell-ids.

Syntax

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

uai help / uai version

Die eingebaute Referenz und die installierte Version.

Syntax

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

Eingefügte Medien

Bild direkt in eine Session einfügen

Kein manuelles Hochladen, kein URL-Hin-und-Her: Datei oder Screenshot einfügen und den Platzhalter dorthin setzen, wo die URL hingehört.

[Image N]

Fügen Sie in einer interaktiven Sitzung eine Bilddatei oder einen Screenshot ein – er wird zu [Image N] und im Hintergrund zum CDN hochgeladen. Setzen Sie den Platzhalter dorthin, wo die URL stehen soll.

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)

Flags

CLI-Flags

Die Befehlskarten oben zeigen spezifische Filter wie --status und --search. Flags übersteuern passende Konfigurationswerte.

-w, --syncBlockiert: pollt bis zur Fertigstellung und lädt herunter.
--asyncDer Standard, explizit: senden und die Task-id zurückgeben.
-o, --output <path>In eine bestimmte Datei oder ein Verzeichnis speichern.
--urlGibt nur die Ausgabe-URL auf stdout aus; impliziert --sync.
--open / --webLädt das Ergebnis herunter und öffnet es in Ihrer Standard-App; impliziert --sync.
--save / --no-save / --no-downloadDownloads erzwingen oder abschalten.
--out-template <t>Dateinamens-Vorlage: {model} {id} {index} {ext}.
--jsonMaschinenlesbare Ausgabe auf stdout.
--dry-runNur Kostenvorschau, nichts wird eingereicht.
--confirmZeigt die geschätzten Kosten und fragt vor dem Ausgeben.
--webhook <url>Abgeschlossene Aufgabe per POST an eine Callback-URL.
--poll-interval <s>Sekunden zwischen Abfragen (Standard 3).
--timeout <s>Maximale Wartezeit für --sync und LLM-Streams (Standard 600).
--stream / --no-streamErzwingt LLM-Streaming an oder aus.
--api-key <key> / --base-url <url>API-Schlüssel und Basis-URL pro Aufruf.
--resume <session-id>Eine gespeicherte interaktive Sitzung per id wiederherstellen.
--no-logoSession-Logo überspringen.
--verboseBei uai exec lesbaren Fortschritt auf stderr anzeigen.
-h, --help / -v, --versionBefehlsreferenz oder installierte CLI-Version ausgeben.
--no-color / -q, --quietFarben deaktivieren, oder stille Ausgabe mit -q.

Saubere Pipes für Skripte und Agenten

--json gibt strukturierte Daten auf stdout aus, Logs und Spinner gehen nach stderr. Eingabeaufforderungen entfallen, wenn stdin kein Terminal ist, und jede Anfrage hat ein 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

Den Preis kennen, bevor Geld fließt

uai cost ist ein kostenloser Probelauf, --confirm fragt vor dem Einreichen. Eine echte Guthaben-Ablehnung ist immer HTTP 402; Kapazitätsfehler des Anbieters werden als solche benannt.

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]

Design

So funktioniert es

Ein Befehl pro Aufgabe

run sendet und gibt sofort eine Task-id aus, was zu Skripten und Agenten passt. Mit --sync wird gepollt und in einem Schritt heruntergeladen. Ein abgelaufenes Warten lässt sich mit uai wait <task_id> fortsetzen.

Dateien werden für Sie zu URLs

Fügen Sie ein Bild in eine Session ein und es wird zu [Image N], im Hintergrund zur CDN hochgeladen. Lokale Dateipfade werden überall dort automatisch hochgeladen, wo eine URL erwartet wird; URLs werden unverändert durchgereicht.

Kosten vor dem Ausgeben

uai cost berechnet jeden Auftrag als Probelauf, --confirm zeigt die Schätzung und fragt vor dem Einreichen, und uai account zeigt Ihr Live-Guthaben. Eine echte Guthaben-Ablehnung ist immer HTTP 402; Kapazitätsfehler des Anbieters werden als solche benannt, damit Sie wissen, ob aufladen oder erneut versuchen.

Gebaut für Skripte und Agenten

--json druckt strukturierte Daten auf stdout, während Logs und Spinner auf stderr gehen: Pipes bleiben sauber. Nichts hängt: Jede Anfrage hat einen Timeout und Eingabeaufforderungen entfallen, wenn stdin kein Terminal ist.

Verschachtelte Parameter

Über flaches key=value hinaus baut Punktnotation verschachtelte Objekte und Arrays: messages.0.role=user messages.0.content="..." für mehrstufigen Chat, settings.instrumental=true für verschachtelte Optionen und inputs.images.0=@photo.jpg für Arrays.

Die CLI ist kostenlos

Zahlen Sie nur für Generierungen, zu denselben Preisen pro Aufgabe wie über die API, abgerechnet über Ihren Schlüssel. Berechnen Sie jeden Auftrag zuerst mit uai cost oder sehen Sie auf der Preisseite nach.

FAQ

Häufige Fragen zur UnificAlly CLI

Ein Kommandozeilen-Tool (npm-Paket @unifically/cli, MIT-lizenziert), das 130+ Bild-, Video-, Audio- und LLM-Modelle über die UnificAlly-API ausführt. Es reicht Aufgaben ein, fragt sie bis zum Abschluss ab und lädt Ergebnisse herunter, mit einem API-Schlüssel.

npm install -g @unifically/cli mit Node.js 18 oder neuer. Das installiert zwei identische Befehle, uai und unifically. Führen Sie einmal uai onboard aus, um Ihren Schlüssel zu verbinden und den Katalog zu laden.

Die CLI ist kostenlos. Sie zahlen nur für Generierungen, zu denselben Preisen pro Aufgabe wie die UnificAlly-API. uai cost schätzt jeden Auftrag vor dem Ausgeben und --confirm fragt vor dem Einreichen.

Ja. --json legt strukturierte Ausgaben auf stdout und Logs auf stderr, --url druckt nur die Ergebnis-URL, Eingabeaufforderungen entfallen, wenn stdin kein Terminal ist, und jede Anfrage hat einen Timeout.

Nutzen Sie Flags wie --images, --videos oder --first-image. Lokale Dateien werden automatisch zur CDN hochgeladen, URLs unverändert durchgereicht, und ein in einer Session eingefügtes Bild wird zu [Image N].

Ja. LLMs laufen über denselben run-Befehl: uai run openai/gpt-5.5 "Ihr Prompt" streamt direkt in Ihr Terminal. system="..." setzt einen System-Prompt, --no-stream liefert einen Textblock, und stdin lässt sich als Prompt hineinpipen.