CLI и локальная разработка
Редактор в браузере покрывает весь цикл, но в какой-то момент хочется свой редактор, свой git и свои инструменты. CLI lecodes переносит проект на твою машину: локальная разработка с полным IntelliSense, горячая перезагрузка прямо на телефоне по локальной сети и синхронизация с платформой одной командой.
Установка
CLI — это npm-пакет lecodes-cli (Node ≥ 18); команда, которую он ставит, называется lecodes:
npm i -g lecodes-cli # затем: lecodes <команда>
npx lecodes-cli <команда> # или без установкиЕсли Node на машине нет, возьми standalone-сборку на странице Загрузок: распакуй архив и запусти ./lecodes install — бандл скопируется в библиотечную папку, а lecodes появится в PATH.
lecodes --version показывает заодно версии опциональных пакетов (lecodes-renderer, lecodes-design, …) — полезно, когда какая-то команда жалуется, что ей чего-то не хватает.
Локальный проект — без аккаунта
Начать можно вообще без платформы: init разворачивает проект прямо на диске — ни логина, ни сервера.
lecodes init myapp
cd myapp
lecodes devinit кладёт стартовый main.ts, типы SDK и tsconfig.json — VS Code сразу даёт автодополнение по всем глобалам, офлайн. Команда идемпотентна: существующие файлы не трогает. Правила из Устройства проекта действуют и здесь — никаких пакетных импортов, точка входа без экспортов.
lecodes dev — горячая перезагрузка на устройстве
Главная команда локальной разработки. lecodes dev поднимает dev-сервер в локальной сети и печатает QR-код — отсканируй его приложением LeCodes, и проект откроется на телефоне нативно. Дальше цикл замыкается сам:
- Каждое сохранение перекомпилируется и горячо подменяет работающее приложение прямо на устройстве; ошибка сборки откатывает к последней рабочей версии.
console.logи ошибки с устройства стримятся обратно в терминал.- URL стабилен между запусками — телефон переподключается к тому же адресу.
Логин не нужен, ассеты отдаются из рабочей папки. Флаги: --port (по умолчанию 4499), --host — если LAN-адрес определился неверно, --entry, --no-qr.
Проект на платформе — clone и push
Второй сценарий: проект живёт на le.codes, а ты работаешь с его локальной копией.
lecodes login # откроет браузер и авторизует машину
lecodes clone <uuid-или-url> myapp # файлы + ресурсы + типы
cd myapp
# …правки в своём редакторе…
lecodes status # что изменилось
lecodes diff # построчный diff с сервером
lecodes push -m "Новое меню" # все правки — одним чекпоинтомМодель проще git — без стейджинга и веток. push отправляет всё рабочее дерево, а сервер атомарно собирает из него один чекпоинт: добавления, правки, удаления и переносы сразу; переименования сохраняют историю, неизменённые бинарники повторно не загружаются. pull забирает текущее состояние сервера (можно указать пути, чтобы обновить только их; --force — отбросить локальные правки). Если сервер успел уйти вперёд, push остановится и покажет, что будет перезаписано.
Метаданные живут в .lecodes/ — это как .git: хочешь — коммить, хочешь — нет. Типы подтягиваются с сервера при clone/pull, поэтому всегда совпадают с задеплоенным рантаймом. Новый проект на сервере создаёт lecodes create <имя>, а push --publish вместе с чекпоинтом сразу публикует проект.
В CI логин не нужен: токен и адрес API передаются переменными окружения LECODES_TOKEN и LECODES_API. Сам токен создаётся в веб-интерфейсе (или lecodes login --token).
Компиляция и headless-рендер
lecodes compile -o app.js # весь проект — один портативный бандл
lecodes render --png # скриншот приложения без устройстваcompile собирает тот самый бандл из Устройства проекта — локально, меньше чем за секунду. Без -o бандл уходит в stdout (удобно в пайплайнах), --no-minify оставляет его читаемым. Для локального init-проекта бандл самодостаточен — его можно открыть в LeCodes Desktop.
render исполняет проект headless и возвращает семантический JSON-снимок интерфейса — или PNG с --png. Это основа автоматических проверок и работы AI-ассистентов: агент правит код, рендерит и сам видит результат. Нужен опциональный пакет lecodes-renderer (npm i -D lecodes-renderer, для PNG ещё @napi-rs/canvas); рендерятся UI и 2D, 3D-сцены — нет.
Рядом с CLI — design и scene
Из той же команды запускаются ещё два локальных инструмента:
- LeCodes Design (
lecodes design) — живой канвас экранов для проектирования приложения вместе с AI-ассистентом. - Редактор сцен (
lecodes scene) — визуальный редактор.scene.ts: дерево сцены, инспектор, гизмо; правки пишутся прямо в исходник, а внешние правки из IDE подхватываются на лету (нужен опциональный пакетlecodes-3d-editor).
Полный список команд и флагов — lecodes --help.