🚀 Mini-app

Как превратить скрипт или пак в отдельное мини-приложение на базе EyeAuras

Ранний альфа-функционал. Уже можно собирать вполне рабочие вещи, но инфраструктура все еще активно развивается.

Что такое mini-app

Mini-app - это ваше приложение, построенное на базе EyeAuras.

Снаружи это может выглядеть как отдельная программа, а под капотом использовать готовую инфраструктуру:

  • C# скрипты
  • автоматизацию
  • захват изображения и память
  • пользовательские интерфейсы
  • упаковку в паки
  • обновления
  • саблицензии
  • защиту скриптов

Это может быть что угодно:

  • небольшой тул
  • кликер
  • бот
  • лаунчер
  • узкоспециализированная утилита

Главная идея простая: вы пишете код и логику, а EyeAuras берет на себя огромный кусок базовой инфраструктуры.

Если хочется посмотреть на живой пример, вот он:

Hello, World

Mini-app и обычный пак - в чем разница

Пак сам по себе - это просто способ распространения.

Mini-app - это уже сценарий, в котором ваш скрипт или проект становится центральной частью продукта, а интерфейс EyeAuras уходит на второй план или вообще скрывается.

Если коротко:

  • обычный пак: пользователь по-прежнему в основном работает с UI EyeAuras
  • mini-app: пользователь в основном работает уже с вашим UI и вашей логикой

Именно поэтому mini-app почти всегда строится вокруг EyePad и специальных параметров запуска.

Два типовых пути

1. Один файл, один скрипт

Это самый простой и быстрый путь.

Вы пишете один .csx или .cs файл, который:

  • рисует интерфейс
  • обрабатывает кнопки
  • выполняет автоматизацию
  • живет столько же, сколько и ваше приложение

Такой подход отлично подходит для:

  • прототипов
  • маленьких утилит
  • простых внутренних инструментов
  • первых mini-app

Проще всего начинать с ImGui - это самый быстрый способ собрать свой UI прямо внутри скрипта.

2. Полноценный проект

Если одного файла уже мало, можно сделать полноценный C# проект:

  • экспортировать скрипт в .sln
  • открыть его в Rider или Visual Studio
  • работать через Live Import
  • использовать несколько файлов, классов и проектов

В этом режиме вы можете строить уже довольно серьезные приложения:

Вот в этот момент mini-app перестает быть "скриптом на попробовать" и начинает становиться полноценным продуктом.

Почему тут важен EyePad

Технически mini-app обычно запускается через режим EyePad, то есть через:

EyeAuras.exe --pad

Именно этот режим лучше всего подходит для:

  • запуска целевого скрипта сразу при старте
  • работы со своим UI
  • скрытия большей части стандартного интерфейса EyeAuras
  • режима "мой скрипт и есть приложение"

В портативной версии для удобства рядом обычно лежит EyePad.vbs, который просто запускает EyeAuras.exe --pad.

Как обычно собирается mini-app

1. Создаете скрипт

Самый простой вариант - создать папку, добавить ауру и положить туда ваш основной скрипт.

Важно понимать одну ключевую идею:

в mini-app сценарии ваш основной скрипт и есть приложение.

То есть:

  • программа стартует
  • EyeAuras загружает нужную инфраструктуру
  • запускается целевой скрипт
  • когда этот скрипт завершится, приложение тоже обычно закрывается

Именно поэтому основной скрипт должен жить все время работы вашего mini-app.

Script

2. Если проект вырос - открываете .sln

Как только логики становится много, удобнее перейти на обычную разработку через IDE:

  • экспорт
  • Rider / Visual Studio
  • импорт
  • Live Import

Подробно это описано здесь:

3. Публикуете пак

Когда скрипт или проект готовы, публикуете папку как пак.

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

Empty Pack

4. Настраиваете запуск через Pack Config

Дальше самое важное - объяснить паку, как именно он должен стартовать.

Это делается в Synchronization -> Pack Config.

Pack Config

Вот сюда можно вписать дополнительные аргументы командной строки:

Command line args

После этого пользователь уже не обязан сам что-то прописывать вручную - нужные аргументы будут жить прямо в конфигурации пака.

Типовая командная строка

Ниже один из типовых вариантов запуска mini-app:

--pad --read-only --publish-single-file --ui splashOnly --readiness script --acceptLicense "config/auras/HW/Script.json"

Разберем по частям:

  • --pad - включает режим EyePad. Для mini-app это базовый режим запуска.
  • --read-only - изменения в аурах, макросах, деревьях и скриптах не будут сохраняться между запусками. Это делает поведение более предсказуемым.
  • --publish-single-file - подсказывает серверной упаковке, что вы хотите собрать максимально цельный вариант приложения, вплоть до одного исполняемого файла.
  • --ui splashOnly - показывает только splash-screen и не открывает основной UI EyeAuras.
  • --readiness script - считает приложение "готовым" не тогда, когда загрузился сам EyeAuras, а когда реально стартовал ваш скрипт. Для mini-app UX обычно лучше именно такой.
  • --acceptLicense - позволяет пропустить стандартное окно лицензионного соглашения EyeAuras. Используется именно для mini-app сценариев.
  • "config/auras/HW/Script.json" - это целевой файл, который нужно открыть и запустить при старте.

Именно последняя строка делает так, что приложение после старта сразу идет в ваш скрипт, а не ждет действий пользователя.

Что дают --ui и --readiness

Это две настройки, которые сильнее всего влияют на ощущение от приложения.

--ui

Управляет тем, какой интерфейс EyeAuras вообще будет виден пользователю.

Чаще всего для mini-app используются:

  • normal - обычный режим
  • splashOnly - только splash-screen, без основного окна

Если цель - спрятать EyeAuras и оставить только ваш интерфейс, то чаще всего нужен именно splashOnly.

--readiness

Управляет тем, кто решает, когда приложение "готово".

  • app - готовность определяется самим EyeAuras
  • script - готовность определяется стартом целевого скрипта

Для mini-app второй вариант обычно приятнее, потому что splash-screen исчезает ближе к моменту, когда уже реально готов ваш UI.

Что можно использовать внутри mini-app

Здесь нет ограничения "только скрипт".

Внутрь mini-app можно включать:

  • C# код
  • NuGet-пакеты
  • изображения, видео, шрифты и DLL через Embedded Resources
  • интерфейс на ImGui
  • интерфейс на Blazor Windows
  • обычные ауры, макросы и деревья поведения
  • платный доступ через саблицензии

То есть mini-app это не "отдельный новый тип проекта", а скорее способ собрать существующие возможности EyeAuras в продукт с нужным вам UX.

Какой UI выбрать

Если хочется максимально быстрый старт:

  • берите ImGui
  • один файл
  • один скрипт
  • минимум инфраструктуры

Если нужен более богатый и красивый интерфейс:

  • берите Blazor Windows
  • используйте несколько файлов и компонентов
  • при необходимости переходите на .sln и IDE

А можно вообще без отдельного интерфейса?

Да. Не каждый проект обязан быть "полноценным приложением с окнами".

Иногда mini-app может выглядеть как:

  • один фоновый скрипт
  • один оверлей
  • маленькая панель управления
  • связка из нескольких аур и автоматизации

Но чем сильнее вы хотите отдалиться от внешнего вида обычного EyeAuras, тем полезнее становится EyePad + свой UI.

Что получает пользователь на выходе

Идеальный сценарий такой:

  • вы написали скрипт или проект
  • настроили pack
  • добавили нужные аргументы запуска
  • опубликовали
  • пользователь скачал готовую portable-версию
  • запустил ее как обычную программу

В хорошем случае пользователь вообще не думает о том, что под капотом там EyeAuras - он просто видит ваш продукт.

Что почитать дальше