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.
Läuft auf macOS, Linux und Windows. Benötigt Node.js 18 oder neuer.
$ 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 install -g @unifically/cliInteraktiv
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 › 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-fastSession-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 · sessionBilder 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.mp4Vervollstä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.txtEingaben
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=42Automatisch konvertiert: Zahlen, true/false und null werden zu echten Typen.
key==valueversion==3.0Literaler String, nie konvertiert. version==3.0 bleibt "3.0".
key:=jsonurls:='["a","b"]'Striktes JSON, für Arrays und Objekte.
key=@pathimage_url=@photo.pngLädt Datei oder URL zuerst hoch und sendet dann die gehostete URL.
a.0.b=valuemessages.0.role=userPunktnotation 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_urlPlural befüllt image_urls[], Singular image_url.
--videos / --videovideo_urls[] / video_urlPlural befüllt video_urls[], Singular video_url.
--audios / --audioaudio_urls[] / audio_urlPlural befüllt audio_urls[], Singular audio_url.
--first-image / --start-imagestart_image_urlErstes Bild. kling-*-video-Modelle verwenden automatisch start_frame_url.
--last-image / --end-imageend_image_urlLetztes Bild. kling-*-video-Modelle verwenden automatisch end_frame_url.
key=@fileany other file fieldJeder 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 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 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 google/veo-3.1-quality prompt="test" duration=8est $1.20 · dry run, nothing chargedTasks & Ü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 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 --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 · 3hKatalog & 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 refreshFlags & Optionen
--type image|video|audio|llm--search <q>--refresh--json$ uai models --search flux --type imageblack-forest-labs/flux.2-pro image · from $0.03black-forest-labs/flux.2-klein-4b image · from $0.014uai 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 elevenlabs voices --search sarahSarah - Mature, Reassuring, Confident EXAVITQu4vr4xnSDxMaL$ uai run elevenlabs/text-to-speech text="Hello" voice="Sarah" voice "Sarah" → voice=EXAVITQu4vr4xnSDxMaLDateien
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 poster.png✓ uploaded ▸ https://files.unifically.com/u/poster-8c1a.pngKonto & Einrichtung
uai account
Identität und aktueller Kontostand.
Syntax
uai accountFlags & Optionen
--json$ uai accountyou@example.com · balance $14.20uai config / uai auth
Standardwerte (Ausgabeverzeichnis, Polling, Speichern) und API-Schlüssel-Verwaltung.
Syntax
uai config list|get|set|unset|path · uai auth login|status|logoutFlags & Optionen
saveoutputDirpollIntervaltimeoutbaseUrllogologoStyle--json$ uai config set outputDir ~/Downloads/ai✓ outputDir = ~/Downloads/ai$ uai auth status✓ key sk-...9f2 · validuai onboard
Einrichtungsassistent beim ersten Start: verbindet den API-Schlüssel, wählt ein Ausgabeverzeichnis und lädt den Modellkatalog.
Syntax
uai onboardFlags & Optionen
--force$ uai onboard✓ API key connected✓ output directory ~/ai✓ model catalog loadeduai 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 stdoutFlags & Optionen
--verbose$ 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.txtFlags & Optionen
--no-logo--resume <session-id>$ 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" --syncEOFuai 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 install✓ bash tab-completion installeduai help / uai version
Die eingebaute Referenz und die installierte Version.
Syntax
uai help | --help | -h · uai version | --version | -v$ 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.
# 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.
$ 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 → resultDen 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 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.