Документация

Всё, что вам нужно знать о HyperGateway

Установка

Клиент — это один самодостаточный бинарник без зависимостей. Пройдите три шага ниже — и туннель заработает. Установка Python не требуется (она нужна только для запуска из исходников, см. конец раздела).

Шаг 1. Получите токен

Войдите в личный кабинет portal.hypergateway.ru, откройте Дашборд и скопируйте персональный токен — он понадобится при первом запуске клиента.

Шаг 2. Скачайте клиент для вашей ОС

Система Файл
macOS (Apple Silicon) hypergateway-client-darwin-arm64
macOS (Intel) hypergateway-client-darwin-x86_64
Linux (x86_64) hypergateway-client-linux-x86_64
Windows (x64) hypergateway-client-windows-x86_64.exe

macOS / Linux — из терминала (пример для Apple Silicon):

curl -L -o hypergateway-client \
  https://cdn.hypergateway.ru/download/hypergateway-client-darwin-arm64
chmod +x hypergateway-client
xattr -cr ./hypergateway-client   # только macOS: снять карантин Gatekeeper

Шаг 3. Запустите туннель

При первом запуске передайте токен через stdin — клиент сохранит его в конфиг:

echo ВАШ_ТОКЕН | ./hypergateway-client --local 127.0.0.1:8000

Дальше токен уже сохранён — достаточно указывать локальный адрес:

./hypergateway-client --local 127.0.0.1:8000

Публичный URL появится в выводе клиента. Локальная веб-панель инспектора запросов — на http://127.0.0.1:22080. Свой поддомен запрашивается флагом --subdomain:

./hypergateway-client --local 127.0.0.1:8000 --subdomain myapp   # myapp.hypergateway.ru

Windows. В PowerShell или CMD запуск аналогичен: .\hypergateway-client-windows-x86_64.exe --local 127.0.0.1:8000. Токен при первом запуске клиент запросит интерактивно.

Из исходников (для разработки)

Требуется Python 3.10–3.12 и uv, а также доступ к репозиторию проекта:

git clone <адрес-репозитория> hypergateway
cd hypergateway/client
uv sync
uv run hypergateway-client --local 127.0.0.1:8000

Использование

Открыть локальный порт

./hypergateway-client --local 127.0.0.1:8000

Это откроет доступ к вашему локальному приложению на порту 8000 в интернет. Параметр --local задаётся в форме host:port.

Свой поддомен

./hypergateway-client --local 127.0.0.1:8000 --subdomain myapp

Запросить конкретный поддомен: myapp.hypergateway.ru

Подробное логирование

./hypergateway-client --local 127.0.0.1:8000 -v

Смотрите все HTTP запросы и ответы в реальном времени.

Справка CLI

Опция Описание По умолчанию
--local Локальный адрес в форме host:port (обязательный)
--subdomain Желаемый поддомен (например, myapp) случайный
--server-host Хост брокера HyperGateway control.hypergateway.ru
--ctrl-port Порт control plane 4040
--data-port Порт data plane 4041
--no-tls Отключить TLS (не рекомендуется; по умолчанию TLS включён) off
--tls-ca Путь к CA-bundle / серту для проверки TLS системный
--tls-insecure Отключить проверку сертификата (только для разработки) off
--no-ui Отключить локальную веб-панель инспектора off
--ui-host Хост веб-панели 127.0.0.1
--ui-port Порт веб-панели (0 — выбрать свободный) 22080
--name Имя поддомена (устарело, используйте --subdomain)
-v, --verbose Подробные логи (можно повторять) off

Конфигурация

Токен аутентификации

При первом запуске HyperGateway запросит токен аутентификации и сохранит его в конфигурационный файл. В неинтерактивном режиме токен можно передать через stdin (он также сохранится в конфиг): echo TOKEN | ./hypergateway-client --local 127.0.0.1:8000. Передавать токен в аргументах командной строки нельзя.

Расположение конфиг. файлов

  • macOS / Linux: ~/.config/hypergateway/config.yaml (учитывается $XDG_CONFIG_HOME)
  • Windows: %APPDATA%\hypergateway\config.yaml

Пример конфигурации

server_host: control.hypergateway.ru
ctrl_port: 4040
data_port: 4041
auth_token: your-auth-token-here

MCP-сервер (Claude Code)

HyperGateway поставляется с MCP-сервером (Model Context Protocol), который позволяет поднимать и контролировать туннели прямо из Claude Code — без переключения в терминал. Ассистент сам открывает туннель для вашего локального приложения, показывает публичный URL и даёт заглянуть в прошедшие через него HTTP-запросы. Туннелей может быть несколько одновременно — по одному на каждый локальный сервис. Сервер работает по транспорту stdio (JSON-RPC) и является тонкой обёрткой над CLI hypergateway-client (на каждый туннель запускается отдельный подпроцесс клиента).

1. Подключение к Claude Code

Из исходников (разработка, через uv):

cd hypergateway/client
uv sync
claude mcp add hypergateway -- uv run hypergateway-mcp

Готовый бинарник: скачайте hypergateway-mcp-<os>-<arch> из того же каталога загрузок, что и клиент (например, hypergateway-mcp-darwin-arm64). Файлы hypergateway-mcp и hypergateway-client должны лежать рядом — MCP-сервер запускает клиент из соседнего файла:

claude mcp add hypergateway -- /путь/к/hypergateway-mcp

Проверить подключение можно командой claude mcp list — сервер hypergateway должен появиться в списке.

2. Сохранение токена

Перед первым запуском туннеля нужно сохранить токен авторизации. Достаточно попросить ассистента вызвать инструмент configure:

configure(auth_token="ваш-токен", server_host="hypergateway.ru")

Токен и адрес сервера сохранятся в тот же конфигурационный файл, что и у CLI. Если вы уже запускали hypergateway-client ранее и токен сохранён — этот шаг можно пропустить.

3. Работа с туннелем

Дальше достаточно обычных фраз ассистенту, например:

«Открой туннель на порт 8000 с поддоменом my-app»
«Подними ещё один туннель на 9000 с поддоменом api»
«Покажи публичный URL и статус всех туннелей»
«Выведи последние 10 запросов туннеля my-app»
«Покажи детали запроса »
«Повтори запрос »
«Дай curl для последнего запроса»
«Закрой туннель api» / «Закрой все туннели»

Доступные инструменты

Инструмент Параметры Назначение
configure auth_token?, server_host? Сохранить токен и/или адрес сервера в конфиг
start_tunnel local, subdomain?, insecure? Поднять туннель (id вида t1, t2, …) и вернуть публичный URL. Каждый вызов — отдельный туннель
stop_tunnel tunnel_id? Остановить туннель; "all" — остановить все
tunnel_status tunnel_id? Без tunnel_id — список всех туннелей; с ним — URL, состояние, аптайм, число запросов одного
list_requests limit? (20), tunnel_id? Последние HTTP-запросы через туннель (свежие сверху)
get_request id, tunnel_id? Детали запроса: заголовки, тела, статус, тайминги
get_curl id, tunnel_id? Готовая curl-команда, воспроизводящая запрос
replay_request id, timeout_s? (10), tunnel_id? Повторно отправить запрос на localhost и вернуть ответ

В tunnel_id принимается id туннеля (t1), его сабдомен, локальная цель host:port или просто порт. Если запущен только один туннель, tunnel_id можно не указывать; если несколько — инструменты вернут список туннелей с просьбой уточнить.

Инспекция запросов и повтор (retry)

Через MCP вы получаете те же данные, что показывает локальная панель инспектора: list_requests отдаёт список прошедших запросов, get_request — детали (заголовки, тела, статус, тайминги), а replay_request повторно отправляет сохранённый запрос напрямую на ваш localhost (минуя туннель) и возвращает ответ — удобно, чтобы воспроизвести и отладить обращение, не дожидаясь его повторно с внешней стороны.

list_requests(limit=10)          # взять id нужного запроса
get_request(id="<id>")           # посмотреть детали
replay_request(id="<id>")        # повторить и получить ответ

Веб-панель инспектора

У каждого туннеля есть своя визуальная панель инспектора (живая таблица запросов с автообновлением, фильтрами и кнопкой Replay). При запуске через MCP она слушает локальный порт, который возвращается в поле ui_port ответа start_tunnel и tunnel_status. Откройте её в браузере:

http://127.0.0.1:<ui_port>

Примечание. Параметр local принимает как голый порт ("8000"), так и host:port ("127.0.0.1:8080"). Повторный start_tunnel с той же парой local+subdomain вернёт уже работающий туннель, а занятый другим туннелем сабдомен — ошибку. Логи каждого туннеля пишутся в mcp-tunnel-<id>.log рядом с конфигом.

Нужна помощь?

Если у вас возникли проблемы, мы готовы помочь!