Установка и логин
Установка
Layero CLI публикуется как npm-пакет layero. Рекомендуем npx layero@latest — с версией и без -g:
# Рекомендуется: без установки, всегда последняя версия
npx layero@latest deploy
# Локально в проект — версия ПРИКРЕПЛЯЕТСЯ, обновлять руками
npm install -D layero && npx layero deploy
# Глобально (в Cursor/Claude Code часто фейлится из-за прав на /usr/local)
npm install -g layero@latest
Требуется Node.js ≥ 20.
@latest — иначе версия прикрепитсяnpx layero без версии берёт уже установленную копию: локальную из
node_modules, а если её нет — глобальную. В реестр он при этом не ходит, и
вы годами запускаете то, что поставили однажды. Так у нас нашёлся ноутбук с
layero@0.8.11 при опубликованном 0.8.20 — и до 0.8.22 CLI даже не мог об
этом предупредить (запрос к npm был сломан).
npx layero@latest тянет свежий релиз каждый раз. Локальную установку
обновляйте сами: npm i -D layero@latest.
Логин
npx layero@latest login
CLI:
- Делает один HTTP-запрос на
api.layero.ruи получает короткий код вида5NFW-K2NG. - Печатает URL
https://app.layero.ru/cli?code=5NFW-K2NG(и пытается открыть его в браузере, если запущен в интерактивном терминале). - Молча поллит каждые 2 секунды до подтверждения или истечения 15-минутного TTL.
В браузере вы выбираете способ входа — код на почту или Яндекс ID. Если аккаунта в Layero ещё нет, он создаётся автоматически при первом входе. Страница называет аккаунт, которому выдаёт доступ: если он не тот, там же есть «войти другим». После «Разрешить доступ» CLI получает JWT и сохраняет его в ~/.layero/config.json (chmod 600).
Это device-flow (как gh auth login, aws sso login, AppleTV). CLI не открывает локальный сервер на 127.0.0.1 — обмен идёт через backend. Поэтому логин работает даже когда CLI запущен на удалённой машине (SSH, Docker, headless CI), а ваш браузер на ноутбуке.
Проверьте, под каким аккаунтом вы залогинены:
npx layero@latest whoami
Если код истёк
Каждый user_code живёт 15 минут. Если не успели подтвердить — CLI завершится с auth_expired или auth_timeout. Просто запустите npx layero@latest login ещё раз.
Аккаунта в Layero нет
Не нужно регистрироваться отдельно. Первый вход — по коду на почту или через Яндекс ID — создаёт ваш Layero-аккаунт и личную организацию автоматически. После логина вас могут попросить выбрать username (один раз) — он становится слагом вашей персональной организации. У проектов, созданных до переезда на layero.app (26 июля 2026), он попал и в адрес сайта — <username>-<project>.layero.app. У новых адрес состоит из одного слага проекта.
Инициализация проекта
Внутри директории сайта запустите:
npx layero@latest init
Команда:
- Авто-детектит фреймворк (Next / Vite / Astro / SvelteKit / Nuxt / Gatsby / CRA / Docusaurus / static)
- Создаёт
.layero/project.jsonсо скаффолдомframework_hint/build_cmd/output_dir - Дописывает блок «Deploying with Layero» в
AGENTS.md/CLAUDE.md/.cursorrules(если они есть) — чтобы AI-агенты в следующих чат-сессиях знали как деплоить без подсказок.
Идемпотентно: повторный запуск обновляет существующий блок, не дублируя.
Где лежит конфиг
| Файл | Назначение |
|---|---|
~/.layero/config.json | Auth-токен и URL API. Создаётся layero login. |
./.layero/project.json | Связка cwd с конкретным проектом + framework/build/output. Создаётся layero init или первым layero deploy. |
~/.layero/config.json выглядит примерно так:
{
"apiUrl": "https://api.layero.ru",
"token": "eyJhbGciOi...",
"user": { "id": 42, "username": "alice", "email": "alice@example.com" }
}
./.layero/project.json после init:
{
"framework_hint": "vite",
"build_cmd": "npm run build",
"output_dir": "dist",
"analytics_enabled": false,
"env_vars": {}
}
После первого deploy к нему добавятся project_id, slug, organization_slug, apex_hostname — CLI пишет их сам, не трогайте.
Сброс токена
npx layero@latest logout
Удалит токен из ~/.layero/config.json. На сервере ничего не отзовёт — JWT валиден до истечения TTL (7 дней). Если хотите отозвать сессию на сервере — Settings → Active sessions в дашборде.
CI / non-interactive
В CI обычно нет браузера. Получите JWT через layero login на dev-машине, скопируйте из ~/.layero/config.json и передайте в CI как секрет:
# В CI. Токен не печатаем: всё, что попало в лог сборки, видно всем,
# у кого есть доступ к раннам, и остаётся там после ротации секрета.
npx layero@latest token set "$LAYERO_TOKEN"
npx layero@latest deploy --prod --yes --project alice-my-site
layero token set — это «ручное окно» для CI и dev-сценариев. В обычной работе используйте login.