Перейти к основному содержимому

130+ ИИ-моделей в вашем терминале

Одна команда и один API-ключ для видео, изображений, музыки, речи и чата с LLM прямо из шелла.

@unifically/cli

Работает на macOS, Linux и Windows. Требуется Node.js 18 или новее.

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)

Что это

Все модели через один интерфейс

CLI использует тот же API UnificAlly, что и плейграунд: Flux, Veo, Kling, SeeDream, Suno, ElevenLabs, GPT, Claude и остальной каталог. По умолчанию медиазапуск возвращает id задачи; --sync ждёт завершения и скачивает результат.

Каждый аргумент key=value становится частью входных данных модели, поэтому одна команда работает со всем каталогом. CLI обновляет каталог автоматически и отклоняет неизвестные id provider/model до отправки.

Модели

130+

Установка

npm i -g

Команды

uai · unifically

Лицензия

MIT

Настройка

Установите и войдите

Установите из npm и подключите API-ключ из вашего кабинета.

Один пакет из npm. Node.js 18 или новее:

npm
$ npm install -g @unifically/cli

Интерактив

Запустите uai без аргументов — откроется сессия

Команды без префикса uai, в поле ввода в стиле Claude Code. Передайте скрипт в uai session, и каждая строка выполнится по порядку.

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)

Закреплённая модель

Выберите модель один раз через model, и до конца сессии достаточно run prompt="..." (model off сбрасывает).

model google/veo-3.1-fast

Значения по умолчанию

params добавляет значения по умолчанию в каждый run; явные значения имеют приоритет. unset удаляет одно, session показывает, что активно.

params duration=8 · unset duration · session

Вставка изображений

Вставьте файл или скриншот: он станет [Image N] и в фоне загрузится на CDN.

[Image 1]

Выход в шелл

Начните строку с !, чтобы выполнить её в вашем шелле, не покидая сессию.

!ffprobe out.mp4

Автодополнение и история

Tab дополняет команды, id моделей, флаги и ключи конфигурации. Стрелки листают постоянную историю.

Tab · ↑ / ↓

Пакетный режим

Передайте скрипт, и каждая строка выполнится по порядку. Ошибки не прерывают остальное; exit завершает раньше.

uai session < script.txt

Входные данные

Как аргументы попадают в модель

Каждый key=value становится входом модели, поэтому новые модели работают без обновления CLI. Операторы отвечают за типы, файлы и вложенность.

Операторы ввода

В стиле httpie. По умолчанию значения приводятся к типам; остальные операторы это отключают или уходят глубже.

key=valueseed=42

Автоприведение: числа, true/false и null становятся настоящими типами.

key==valueversion==3.0

Строка как есть, без приведения. version==3.0 остаётся "3.0".

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

Строгий JSON — для массивов и объектов.

key=@pathimage_url=@photo.png

Сначала загружает файл или URL, затем отправляет размещённую ссылку.

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

Точечная запись создаёт вложенные объекты и массивы.

Ссылки на медиа

Локальные файлы загружаются автоматически, URL передаются как есть. Флаг во множественном числе заполняет поле-массив, в единственном — строковое поле: смотрите документацию модели.

--images / --imageimage_urls[] / image_url

Множественный флаг заполняет image_urls[], одиночный — image_url.

--videos / --videovideo_urls[] / video_url

Множественный флаг заполняет video_urls[], одиночный — video_url.

--audios / --audioaudio_urls[] / audio_url

Множественный флаг заполняет audio_urls[], одиночный — audio_url.

--first-image / --start-imagestart_image_url

Первый кадр. Модели kling-*-video автоматически используют start_frame_url.

--last-image / --end-imageend_image_url

Последний кадр. Модели kling-*-video автоматически используют end_frame_url.

key=@fileany other file field

Любой параметр, не покрытый флагами, принимает файл через @.

Справочник

Все команды

Полный набор команд: синтаксис, флаги и реальный пример для каждой. Любой пример можно скопировать прямо в терминал.

Генерация

uai run

Отправляет задачу генерации. Добавьте --sync, чтобы дождаться завершения и скачать за один шаг.

Синтаксис

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

Флаги и опции

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

LLM работают через ту же команду run — CLI сам направляет их в чат и стримит ответ в терминал. Без id задачи и без скачивания.

Синтаксис

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

Флаги и опции

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

Оценивает стоимость задачи до запуска. Пробный расчёт, без списаний.

Синтаксис

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

Флаги и опции

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

Задачи и мониторинг

uai status / uai wait

Проверяет задачу или ждёт завершения и скачивает. Без id берётся ваша последняя задача.

Синтаксис

uai status [task_id] · uai wait [task_id]

Флаги и опции

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

Список задач вашего аккаунта, новые первыми. Фильтры по модели, статусу, типу, провайдеру или дате.

Синтаксис

uai tasks [provider/model] [filters]

Флаги и опции

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

Каталог и поиск

uai models

Просмотр и поиск по живому каталогу при наличии ключа; локальный кеш используется офлайн. Команда refresh обновляет его явно.

Синтаксис

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

Флаги и опции

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

Списки голосов и служебные эндпоинты под простыми именами. Передайте имя голоса, и CLI подставит id, который ждёт модель.

Синтаксис

uai resources <path ...>

Флаги и опции

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

Файлы

uai upload

Загрузите локальный файл или URL в CDN и получите file_url.

Синтаксис

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

Флаги и опции

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

Аккаунт и настройка

uai account

Ваш аккаунт и текущий баланс.

Синтаксис

uai account

Флаги и опции

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

uai config / uai auth

Настройки по умолчанию (каталог результатов, опрос, сохранение) и управление API-ключом.

Синтаксис

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

Флаги и опции

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

uai onboard

Мастер первого запуска: подключает API-ключ, выбирает каталог для результатов и загружает актуальный каталог моделей.

Синтаксис

uai onboard

Флаги и опции

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

uai exec

Машинный режим для агентов и скриптов: любая API-команда как поток событий JSONL — один JSON-объект на строку stdout (start, submitted, progress, delta, saved, result, error), тихий stderr, те же коды выхода.

Синтаксис

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

Флаги и опции

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

Классическая строчная сессия — команды без префикса uai. Скрипт, переданный в uai session, выполняется построчно; ошибки не прерывают остальные строки.

Синтаксис

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

Флаги и опции

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

Скрипты автодополнения для bash, zsh, fish и PowerShell: команды, флаги и закэшированные id моделей.

Синтаксис

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

uai help / uai version

Встроенный справочник и установленная версия.

Синтаксис

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

Вставленные медиа

Вставьте изображение прямо в сессию

Без ручной загрузки и копирования ссылок: вставьте файл или скриншот и поставьте плейсхолдер туда, где нужен URL.

[Image N]

В интерактивной сессии вставьте файл изображения или скриншот — он станет [Image N] и загрузится в CDN в фоне. Поместите заполнитель туда, где должен быть URL.

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)

Флаги

Флаги CLI

Карточки команд выше показывают отдельные фильтры, например --status и --search. Флаги имеют приоритет над соответствующими значениями конфигурации.

-w, --syncБлокирует: опрашивает до завершения и скачивает.
--asyncПоведение по умолчанию, явно: отправить и вернуть id задачи.
-o, --output <path>Сохранить в указанный файл или каталог.
--urlВыводит в stdout только URL результата; подразумевает --sync.
--open / --webСкачивает результат и открывает его в приложении по умолчанию; подразумевает --sync.
--save / --no-save / --no-downloadПринудительно включить или выключить скачивание.
--out-template <t>Шаблон имени файла: {model} {id} {index} {ext}.
--jsonМашиночитаемый вывод в stdout.
--dry-runТолько оценка стоимости, ничего не отправляется.
--confirmПоказать оценку стоимости и спросить перед тратой.
--webhook <url>Отправить завершённую задачу POST-запросом на callback-URL.
--poll-interval <s>Секунды между опросами (по умолчанию 3).
--timeout <s>Максимальное ожидание для --sync и стримов LLM (по умолчанию 600).
--stream / --no-streamПринудительно включает или выключает стриминг LLM.
--api-key <key> / --base-url <url>API-ключ и базовый URL для отдельного вызова.
--resume <session-id>Восстановить сохранённую интерактивную сессию по id.
--no-logoПропустить логотип сессии.
--verboseПоказывать читаемый прогресс в stderr при uai exec.
-h, --help / -v, --versionВывести справку по командам или установленную версию CLI.
--no-color / -q, --quietОтключить цвета или тихий вывод с -q.

Чистые пайпы для скриптов и агентов

--json печатает структурированные данные в stdout, а логи и спиннеры идут в stderr. Когда stdin не терминал, вопросы пропускаются, и у каждого запроса есть таймаут.

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

Цена известна до траты

uai cost считает стоимость бесплатно, а --confirm спрашивает перед отправкой. Настоящий отказ по балансу всегда приходит как HTTP 402; ошибки мощностей провайдера помечаются отдельно.

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]

Устройство

Как это работает

Одна команда — одна задача

run отправляет задачу и сразу печатает её id — это удобно для скриптов и агентов. Добавьте --sync, чтобы опросить и скачать за один шаг. Прерванное по таймауту ожидание возобновляется через uai wait <task_id>.

Файлы сами становятся ссылками

Вставьте изображение в сессию — оно станет [Image N] и загрузится в CDN в фоне. Локальные пути загружаются автоматически везде, где ожидается URL; ссылки передаются как есть.

Цена до траты

uai cost считает любую задачу без списаний, --confirm показывает оценку и спрашивает перед отправкой, а uai account показывает живой баланс. Настоящий отказ по балансу — это всегда HTTP 402; ошибки мощностей провайдера помечаются отдельно, чтобы вы знали, пополнять счёт или просто повторить.

Сделана для скриптов и агентов

--json печатает структурированные данные в stdout, а логи и спиннеры идут в stderr: пайпы остаются чистыми. Ничего не зависает: у каждого запроса есть таймаут, а интерактивные вопросы пропускаются, если stdin не терминал.

Вложенные параметры

Кроме плоских key=value, точечная запись строит вложенные объекты и массивы: messages.0.role=user messages.0.content="..." для многоходового чата, settings.instrumental=true для вложенных опций и inputs.images.0=@photo.jpg для массивов.

CLI бесплатна

Платите только за генерации, по тем же ценам за задачу, что и в API, со списанием с вашего ключа. Сначала просчитайте задачу через uai cost или загляните на страницу тарифов.

FAQ

Частые вопросы о UnificAlly CLI

Инструмент командной строки (npm-пакет @unifically/cli, лицензия MIT), который запускает 130+ моделей изображений, видео, аудио и LLM через API UnificAlly. Он отправляет задачи, опрашивает их до завершения и скачивает результаты, с одним API-ключом.

npm install -g @unifically/cli с Node.js 18 или новее. Установятся две одинаковые команды: uai и unifically. Один раз выполните uai onboard, чтобы подключить ключ и загрузить каталог моделей.

CLI бесплатна. Вы платите только за генерации, по тем же ценам за задачу, что и в API UnificAlly. uai cost оценивает любую задачу до траты, а --confirm спрашивает перед отправкой.

Да. --json кладёт структурированный вывод в stdout, а логи в stderr, --url печатает только URL результата, интерактивные вопросы пропускаются, если stdin не терминал, и у каждого запроса есть таймаут.

Используйте флаги вроде --images, --videos или --first-image. Локальные файлы автоматически загружаются в CDN, ссылки передаются как есть, а вставленное в сессию изображение становится [Image N].

Да. LLM работают через ту же команду run: uai run openai/gpt-5.5 "ваш промпт" стримит прямо в терминал. system="..." задаёт системный промпт, --no-stream выдаёт один блок текста, а stdin можно передать по пайпу как промпт.