Ядро Clash несёт на борту RESTful API (по умолчанию 127.0.0.1:9090); GUI Clash for Windows - сам всего лишь клиент этого API. Понимание API открывает сторонние веб-панели и автоматизацию скриптами.

Проверка API

curl http://127.0.0.1:9090/version

Ответ вида {"premium":true,"version":"2023.08.17"} - всё в порядке.

Полезные эндпоинты

ЭндпоинтНазначение
GET /proxiesВсе группы и узлы с текущим выбором.
PUT /proxies/:nameСменить выбор в select-группе.
GET /connectionsЖивой список соединений (источник данных страницы Connections).
PATCH /configsМенять режим, порты и т.д. на лету: {"mode":"Global"}.
GET /trafficПотоковые скорости приёма/отдачи.

Подключение веб-панели

Открытые панели (yacd, clash-dashboard) - статические страницы: откройте, укажите адрес API http://127.0.0.1:9090 - и получите примерно те же органы управления, что в клиенте. Их сила - управление Clash на другой машине: подставьте её LAN-адрес.

Секрет для API

Выставляя API в локальную сеть (external-controller: 0.0.0.0:9090), обязательно задайте секрет. Через Mixin:

mixin:
  external-controller: 0.0.0.0:9090
  secret: "a-long-random-string"

Дальше каждый запрос обязан нести Authorization: Bearer a-long-random-string.

Безопасность: незащищённый 9090, доступный извне localhost, позволяет кому угодно менять ваши настройки прокси и читать журнал соединений. Без веской причины держите привязку 127.0.0.1.

Готовые примеры автоматизации (плановое переключение узлов и не только) - в Автоматизации через API.