Pular para o conteúdo principal

130+ modelos de IA no seu terminal

Um comando e uma chave de API para vídeo, imagens, música, voz e chat com LLMs direto do shell.

@unifically/cli

Funciona no macOS, Linux e Windows. Requer Node.js 18 ou mais recente.

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)

O que é

Todos os modelos em uma única interface

A CLI usa a mesma API da UnificAlly que o playground: Flux, Veo, Kling, SeeDream, Suno, ElevenLabs, GPT, Claude e o resto do catálogo. Por padrão, execuções de mídia retornam um id de tarefa; --sync aguarda a conclusão e baixa o resultado.

Cada argumento key=value vira parte da entrada do modelo, então o mesmo comando funciona em todo o catálogo. A CLI atualiza o catálogo automaticamente e rejeita ids provider/model desconhecidos antes do envio.

Modelos

130+

Instalação

npm i -g

Comandos

uai · unifically

Licença

MIT

Configuração

Instale e entre

Instale pelo npm e conecte a chave de API do seu painel.

Um pacote do npm. Node.js 18 ou mais recente:

npm
$ npm install -g @unifically/cli

Interativo

Rode uai sem argumentos para abrir uma sessão

Comandos sem o prefixo uai, em uma caixa de entrada no estilo Claude Code. Encaminhe um script para uai session e cada linha roda em ordem.

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)

Modelo fixo

Escolha um modelo uma vez com model e no resto da sessão basta run prompt="..." (model off limpa).

model google/veo-3.1-fast

Padrões de sessão

params injeta padrões em cada run; valores explícitos prevalecem. unset remove um e session mostra o que está ativo.

params duration=8 · unset duration · session

Colar imagens

Cole um arquivo ou captura de tela: vira [Image N], enviado ao CDN em segundo plano.

[Image 1]

Escape para o shell

Comece a linha com ! para executá-la no seu shell sem sair da sessão.

!ffprobe out.mp4

Autocompletar e histórico

Tab completa comandos, ids de modelos, flags e chaves de config. As setas percorrem o histórico persistente.

Tab · ↑ / ↓

Modo em lote

Encaminhe um script e cada linha roda em ordem. Erros não abortam o resto; exit encerra antes.

uai session < script.txt

Entradas

Como os argumentos chegam ao modelo

Cada key=value vira entrada do modelo, então modelos novos funcionam sem atualizar a CLI. Os operadores cobrem tipos, arquivos e aninhamento.

Operadores de entrada

No estilo httpie. Os valores são convertidos por padrão; os demais operadores desativam isso ou vão mais fundo.

key=valueseed=42

Conversão automática: números, true/false e null viram tipos reais.

key==valueversion==3.0

String literal, nunca convertida. version==3.0 continua "3.0".

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

JSON estrito, para arrays e objetos.

key=@pathimage_url=@photo.png

Faz upload do arquivo ou da URL primeiro e envia a URL hospedada.

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

A notação de ponto aninha objetos e arrays.

Referências de mídia

Arquivos locais sobem automaticamente; URLs passam direto. Uma flag no plural preenche um campo de array e uma no singular um campo de texto — siga o que o modelo documenta.

--images / --imageimage_urls[] / image_url

O plural preenche image_urls[]; o singular, image_url.

--videos / --videovideo_urls[] / video_url

O plural preenche video_urls[]; o singular, video_url.

--audios / --audioaudio_urls[] / audio_url

O plural preenche audio_urls[]; o singular, audio_url.

--first-image / --start-imagestart_image_url

Primeiro quadro. Modelos kling-*-video usam start_frame_url automaticamente.

--last-image / --end-imageend_image_url

Último quadro. Modelos kling-*-video usam end_frame_url automaticamente.

key=@fileany other file field

Qualquer parâmetro que as flags não cobrem aceita um arquivo com @.

Referência

Todos os comandos

O conjunto completo de comandos com sintaxe, flags e um exemplo real de cada um. Copie qualquer exemplo direto para o terminal.

Gerar

uai run

Envia uma tarefa de geração. Adicione --sync para acompanhar até o fim e baixar em um único passo.

Sintaxe

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

Flags e opções

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

Os LLMs passam pelo mesmo comando run — a CLI os direciona para o chat e transmite direto no seu terminal. Sem id de tarefa e sem download.

Sintaxe

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

Flags e opções

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

Estima o custo de um trabalho antes de executá-lo. Simulação, sem cobrança.

Sintaxe

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

Flags e opções

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

Tarefas e monitoramento

uai status / uai wait

Verifica uma tarefa, ou bloqueia até terminar e baixa. Sem id, vale sua tarefa mais recente.

Sintaxe

uai status [task_id] · uai wait [task_id]

Flags e opções

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

Lista as tarefas da sua conta, mais novas primeiro. Filtre por modelo, status, tipo, provedor ou data.

Sintaxe

uai tasks [provider/model] [filters]

Flags e opções

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

Catálogo e busca

uai models

Navegue e pesquise no catálogo ao vivo quando houver uma chave; o cache local funciona offline. Use refresh para atualizá-lo explicitamente.

Sintaxe

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

Flags e opções

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

Listas de vozes e endpoints auxiliares com nomes amigáveis. Passe o nome de uma voz e a CLI resolve o id que o modelo espera.

Sintaxe

uai resources <path ...>

Flags e opções

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

Arquivos

uai upload

Envie um arquivo local ou URL para o CDN e receba um file_url.

Sintaxe

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

Flags e opções

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

Conta e configuração

uai account

Sua identidade e saldo em tempo real.

Sintaxe

uai account

Flags e opções

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

uai config / uai auth

Padrões (diretório de saída, consulta, salvamento) e gestão da chave de API.

Sintaxe

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

Flags e opções

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

uai onboard

Assistente de primeira execução: conecta sua chave de API, escolhe um diretório de saída e carrega o catálogo de modelos.

Sintaxe

uai onboard

Flags e opções

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

uai exec

Modo máquina para agentes e scripts: executa qualquer comando da API como um fluxo de eventos JSONL — um objeto JSON por linha do stdout (start, submitted, progress, delta, saved, result, error), stderr silencioso, mesmos códigos de saída.

Sintaxe

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

Flags e opções

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

A sessão em linha clássica — comandos sem o prefixo uai. Envie um script para uai session por pipe e cada linha roda em ordem; erros não interrompem o resto.

Sintaxe

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

Flags e opções

--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 autocompletar para bash, zsh, fish e PowerShell, cobrindo comandos, flags e ids de modelos em cache.

Sintaxe

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

uai help / uai version

A referência integrada e a versão instalada.

Sintaxe

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

Mídia colada

Cole uma imagem direto na sessão

Sem upload manual nem URLs para lá e para cá: cole um arquivo ou print e ponha o marcador onde a URL deve entrar.

[Image N]

Numa sessão interativa, cole um arquivo de imagem ou captura de tela e ele vira [Image N], enviado ao CDN em segundo plano. Coloque o marcador onde a URL deve ir.

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

Flags da CLI

Os cartões de comando mostram filtros específicos como --status e --search. As flags prevalecem sobre a configuração quando ambas se aplicam.

-w, --syncBloqueia: acompanha até concluir e baixa.
--asyncO padrão, explícito: envia e retorna o id da tarefa.
-o, --output <path>Salva em um arquivo ou diretório específico.
--urlImprime apenas a URL de saída no stdout; implica --sync.
--open / --webBaixa o resultado e abre no seu aplicativo padrão; implica --sync.
--save / --no-save / --no-downloadForça downloads ligados ou desligados.
--out-template <t>Modelo de nome de arquivo: {model} {id} {index} {ext}.
--jsonSaída legível por máquina no stdout.
--dry-runSó a prévia de custo, nada é enviado.
--confirmMostra o custo estimado e pergunta antes de gastar.
--webhook <url>Envia a tarefa concluída via POST para uma URL de callback.
--poll-interval <s>Segundos entre consultas (padrão 3).
--timeout <s>Espera máxima para --sync e para streams de LLM (padrão 600).
--stream / --no-streamForça o streaming de LLM ligado ou desligado.
--api-key <key> / --base-url <url>Chave de API e URL base por chamada.
--resume <session-id>Restaura uma sessão interativa salva pelo id.
--no-logoPula o logo da sessão.
--verboseMostra o progresso legível no stderr com uai exec.
-h, --help / -v, --versionExibe a referência de comandos ou a versão instalada.
--no-color / -q, --quietDesativa cores, ou saída silenciosa com -q.

Pipes limpos para scripts e agentes

--json imprime dados estruturados no stdout enquanto logs e spinners vão para o stderr. Perguntas são puladas quando o stdin não é um terminal, e toda requisição tem 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

Saiba o preço antes de gastar

uai cost é uma simulação gratuita e --confirm pergunta antes de enviar. Uma recusa real por saldo é sempre HTTP 402; erros de capacidade do provedor são apontados como tais.

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

Como funciona

Um comando por tarefa

run envia e imprime um id de tarefa na hora, o que serve bem a scripts e agentes. Adicione --sync para acompanhar e baixar em um passo. Uma espera que estourou o tempo é retomada com uai wait <task_id>.

Seus arquivos viram URLs

Cole uma imagem na sessão e ela vira [Image N], enviada para o CDN em segundo plano. Caminhos de arquivos locais sobem automaticamente onde uma URL é esperada; URLs passam direto.

O custo antes de gastar

uai cost precifica qualquer trabalho como simulação, --confirm mostra a estimativa e pergunta antes de enviar, e uai account mostra seu saldo ao vivo. Uma recusa real por saldo é sempre HTTP 402; erros de capacidade do provedor são apontados como tais, para você saber se recarrega ou tenta de novo.

Feita para scripts e agentes

--json imprime dados estruturados no stdout enquanto logs e spinners vão para o stderr: os pipes ficam limpos. Nada trava: toda requisição tem timeout e os prompts são pulados quando o stdin não é um terminal.

Parâmetros aninhados

Além do key=value plano, a notação de ponto monta objetos e arrays aninhados: messages.0.role=user messages.0.content="..." para chat de múltiplos turnos, settings.instrumental=true para opções aninhadas e inputs.images.0=@photo.jpg para arrays.

A CLI é grátis

Pague apenas pelas gerações, aos mesmos preços por tarefa da API, cobrados na sua chave. Precifique qualquer trabalho antes com uai cost, ou confira a página de preços.

FAQ

Perguntas frequentes sobre a CLI da UnificAlly

Uma ferramenta de linha de comando (pacote npm @unifically/cli, licença MIT) que executa 130+ modelos de imagem, vídeo, áudio e LLM pela API da UnificAlly. Ela envia tarefas, consulta até a conclusão e baixa resultados, com uma única chave de API.

npm install -g @unifically/cli com Node.js 18 ou mais recente. Isso instala dois comandos idênticos, uai e unifically. Rode uai onboard uma vez para conectar sua chave e carregar o catálogo.

A CLI é grátis. Você paga apenas pelas gerações, aos mesmos preços por tarefa da API da UnificAlly. uai cost estima qualquer trabalho antes de gastar e --confirm pergunta antes de enviar.

Sim. --json coloca a saída estruturada no stdout e os logs no stderr, --url imprime só a URL do resultado, os prompts são pulados quando o stdin não é um terminal e toda requisição tem timeout.

Use flags como --images, --videos ou --first-image. Arquivos locais sobem para o CDN automaticamente, URLs passam direto, e colar uma imagem na sessão a transforma em [Image N].

Sim. Os LLMs passam pelo mesmo comando run: uai run openai/gpt-5.5 "seu prompt" transmite direto no seu terminal. Use system="..." para um prompt de sistema, --no-stream para um único bloco de texto, ou mande o stdin como prompt.