Перейти к содержимому
Документация

Интерфейс командной строки (CLI)

Установите @inquir/compute-cli, чтобы получить команду inquir. Управляйте serverless-функциями, долгоживущими контейнерными приложениями, проектами приложений, релизами и доступом к воркспейсам из терминала. Справочник проверен по опубликованному CLI 0.3.0; требуется Node.js 22 или новее.

Пакет @inquir/compute-cli на npm →

Справочник команд#

У каждой команды — своя страница с синтаксисом, параметрами, примерами и особенностями работы.

Контейнерные приложения#

inquir appsУправлять долгоживущими контейнерными приложениями и их релизами.inquir apps listПоказать приложения с состоянием production и адресами.inquir apps createСоздать приложение или развернуть базу из шаблона.inquir apps deployСобрать исходники или выпустить образ существующего приложения.inquir apps redeployПересоздать production с сохранёнными настройками приложения.inquir apps statusПроверить адреса, готовность приватной сети, масштабирование и релизы.inquir apps logsСмотреть поток логов приложения, релиза или сборки образа.inquir apps promoteПереключить production-трафик на готовый релиз.inquir apps rollbackВернуть production приложения к предыдущему релизу.inquir apps stopОстановить релиз, который не обслуживает production.inquir apps execВыполнить команду в production-контейнере приложения.inquir apps buildСобрать образ приложения из исходников без выпуска релиза.inquir apps buildsПоказать сборки образов приложения или отменить сборку в очереди.inquir apps updateСохранить переменные, ресурсы и сетевую политику приложения.inquir apps scaleНастроить реплики либо политику сна и пробуждения приложения.inquir apps wakeЗапросить запуск спящего приложения.inquir apps pauseПриостановить приложение в режиме HTTP или manual.inquir apps domainПоказать, привязать, проверить или удалить домен приложения.inquir apps domainsСиноним apps domain для управления доменами приложения.inquir apps backupsПоказать, создать, восстановить или удалить бэкапы томов.inquir apps backups <app> listПоказать снимки томов, начиная с новых.inquir apps backups <app> createСоздать снимки всех подключённых томов приложения.inquir apps backups <app> restoreПерезаписать том бэкапом в состоянии READY.inquir apps backups <app> deleteБезвозвратно удалить точку восстановления тома.inquir apps connectСохранить URL подключения к базе в другом приложении.inquir apps connection-urlВывести URL подключения к базе приложения.inquir apps deleteАрхивировать приложение и остановить все его релизы.

Конфигурация и инструменты#

Содержание справочника

Установка и проверка версии#

Сначала установите Node.js 22+ и npm. Глобальная установка добавляет inquir в PATH. Имя npm-пакета отличается от имени команды: устанавливайте @inquir/compute-cli, запускайте inquir.

Используйте @latest на рабочей машине. Укажите @0.3.0, если нужна описанная здесь версия, особенно в CI. Через npx CLI можно запустить без глобальной установки.

Глобальная установкаbash
node --version
npm --version
npm install -g @inquir/compute-cli@latest
inquir --version
inquir --help
Запуск конкретной версииbash
npx --yes @inquir/compute-cli@0.3.0 --version
npx --yes @inquir/compute-cli@0.3.0 --help

Обновление, Windows и PATH#

Для обновления повторите установку и проверьте бинарник, который действительно находит оболочка. Новая версия пакета не заменит другую копию, стоящую раньше в PATH. Менеджеры версий Node могут хранить отдельные глобальные пакеты для каждой версии Node.

В Windows выполните проверки PowerShell ниже. npm prefix -g показывает каталог команд npm; нужный prefix должен быть в пользовательском PATH. После изменения PATH откройте терминал заново. Если PowerShell блокирует .ps1, запускайте inquir.cmd напрямую. Для запуска CLI не требуется менять execution policy.

В macOS/Linux проверьте command -v inquir и type -a inquir. Менеджер версий Node помогает избежать проблем с правами на системные глобальные каталоги. Проверка обновления при старте кешируется до 12 часов; автоматическая замена работает только для интерактивной глобальной npm-установки. CI, JSON-режим и npx не обновляют себя автоматически.

Явное обновлениеbash
npm install -g @inquir/compute-cli@latest
inquir --version
inquir upgrade --help
PowerShell: найти активную копиюbash
Get-Command inquir -All
where.exe inquir
npm prefix -g
npm list -g @inquir/compute-cli --depth=0
inquir.cmd --version
Управление автообновлениемbash
inquir config set autoUpdate false
inquir doctor --no-update
inquir config set autoUpdate true

Вход и учётные данные#

inquir login открывает авторизацию в браузере. Подтвердите показанный код устройства в своём аккаунте Inquir и дождитесь завершения в терминале. CLI сохраняет Personal Access Token (PAT) и адрес API в ~/.inquir/config.json; в Windows это каталог вашего профиля. --browserless печатает URL и код без открытия браузера.

PAT представляет ваш аккаунт и даёт доступ к воркспейсам в пределах ваших прав. API-ключ воркспейса ограничен своим воркспейсом; переключение не расширяет его доступ. В CI передавайте INQUIR_TOKEN или INQUIR_API_KEY через хранилище секретов, чтобы не записывать значение в историю команд. Используйте один тип учётных данных на задачу.

logout удаляет локально сохранённые учётные данные выбранного окружения CLI. Чтобы аннулировать сам токен на сервере, отзовите его в дашборде.

Интерактивный входbash
inquir login
inquir whoami
inquir workspaces
Удалённый терминал и выходbash
inquir login --browserless
inquir config path
inquir logout

Воркспейсы, локальные привязки и окружения CLI#

Воркспейс содержит функции, приложения и правила доступа. Выберите его по умолчанию через inquir use <slug-or-id>. Флаг --workspace меняет выбор для одной команды. inquir use ... --local записывает привязку в ближайший inquir.config.json; для этого нужен инициализированный локальный каталог исходников.

Приоритет воркспейса: --workspace, INQUIR_WORKSPACE, выбранное именованное окружение учётных данных, привязка в локальном конфиге, сохранённый выбор по умолчанию. При смене аккаунта или репозитория проверяйте whoami перед деплоем.

--env staging выбирает сохранённый профиль учётных данных CLI. Он не задаёт переменные приложения и не выбирает окружение деплоя функции. Создайте профиль через login --env. Для окружения деплоя функции используйте --stage (синоним --environment), а для переменных приложения — apps update --set.

Выбор воркспейсаbash
inquir workspaces
inquir use acme-prod
inquir whoami
inquir list --remote --workspace acme-prod
Отдельные учётные данные для другого APIbash
inquir login --env staging --api-url https://staging.example.com
inquir whoami --env staging
inquir config show --env staging

Выбор: функции или контейнерные приложения#

Команды функций подходят для кода, запускаемого запросом или событием: локальный запуск, упаковка и деплой, удалённый вызов и история выполнений. Команды apps предназначены для долгоживущего Docker-контейнера: HTTP-сервиса, API, базы данных или фонового воркера. Функция в web-режиме остаётся функцией и не превращается в приложение проекта.

Проекты приложений объединяют только контейнерные приложения. inquir init создаёт локальные исходники и конфигурацию, а не удалённый проект приложений. Это разные сущности, хотя в терминале обе могут называться проектом.

Команда / параметрНазначение
inquir deploy / invoke / logsServerless-функции и их выполнения.
inquir apps create / deploy / logsДолгоживущие контейнерные сервисы и релизы.
inquir projectsГруппы контейнерных приложений внутри воркспейса.
inquir init / codegen / runЛокальные SDK-исходники, генерация клиента и выполнение.

Создание и локальный запуск SDK-функции#

Начните в пустом каталоге. init создаёт inquir.config.json, пример функции hello и зависимости пакета. Зависимости устанавливаются автоматически, если не указан --skip-install. Ниже установка вынесена в отдельную команду, чтобы ошибка была заметна. Локальные Node-функции выполняются на вашей машине; используйте подходящую версию Node.

codegen обнаруживает ресурсы и создаёт .inquir/generated/client.ts и реестр. Перегенерируйте их вместо ручного редактирования. list показывает локальные ресурсы, list --remote (-r) — удалённые функции. debug запускает локальный инспектор и печатает адрес отладчика.

Создайте payload.json с приведённым JSON. Файл полезен в Bash, PowerShell и Windows Command Prompt: не нужно учитывать различия экранирования JSON. run и invoke также принимают --payload или JSON через stdin; файл имеет приоритет перед строковым payload.

Создание и обнаружение функцийbash
mkdir inquir-demo
cd inquir-demo
inquir init --name inquir-demo --skip-install --yes
npm install
inquir codegen
inquir list
payload.jsonjson
{
  "name": "World"
}
Запуск и отладкаbash
inquir run hello --payload-file ./payload.json
inquir debug hello --payload-file ./payload.json

Деплой и вызов функций#

В SDK-воркспейсе используйте --asset hello, чтобы задеплоить конкретный обнаруженный ресурс. Позиционный hello поддерживается для совместимости, если каталога с таким именем нет. Явный --asset исключает неоднозначность между каталогом и ресурсом.

Без --asset команда deploy упаковывает каталог исходников, определяет Node.js, Python или Go и выбирает handler- либо web-режим. Для этого не нужны inquir init и SDK. Флаги --handler index.handler, --start "node server.js" и --runtime переопределяют обнаружение. Код web-режима должен слушать переданный PORT.

--dry-run проверяет обнаружение и упаковку без деплоя. Это не гарантия, что сервер примет релиз. Обычный деплой выводит логи сборки и ждёт завершения; --no-logs выключает поток логов, но сохраняет ожидание. Память задаётся в МБ, таймаут функции — в миллисекундах.

Команда / параметрНазначение
--name / --asset / --runtimeИмя функции из каталога / явный SDK-ресурс / nodejs22, python312 или go122.
--set KEY=VALUE / --env-fileПовторяйте --set для нескольких переменных. --set переопределяет одноимённые значения из dotenv-файла.
--layer LAYER_IDПодключение существующего слоя по ID; флаг можно повторять.
--stage / --environmentОкружение деплоя функции, а не профиль учётных данных CLI.
SDK-функция: деплой и вызовbash
inquir deploy --asset hello --workspace acme-prod
inquir invoke hello --payload-file ./payload.json
inquir list --remote
Готовый каталог исходниковbash
inquir deploy ./api --dry-run
inquir deploy ./api --name billing --runtime nodejs22 --handler index.handler
inquir deploy ./api --name billing --start "node server.js"
Параметры деплоя функцииbash
inquir deploy --asset hello --stage staging --memory 512 --timeout 30000 --set LOG_LEVEL=info
inquir deploy --asset hello --env-file ./.env.production --layer LAYER_ID

Логи функций, история деплоев и откат#

logs hello показывает недавние вызовы и логи последнего вызова. Это не непрерывный поток логов контейнера. deploys hello выводит деплои; подставьте настоящий ID деплоя в status. status --follow отслеживает этот деплой до завершения.

Откат функции создаёт деплой из сохранённого успешного деплоя. Без ID выбирается предыдущий успешный неактивный деплой. После сетевого таймаута сначала проверьте результат: разрыв соединения CLI не означает отмену операции.

Проверка функцииbash
inquir logs hello --limit 20
inquir deploys hello --limit 20
inquir status DEPLOY_ID
inquir status DEPLOY_ID --follow
inquir sync status
Откат функцииbash
inquir rollback hello
inquir rollback hello DEPLOY_ID --no-logs

Создание приложений и выбор проекта#

Новые приложения принадлежат проекту. Если проект не выбран, apps create автоматически создаёт проект с именем приложения. Чтобы объединить API, базу и воркер, сначала создайте или выберите один проект. Повторять --project в каждой команде не требуется.

projects use сохраняет выбор для каталога, а при наличии inquir.config.json — для его корня. Выбор изолирован по API, воркспейсу и аккаунту. apps create --project переопределяет его на один раз. projects add добавляет существующее приложение; apps deploy сохраняет принадлежность и не принимает --project.

Обычный apps create web --port 3000 создаёт конфигурацию приложения; затем задеплойте образ или Dockerfile. Шаблоны баз данных — исключение: они создают настроенную базу и её первый релиз. Команды проектов не перемещают serverless-функции в проекты приложений.

Один проект для связанных приложенийbash
inquir projects list
inquir projects create shop
inquir projects use shop
inquir apps create web --port 3000
inquir apps create worker
inquir projects current
Существующие приложения и разовый выборbash
inquir projects add shop existing-app
inquir apps create cache --template redis --project shop
inquir projects use --clear

Деплой Dockerfile или готового образа#

Целевое приложение должно существовать. Без --image и --build команда apps deploy web загружает исходники, собирает Dockerfile на платформе и создаёт релиз. Для другой структуры используйте --dir, --context, --dockerfile, --target и повторяемый --build-arg. Для этой удалённой сборки локальный Docker-демон не требуется.

По умолчанию деплой создаёт релиз для проверки. --promote запрашивает перевод production-трафика после успешных проверок здоровья; CLI ждёт не только здоровья, но и переключения production. --no-wait возвращает управление после постановки релиза в очередь. При деплое исходников сначала всё равно должна завершиться сборка.

Новые приложения по умолчанию приватные. Включайте Public Networking через apps update --ingress public. --port задаёт HTTP-порт контейнера; процесс должен слушать интерфейс контейнера, обычно 0.0.0.0, а не только localhost. Укажите реально существующий health endpoint. BUILD_ID и RELEASE_ID ниже нужно заменить значениями из вывода предыдущих команд.

Сборка и публикация веб-сервисаbash
inquir apps create web --port 3000
inquir apps update web --ingress public
inquir apps deploy web --dir ./web --health-path /health --promote
inquir apps status web
Деплой готового образаbash
inquir apps create static-web --port 80
inquir apps update static-web --ingress public
inquir apps deploy static-web --image nginx:alpine --port 80 --health-path / --promote
Сначала сборка, затем релизbash
inquir apps build web --dir ./web --context . --dockerfile Dockerfile --build-arg NODE_ENV=production
inquir apps builds web
inquir apps deploy web --build BUILD_ID
inquir apps promote RELEASE_ID

Проверка, передеплой и откат приложений#

apps status показывает адреса приложения, production и последние релизы. apps logs принимает приложение, ID релиза или сборки и выводит соответствующий поток логов; Ctrl+C прекращает просмотр. По умолчанию запрашиваются последние 200 строк контейнера; изменить число можно через --tail.

apps redeploy создаёт новый релиз из production-сборки или ссылки на образ с текущими настройками приложения. Он автоматически продвигается в production, если не указан --no-promote. При повторном скачивании тег образа может указывать на другое содержимое; для воспроизводимости используйте digest. Приложения с томами пересоздаются и недоступны во время замены.

apps rollback web возвращает production на предыдущий релиз, когда это доступно платформе. Он не восстанавливает содержимое базы данных. apps stop останавливает непродакшеновый релиз; apps delete архивирует приложение и останавливает его релизы. apps exec web -- ... выполняет команду в production-контейнере приложения, а не произвольном preview-релизе. Это выполнение команды через API, а не интерактивный терминал.

Проверка и управление релизамиbash
inquir apps status web
inquir apps logs web --tail 100
inquir apps logs BUILD_ID
inquir apps exec web -- ls -la /app
inquir apps redeploy web
inquir apps rollback web
Остановка preview или удаление приложенияbash
inquir apps stop RELEASE_ID
inquir apps delete unused-app

Переменные, ресурсы и сеть приложений#

Сохраняйте переменные приложения повторяемым apps update --set KEY=VALUE либо задайте их при apps create. Для применения нужен новый деплой или apps redeploy. Не задавайте настройки через apps deploy --set или apps deploy --ingress: обработчик deploy в CLI 0.3.0 их не применяет. --env всегда выбирает учётные данные CLI.

Память приложения задаётся как лимит в МБ, CPU — в vCPU. Обновление сохраняет остальные поля runtime. --tcp name:port объявляет приватный TCP-порт; добавляйте :public только для намеренного публичного TCP-доступа. Внешний порт назначает платформа. --egress full|none управляет исходящим доступом, --ingress private|public — Public Networking.

Используйте подтверждённый приватный адрес из apps status; не составляйте hostname из отображаемого имени. Приватные имена разрешаются внутри сети воркспейса, а не на вашем ноутбуке. Состояние provisioning означает, что платформа ещё не подтвердила готовность; оно не доказывает работоспособность DNS и соединения.

Сохранение и применение настроекbash
inquir apps update web --set LOG_LEVEL=info --set NODE_ENV=production
inquir apps update web --memory 512 --cpu 0.5 --health-path /health
inquir apps update web --ingress public --egress full
inquir apps redeploy web
inquir apps status web

Базы данных, приватные подключения и бэкапы томов#

Шаблоны postgres и redis настраивают образ базы, постоянный том, учётные данные и первый релиз. Сначала выберите проект, чтобы база и потребитель отображались вместе. apps connect db web записывает DATABASE_URL или REDIS_URL потребителю без вывода пароля; для применения передеплойте потребителя. --overwrite явно заменяет существующую переменную подключения.

connection-url --private требует готовый приватный адрес; --public — явно доступное публичное подключение. Без флага команда предпочитает приватный адрес и может вернуться к публичному. Выведенный URL содержит учётные данные: используйте connect, если не требуется его просматривать.

Для своего сервиса задайте --volume data:/app/data; суффикс :ro делает том доступным только для чтения. --volume-runner закрепляет том и приложение на runner. Данные остаются на этой машине; выбор другого runner не переносит их. Для бэкапов нужны том и поддержка сервера. Это crash-consistent снимки; восстановление перезаписывает том и останавливает приложение на время операции.

Подключение PostgreSQL к веб-сервисуbash
inquir projects use shop
inquir apps create db --template postgres
inquir apps status db
inquir apps connect db web
inquir apps redeploy web
Проверка или замена подключенияbash
inquir apps connection-url db --private
inquir apps connect db web --overwrite
Создание и просмотр бэкаповbash
inquir apps backups db create
inquir apps backups db list
inquir apps backups db restore BACKUP_ID

Реплики, сон и пробуждение, свои домены#

always поддерживает приложение запущенным; --replicas 1..8 запрашивает горизонтальные реплики, где это поддерживает платформа. http усыпляет приложение после простоя и пробуждает HTTP-запросом. manual требует явного пробуждения. Это политики приложения, а не обещание репликации томов с состоянием между машинами.

Таймаут простоя — минимум 5 минут, таймаут пробуждения — от 5 секунд до 5 минут, стабилизация не может быть отрицательной. pause используется для http/manual. HTTP-запрос пробуждает http-режим; manual остаётся остановленным до wake.

Для своего домена добавьте привязку, опубликуйте точные DNS-записи подтверждения и маршрутизации из вывода CLI, затем запустите проверку. Команда не меняет записи у вашего DNS-провайдера. Флаг --remove удаляет привязку hostname.

Выбор политики масштабированияbash
inquir apps scale web always --replicas 2
inquir apps scale web http --idle-timeout 15m --activation-timeout 60s --stabilization 60s
inquir apps pause web
inquir apps wake web
Привязка и проверка доменаbash
inquir apps domain web shop.example.com
inquir apps domain web shop.example.com --verify
inquir apps domain web

CI/CD, фиксированная версия и JSON#

В CI устанавливайте фиксированную версию CLI и передавайте учётные данные через переменные окружения. Для воспроизводимости задайте CI=true и INQUIR_NO_AUTO_UPDATE=1. Используйте API-ключ воркспейса с нужными правами либо PAT с доступом к воркспейсу. Задаче с переданным credential не нужен браузерный вход.

deploy --ci для функции ждёт завершения и возвращает ненулевой код при ошибке. Для контейнеров используйте apps deploy --promote --json и сохраняйте ожидание по умолчанию: постановка в очередь ещё не означает успешный деплой. JSON-режим убирает служебные сообщения; потоковые логи контейнера/сборки идут в stderr и не являются JSON-потоком событий.

Workflow ниже деплоит существующий каталог функции ./api. Сначала создайте secret INQUIR_API_KEY в GitHub Actions. Он не выдаёт репозиторию права автоматически. Отдельный Inquir deploy action поддерживает настроенное доверие GitHub OIDC; у CLI 0.3.0 нет сценария login --oidc. Бесключевой деплой описан в руководстве CI/CD.

Код выходаНазначение
0Команда завершилась успешно.
1Ошибка операции или деплоя.
2Неверные аргументы или неподдерживаемый вызов.
3Ошибка сети или соединения.
4Ошибка авторизации или доступа.
GitHub Actions: деплой функцииbash
name: Deploy function
on: workflow_dispatch
permissions:
  contents: read
jobs:
  deploy:
    runs-on: ubuntu-latest
    env:
      CI: "true"
      INQUIR_API_URL: https://api.inquir.org
      INQUIR_API_KEY: ${{ secrets.INQUIR_API_KEY }}
      INQUIR_NO_AUTO_UPDATE: "1"
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "22"
      - run: npm install -g @inquir/compute-cli@0.3.0
      - run: inquir deploy ./api --ci --json
Деплой контейнера в авторизованной задачеbash
inquir apps deploy web --dir ./web --promote --json
inquir apps status web --json

Глобальные флаги и конфигурация#

Глобальные флаги можно указывать рядом с командой. Флаги конкретного обработчика действуют только в его области; используйте apps create --help, inquir help deploy и разделы выше. config show показывает итоговую конфигурацию с маскированными credentials. config path выводит путь к файлу учётных данных без его содержимого.

Команда / параметрНазначение
--jsonМашиночитаемый результат без цвета и служебных сообщений.
--quiet / --no-colorУменьшить служебный вывод / выключить ANSI-цвета; поддерживается NO_COLOR.
--debugДобавить диагностические сведения и stack trace.
--yes / -yПодтвердить предусмотренные запросы в скрипте; используйте осознанно для разрушительных команд.
--cwd PATH / --config PATHВыбрать корень исходников/конфигурации для проектных команд. Загрузчик SDK также принимает путь к JSON-конфигу; для одинакового поведения разных команд предпочитайте каталог.
--env NAME / INQUIR_ENVВыбрать сохранённое окружение учётных данных CLI.
--workspace SELECTOR / INQUIR_WORKSPACEВыбрать воркспейс по slug или ID в пределах прав credentials.
--api-url URL / INQUIR_API_URLАдрес API; по умолчанию https://api.inquir.org. Учётные данные должны принадлежать выбранному API.
--token PAT / INQUIR_TOKEN / INQUIR_API_KEYPAT через флаг либо credentials через окружение. В CI предпочитайте передачу через окружение.
--no-update / INQUIR_NO_AUTO_UPDATE=1Отключить проверку обновления при старте этого вызова.
Просмотр конфигурации и справкиbash
inquir config show
inquir config get apiUrl
inquir config get autoUpdate
inquir config path
inquir help deploy
inquir apps --help
inquir projects --help

Диагностика и подключение coding-агента#

Начните с doctor: он проверяет версии Node/CLI, конфигурацию, credentials и доступность API. Если не найдена локальная функция, проверьте list, functionsDir и корень каталога. Если не найден удалённый ресурс, сначала проверьте whoami и удалённый список, чтобы не создать дубликат.

При ошибке контейнерного релиза проверьте ID релиза/сборки, логи, слушающий порт, health check, память и сохранённые переменные. Если приватный адрес находится в provisioning, проверьте готовность приложения и приватный URL базы; включение публичного доступа не исправляет приватную сеть. После изменения сохранённого runtime нужен новый релиз.

inquir mcp запускает MCP-сервер через stdio с теми же credentials. Настройте MCP-клиент на команду inquir с аргументом mcp. В Windows клиент, не умеющий запускать npm-shim, может запускать node с абсолютным путём к установленному @inquir/compute-cli/dist/index.js, затем аргументом mcp. Инструменты умеют деплоить и выполнять команды, поэтому заранее выберите нужный воркспейс и права.

Команды диагностикиbash
inquir --version
inquir doctor --json
inquir whoami
inquir list --remote
inquir apps list
inquir apps status web
inquir apps logs web --tail 100
Команда stdio MCPbash
inquir mcp