Все команды, аргументы и флаги Astra.
CLI astra-rn копирует исходник компонента к вам в проект. Ничего не
добавляется в зависимости — файлы ложатся в ваш репозиторий, и править их вам.
Опубликован в npm как astra-rn и
запускается без установки:
npx astra-rn <command>pnpm dlx astra-rn <command>yarn dlx astra-rn <command>bunx --bun astra-rn <command>npx astra-rn init # один раз на проектnpx astra-rn add accordion # сколько угодно раз
pnpm dlx astra-rn init # один раз на проектpnpm dlx astra-rn add accordion # сколько угодно раз
yarn dlx astra-rn init # один раз на проектyarn dlx astra-rn add accordion # сколько угодно раз
bunx --bun astra-rn init # один раз на проектbunx --bun astra-rn add accordion # сколько угодно раз
Откуда берутся файлы
Всё читается из astra-codebase — бакета R2, который зеркалит
исходник библиотеки по одному объекту на файл.
| Префикс | Что держит |
|---|---|
core/… | сами компоненты |
types/<component>/ | извлечённые публичные типы компонента |
examples/<component>/ | экран, который его документирует |
helpers/…, shared/… | то, на что указывают импорты @/… компонента |
Бакет нельзя перечислить по HTTP, поэтому index.json в его корне описывает
каждый объект — ключ, размер, sha256, тип содержимого. Именно это перечисление
решает, какие файлы есть у компонента, и каждая загрузка сверяется со своим
хешем до того, как коснётся вашего диска. core/registry.json несёт метаданные
вокруг: категорию, путь в репозитории и тот список, который печатает list.
Наведите registry.origin на своё зеркало этой раскладки — и CLI будет отдавать
ваши компоненты.
init
Пишет component.config.json в корне проекта.
npx astra-rn initpnpm dlx astra-rn inityarn dlx astra-rn initbunx --bun astra-rn initОн читает алиас путей из вашего tsconfig.json и менеджер пакетов из лок-файла,
а затем спрашивает, куда класть компоненты, как их раскладывать, что копировать
вместе с ними и что делать с недостающими npm-пакетами.
| Флаг | Что делает |
|---|---|
-y, --yes | принять умолчания, ничего не спрашивать |
-f, --force | заменить существующий конфиг |
-d, --dir <path> | куда класть компоненты |
В файл попадает только то, что отличается от умолчаний, поэтому он остаётся коротким:
add
Копирует компоненты к вам в проект.
npx astra-rn add accordionnpx astra-rn add accordion button border-beamnpx astra-rn add # выбрать из списка с поиском
pnpm dlx astra-rn add accordionpnpm dlx astra-rn add accordion button border-beampnpm dlx astra-rn add # выбрать из списка с поиском
yarn dlx astra-rn add accordionyarn dlx astra-rn add accordion button border-beamyarn dlx astra-rn add # выбрать из списка с поиском
bunx --bun astra-rn add accordionbunx --bun astra-rn add accordion button border-beambunx --bun astra-rn add # выбрать из списка с поиском
Параметры
| Флаг | Что делает |
|---|---|
-o, --overwrite | заменить уже существующие файлы |
-d, --dir <path> | писать не в настроенный outDir, а в другое место |
-t, --types | скопировать ещё и публичные типы компонента |
-e, --examples | скопировать ещё и экран с примером |
--no-deps | не идти по импортам в другие компоненты |
--no-install | никогда не ставить недостающие npm-пакеты |
--dry | показать, что будет записано, и ничего не писать |
-y, --yes | без вопросов — безопасные умолчания на всё |
Он привозит всё, что ему нужно
Исходник сканируется на импорты @/…. Всё, что отображается в бакет — другой
компонент, общий хук, помощник, — тоже скачивается и отмечается как
required by <component>. Импорт, на который у реестра нет ответа, называется
вслух, а не остаётся молча висеть.
Отключается флагом --no-deps или "include": { "dependencies": false }.
Импорты переписываются
Скопированные файлы пишутся под ваши алиасы, а не под алиасы библиотеки:
Задайте алиас как "" — и тот же импорт выйдет относительным, так что проект
без сопоставления путей всё равно соберётся.
Недостающие npm-пакеты
Реестр зеркалит исходники, а не пакеты, поэтому доверять списку зависимостей
неоткуда. Вместо этого импорты только что записанных файлов читаются обратно,
всё, что уже есть в вашем package.json, отбрасывается, а остальное
предлагается поставить вашим же менеджером пакетов.
Будет это вопросом, автоматикой или никогда — решает installDependencies.
--overwrite выбрасывает ваши правки
Скопированный компонент ваш и правится как угодно. --overwrite заменяет
файлы на диске версией из реестра, так что все ваши изменения пропадут.
Сначала запустите astra-rn diff и посмотрите, что выбрасываете.
list
Все компоненты реестра, по категориям.
npx astra-rn listnpx astra-rn list -c moleculesnpx astra-rn list -s sheet
pnpm dlx astra-rn listpnpm dlx astra-rn list -c moleculespnpm dlx astra-rn list -s sheet
yarn dlx astra-rn listyarn dlx astra-rn list -c moleculesyarn dlx astra-rn list -s sheet
bunx --bun astra-rn listbunx --bun astra-rn list -c moleculesbunx --bun astra-rn list -s sheet
| Флаг | Что делает |
|---|---|
-c, --category <name> | только одна категория |
-s, --search <query> | фильтр по имени |
--json | напечатать сырой реестр |
info
Что лежит в одном компоненте и есть ли он у вас.
npx astra-rn info accordionpnpm dlx astra-rn info accordionyarn dlx astra-rn info accordionbunx --bun astra-rn info accordiondiff
Сравнивает то, что на диске, с реестром. Копия из реестра проходит то же
переписывание импортов, что и в add, поэтому в отчёт попадают только
настоящие расхождения — ваши правки или обновление наверху.
npx astra-rn diff # всё установленноеnpx astra-rn diff accordion # один компонент
pnpm dlx astra-rn diff # всё установленноеpnpm dlx astra-rn diff accordion # один компонент
yarn dlx astra-rn diff # всё установленноеyarn dlx astra-rn diff accordion # один компонент
bunx --bun astra-rn diff # всё установленноеbunx --bun astra-rn diff accordion # один компонент
remove
Удаляет папку установленного компонента. Общие помощники остаются на месте — их может импортировать другой компонент.
npx astra-rn remove accordionnpx astra-rn remove accordion button -y
pnpm dlx astra-rn remove accordionpnpm dlx astra-rn remove accordion button -y
yarn dlx astra-rn remove accordionyarn dlx astra-rn remove accordion button -y
bunx --bun astra-rn remove accordionbunx --bun astra-rn remove accordion button -y
| Флаг | Что делает |
|---|---|
-y, --yes | не спрашивать подтверждения |
config
Печатает конфигурацию так, как её разрешает CLI — ваш файл со всеми подставленными умолчаниями — и выходит с ненулевым кодом, если что-то неверно.
npx astra-rn confignpx astra-rn config --jsonnpx astra-rn config --clear-cache
pnpm dlx astra-rn configpnpm dlx astra-rn config --jsonpnpm dlx astra-rn config --clear-cache
yarn dlx astra-rn configyarn dlx astra-rn config --jsonyarn dlx astra-rn config --clear-cache
bunx --bun astra-rn configbunx --bun astra-rn config --jsonbunx --bun astra-rn config --clear-cache
| Флаг | Что делает |
|---|---|
--json | напечатать в JSON |
--clear-cache | сбросить закэшированные перечисления реестра |
create
Разворачивает новое приложение на Expo и настраивает в нём Astra.
npx astra-rn createnpx astra-rn create my-app
pnpm dlx astra-rn createpnpm dlx astra-rn create my-app
yarn dlx astra-rn createyarn dlx astra-rn create my-app
bunx --bun astra-rn createbunx --bun astra-rn create my-app
| Вопрос | Что значит |
|---|---|
| Имя приложения | Имя каталога проекта. Пробелы становятся дефисами. |
| Bundle / package ID | bundleIdentifier для iOS и package для Android, пишутся в app.json. |
| Шаблон | blank — typescript (по умолчанию), blank или tabs — expo router. |
| Менеджер пакетов | Определяется сам, можно переопределить. |
| Настроить Astra | Запускает astra-rn init в новом проекте. |
login
Сохраняет личный токен доступа — без него компоненты Pro не скачиваются.
Токен выпускается в настройках аккаунта и начинается с astra_.
npx astra-rn login --token astra_…pnpm dlx astra-rn login --token astra_…yarn dlx astra-rn login --token astra_…bunx --bun astra-rn login --token astra_…| Флаг | Что делает |
|---|---|
-t, --token <token> | токен из настроек аккаунта Astra |
Вместо флага можно задать переменную окружения ASTRA_TOKEN — она же
используется при каждом запросе к реестру, если файла с токеном нет.
logout
Удаляет сохранённый токен.
npx astra-rn logoutpnpm dlx astra-rn logoutyarn dlx astra-rn logoutbunx --bun astra-rn logoutКонфигурация
component.config.json лежит в корне проекта. Все ключи необязательны — всё,
что пропущено, берётся из умолчания ниже.
| Ключ | По умолчанию | Что значит |
|---|---|---|
outDir | src/shared/components | куда пишутся компоненты |
structure | category | category, flat или mirror |
typescript | true | библиотека поставляет исходник на TypeScript |
aliases.components | @/shared/components | префикс импорта, который пишется в скопированные файлы |
aliases.utils | @/shared/utils | то же, для помощников |
aliases.hooks | @/shared/hooks | то же, для хуков |
paths.utils | src/shared/utils | куда на диск ложатся помощники |
paths.hooks | src/shared/hooks | куда ложатся хуки |
paths.types | src/shared/types | куда ложатся извлечённые типы |
paths.examples | src/shared/examples | куда ложатся экраны с примерами |
include.dependencies | true | идти по импортам @/… и копировать то, на что они указывают |
include.types | false | копировать ещё и публичные типы |
include.examples | false | копировать ещё и экран с примером |
overwrite | false | заменять существующие файлы не спрашивая |
packageManager | auto | auto читает ваш лок-файл |
installDependencies | prompt | auto, prompt или never |
registry.origin | API реестра сайта Astra (/api/registry) | наведите на своё зеркало; то же задаёт ASTRA_REGISTRY_URL |
registry.index | index.json | ключ файла с перечислением |
registry.registry | core/registry.json | ключ метаданных компонентов |
registry.cache | 3600 | сколько секунд кэшируются перечисления; false отключает |
Строка $schema даёт редакторам автодополнение и проверку по всему этому.
Раскладки
Пример побогаче
Сводка команд
| Команда | Что делает |
|---|---|
astra-rn init | записать component.config.json |
astra-rn add [components…] | скопировать компоненты к себе |
astra-rn list | все компоненты реестра |
astra-rn info <component> | что лежит в одном и установлен ли он |
astra-rn diff [component] | сравнить то, что у вас, с реестром |
astra-rn remove <components…> | удалить установленный компонент |
astra-rn config | напечатать разрешённую конфигурацию |
astra-rn create [name] | развернуть новое приложение Expo с настроенной Astra |
astra-rn login | сохранить токен доступа к компонентам Pro |
astra-rn logout | удалить сохранённый токен |
За пределами CLI
Тот же реестр доступен кодовым агентам: astra-rn-mcp выставляет его
инструментами MCP, а навык using-astra
учит агента порядку работы вокруг них.
Сделано в Astra