Skip to content

Latest commit

 

History

History
138 lines (89 loc) · 12 KB

File metadata and controls

138 lines (89 loc) · 12 KB

🌐 Открыть Mihomo Constructor

Языки README:

Mihomo Constructor

Фронтенд-конструктор конфигов для Clash/Mihomo с упором на удобный визуальный интерфейс и чистый YAML на выходе — чтобы ты не копипастила куски конфигов вручную.

Идеально, если у тебя куча кривых ссылок и подписок от разных провайдеров, а хочется один аккуратный Clash/Mihomo конфиг без ручного редактирования YAML.

⚠️ Проект не является официальным продуктом команд Clash/Mihomo и никак не связан с MetaCubeX или другими авторами клиентов. Он просто умеет работать с их форматами конфигов и правилами.

Что делает этот инструмент

Mihomo Constructor собирает готовый config.yaml для Clash/Mihomo, комбинируя:

  • прокси-ссылки в популярных форматах (vless://, vmess://, ss://, trojan://, ssr://, hysteria://, hy://, hy2://, hysteria2://, tuic://),
  • подписки (proxy-providers) с выбором режима, как их подгружать,
  • прокси-группы с иконками, ручными списками и авто-генерацией прокси,
  • правила из списков GEOSITE / GEOIP, rule-providers или вручную (DOMAIN/IP/PROCESS),
  • опциональные сырые YAML-блоки для подписок, групп и правил, когда нужен полный контроль.

Приложение — статичная HTML-страница с ES-модулями и без бэкенда: открываешь, вставляешь свои данные, крутишь настройки и просто копируешь или скачиваешь готовый YAML.


Обзор возможностей

Парсинг входящих данных

  • Парсер нормализует входные данные (base64 или обычный текст) и вытаскивает сразу несколько ссылок из одной вставки.
  • Поддерживаются схемы VLESS, VMess, Shadowsocks, Trojan, ShadowsocksR, Hysteria (v1/v2), hy:// и TUIC, так что разнородные списки работают из коробки.

Подписки (proxy-providers)

  • Можно добавить несколько URL подписок за один раз — каждая автоматически становится провайдером.
  • Для каждой подписки можно выбрать, как её подтягивать (напрямую — DIRECT или через Proxy) и при необходимости открыть расширенную YAML-зону, чтобы заменить определение провайдера вручную.

Прокси-группы

  • Создавай группы через UI, выбирая тип (select, url-test, fallback, load-balance), иконку и ручные списки прокси.
  • Все распаршенные прокси отображаются списком с чекбоксами для быстрого назначения; при удалении или переименовании группы автоматически обновляются зависящие от неё правила.
  • Авто-сгенерированная группа auto собирает в себя все обнаруженные прокси и подписки, чтобы MATCH-правила продолжали работать даже при пустых ручных группах.

Правила и порядок правил

  • Загружай категории GEOSITE/GEOIP из встроенных текстовых файлов и ищи по ним; добавляй rule-providers или ручные правила DOMAIN / IP / PROCESS.
  • Можно одним кликом авто-сгруппировать правила, выбрать дефолтную цель для MATCH (DIRECT/REJECT/группа) и настраивать приоритеты в списке Rule order.
  • Для rule-providers и самих правил есть продвинутые YAML-блоки, если нужно вставить уже существующую конфигурацию.

Вывод и статус

  • При сборке всё (proxies + groups + providers + rules) объединяется в один YAML-фрагмент; показывается сводка статуса, и можно сразу скопировать в буфер или скачать config.yaml.

Локализация

  • Интерфейс уже умеет английский, китайский, персидский и русский; выбранный язык запоминается локально.
  • Эмодзи рендерятся через Twemoji, так что иконки выглядят более-менее одинаково на разных платформах.

Как пользоваться UI

  1. Вставь ссылки в поле “Input links” или нажми Demo, чтобы подставить тестовые ссылки, затем жми Build config.
  2. Добавь подписки в блоке Subscriptions (proxy-providers), выбери режим загрузки и открой Advanced Subscriptions (YAML), если хочешь задать сырые YAML-описания провайдеров.
  3. Настрой группы прокси через ➕ Add group: выбери тип, иконку, ручные прокси и отметь чекбоксами, какие распаршенные прокси должны в неё попадать. В продвинутом режиме можно сразу писать YAML.
  4. Загрузи данные для правил кнопками 📄 Load (GEOSITE) и 🌍 Load (GEOIP), ищи нужные категории, добавляй rule-providers или вводи свои правила. Кнопка ⚙️ Auto rules group может накидать базовые правила, а в блоке Rule order ты вручную подправишь приоритеты.
  5. Задай поведение MATCH по умолчанию (DIRECT/REJECT/какая-то группа) и при необходимости подкорректируй продвинутый YAML для правил.
  6. Собери и экспортируй: в панели Ready YAML появится итоговая конфигурация с кнопками Copy и Download config.yaml. Статус-плашки покажут количество элементов или ошибки парсинга.

Структура репозитория

  • index.html — страница с UI на ванильных JS-модулях; тут все контролы для ввода, подписок, групп, правил, статуса и вывода YAML.
  • styles/ — шрифты и стили интерфейса.
  • src/main.js — входная точка: парсит ввод, пересобирает состояние и генерирует YAML.
  • src/parser.js — устойчивый парсер прокси-ссылок, поддерживающий несколько схем и base64.
  • src/groups.js — логика и биндинги UI для управления группами прокси.
  • src/subs.js — логика и биндинги UI для подписок (proxy-providers).
  • src/rules.js — управление правилами, rule-providers, порядком правил и поведением MATCH.
  • src/geo.js — загрузка и поиск по категориям GEOSITE/GEOIP из встроенных файлов.
  • src/yaml-gen.js — сборка финального YAML из состояния приложения.
  • src/i18n.js и src/i18n/ — выбор языка, словари переводов и интеграция Twemoji.
  • geo/ — готовые списки geosite.txt / geoip.txt для офлайн-просмотра категорий GEOSITE/GEOIP.
  • geo-update.py — вспомогательный скрипт для обновления GEO-списков из meta-rules-dat.

Локальный запуск

Приложение статичное: клонируй репозиторий и подними любую статику, чтобы ES-модули корректно грузились, например:

python -m http.server 8000

Потом открой в браузере http://localhost:8000/. Никакой сборки и бэкендов не нужно.


Обновление GEO-файлов

geo/geosite.txt и geo/geoip.txt берутся из MetaCubeX/meta-rules-dat и регенерируются скриптом geo-update.py:

python geo-update.py

Скрипт клонирует исходный репозиторий, вытаскивает названия категорий (обрезая расширения), перекладывает текстовые файлы в geo/ и удаляет временный клон.


Ограничения

  • Без бэкенда: всё работает прямо в браузере, подписки подтягиваются с клиента.
  • Только браузер: CLI-обёртки нет, инструмент заточен под интерактивный веб-интерфейс.
  • Совместимость клиентов: вывод оптимизирован под конфиги Mihomo/Clash.Meta. Некоторым форкам или сильно кастомным клиентам могут понадобиться ручные правки.
  • Нет встроенного тестирования нод: приложение не пингует и не бенчмаркает прокси, оно только генерирует YAML-конфиг.

Локализация и вклад

  • Добавляй или правь переводы в src/i18n/*.js и регистрируй новые локали в src/i18n.js.
  • Можно смело открывать issues или PR’ы для улучшения парсера, пресетов или UI.
  • Пожалуйста, держи переводы README в их отдельных файлах; эта английская версия — основная и каноничная.

Авторство

Mihomo Constructor — это независимый вспомогательный инструмент поверх форматов и правил Clash/Mihomo. Все упомянутые продуктовые названия принадлежат их авторам.