docs / subscription-headers
Стандартные и nimbo-заголовки: тема, логотип, стиль и маршрутизация приложений.
Заголовки подписки
Nimbo читает дополнительные HTTP-заголовки из ответа подписки. Через них провайдер может передать название профиля, ссылки поддержки, объявление, лимиты трафика, оформление интерфейса и правила маршрутизации приложений в direct или proxy. Заголовки возвращаются вместе с обычным телом подписки.
Названия заголовков регистронезависимы — для совместимости лучше писать их в нижнем регистре. Текстовые значения можно передавать обычной строкой, в percent-encoding (%0A для переноса строки) или с префиксом base64:. Помимо стандартных заголовков Nimbo понимает собственные nimbo-* для темы, стиля и маршрутизации, а также их x-алиасы.
HTTP/1.1 200 OK
profile-title: My VPN
nimbo-custom: update
nimbo-style: glass
process-direct: Steam.exe, EpicGamesLauncher.exe
process-proxy: Telegram.exe, Discord.exeСтандартные заголовки
| Заголовок | Алиасы | Назначение |
|---|---|---|
profile-title | — | Имя подписки в Nimbo. |
subscription-userinfo | — | Лимиты трафика: upload, download, total, expire. |
support-url | profile-support-url, x-support-url | Ссылка на поддержку провайдера. |
profile-web-page-url | profile-page-url, website-url, web-page-url, x-web-page-url | Сайт или личный кабинет провайдера. |
profile-update-interval | — | Интервал обновления профиля в секундах, отображается в метаданных подписки. |
announce | profile-announce, subscription-announce, happ-announce, x-announce, x-subscription-announce | Объявление провайдера. Внутри него также можно передавать правила приложений. |
Пример subscription-userinfo:
subscription-userinfo: upload=1073741824; download=5368709120; total=107374182400; expire=1893456000nimbo-custom — когда применять
Управляет тем, когда применять остальные nimbo-* настройки.
| Значение | Поведение |
|---|---|
add | Применить только при первом добавлении профиля |
update | Применять при каждом обновлении подписки и при переключении профиля |
| (нет заголовка) | Не применять nimbo-* |
Без nimbo-custom: update тема, логотип и стиль не будут обновляться на каждом цикле.nimbo-theme — тема одной строкой
nimbo-theme: <filter>,<accentHex>,<orb1Hex>,<orb2Hex>,<blur>Все поля после filter опциональны: пропущенный или невалидный сегмент оставляет поле без изменений.
filter — алгоритм цветовой схемы
| filter | В приложении | Эффект |
|---|---|---|
fidelity | Обычные | Точный акцент без искажения. Рекомендуемый. |
vibrant | Яркие | Повышенная насыщенность |
monochrome | Моно | Обесцвечивание (серый) |
neutral | Нейтральные | Приглушённая насыщенность |
expressive | Выразительные | Сдвиг оттенка |
Остальные поля
| Поле | Назначение | Формат |
|---|---|---|
accentHex | Акцентный цвет (кнопки, акценты) | 6 или 8 hex, # опционален |
orb1Hex | Цвет верхних орбов фона | hex |
orb2Hex | Цвет нижнего орба фона | hex |
blur | Мягкость орбов: 1 — чёткие, 5 — диффузное свечение | 1–5 |
Пример
nimbo-custom: update
nimbo-theme: fidelity,#9B67FF,#7445FF,#41DDFF,2Фирменный фиолетовый акцент Nimbo, точный фильтр, блюр 2. Если orb1/orb2 пусты — орбы следуют за акцентом. Поддерживается алиас x-nimbo-theme, в нём поле filter можно оставить пустым:
x-nimbo-theme: ,9B67FF,7445FF,41DDFF,2nimbo-logo — логотип провайдера
nimbo-logo: <логотип>Клиент показывает круглый логотип в шапке карточки подписки с акцентной обводкой, которая загорается вместе с кнопкой подключения. К логотипу применяется активный фильтр темы. Если заголовка нет — логотип не показывается.
Поддерживаемые форматы:
| Формат | Пример |
|---|---|
| HTTP/HTTPS URL | nimbo-logo: https://example.com/logo.png |
| Data URI | nimbo-logo: data:image/png;base64,iVBORw0KGgo... |
| Raw Base64 PNG | nimbo-logo: iVBORw0KGgo... |
Поддерживается алиас x-nimbo-logo.
nimbo-style — стиль интерфейса
Выбирает оформление интерфейса клиента.
| Значения | Результат |
|---|---|
glass, nebula, nimbo, nimboglass | Стеклянный интерфейс Nimbo |
material, materialyou, md3, mdyou, md | Material You |
nimbo-style: glass
x-nimbo-style: materialТумблеры пользователя
В настройках клиента есть тумблеры «Тема из подписки» и «Лого из подписки» (по умолчанию включены). Пользователь всегда может отключить применение темы или логотипа провайдера — оператор это переопределить не может.
Маршрутизация приложений: direct / proxy
В разговоре это часто называют proxy-direct, но в заголовках Nimbo используются отдельные группы: process-direct, process-proxy и process-rules.
Такие правила позволяют провайдеру заранее указать, какие процессы должны идти напрямую (direct), а какие через VPN/прокси (proxy). Правила сохраняются в метаданных подписки и включены по умолчанию. Пользовательские локальные правила имеют приоритет: пользователь может отключить правило провайдера или заменить режим для того же процесса.
Заголовки для direct
Все процессы из этих заголовков получают режим direct.
process-direct: Steam.exe, EpicGamesLauncher.exeПоддерживаемые имена:
process-direct
process-direct-list
process-bypass
app-direct
apps-direct
nimbo-process-direct
x-nimbo-process-direct
x-process-direct
x-app-directЗаголовки для proxy
Все процессы из этих заголовков получают режим proxy.
process-proxy: Telegram.exe, Discord.exeПоддерживаемые имена:
process-proxy
process-proxy-list
app-proxy
apps-proxy
nimbo-process-proxy
x-nimbo-process-proxy
x-process-proxy
x-app-proxyСмешанные правила
Если в одном месте нужно передать и direct, и proxy, используйте process-rules или ссылку на файл правил.
Поддерживаемые имена:
process-rules
app-rules
apps-rules
nimbo-process-rules
x-nimbo-process-rules
x-process-rules
x-app-rulesПример через percent-encoded переносы строк:
process-rules: PROCESS-NAME,Steam.exe,DIRECT%0APROCESS-NAME,Telegram.exe,PROXYДля больших списков лучше передавать URL — Nimbo скачает файл и распарсит его как JSON или текст:
process-rules: https://cdn.example.com/nimbo/app-rules.jsonФормат текстового списка
Разделители: запятая, точка с запятой или новая строка.
# direct
process-direct: Steam.exe, EpicGamesLauncher.exe
# proxy
process-proxy: Telegram.exe; Discord.exe
# Mihomo/Clash-style
PROCESS-NAME,Spotify.exe,DIRECT
PROCESS-NAME,Telegram.exe,PROXYПоддерживаемые режимы в тексте:
| Режим | Алиасы |
|---|---|
direct | bypass, bypasslan, bypass_lan |
proxy | vpn, proxied |
Формат JSON
{
"processDirect": ["Steam.exe", "EpicGamesLauncher.exe"],
"processProxy": ["Telegram.exe", "Discord.exe"],
"rules": [
{
"mode": "direct",
"appNames": ["Spotify.exe"]
},
{
"mode": "proxy",
"apps": ["C:\\Users\\Danila\\AppData\\Local\\Telegram Desktop\\Telegram.exe"]
}
]
}Поддерживаемые ключи для списков приложений:
appNames
apps
processes
processNames
processDirect
processProxy
directApps
proxyAppsПоддерживаемые ключи режима внутри объекта:
mode
action
outbound
outboundTag
policyПравила внутри announce
В announce можно добавить строки с правилами. Это удобно, если панель уже умеет отдавать announcement, но не умеет добавлять отдельные заголовки.
announce: process-direct: Steam.exe, EpicGamesLauncher.exe%0Aprocess-proxy: Telegram.exe, Discord.exeВнутри announce поддерживаются формы с двоеточием, знаком равенства и пробелом:
process-direct: Steam.exe
process-proxy=Telegram.exe
app-direct Discord.exe
app-rules https://cdn.example.com/nimbo/app-rules.txtЕсли в announce указать отдельной строкой HTTP/HTTPS URL на .txt, .json, .yaml, .yml или путь с process/app, Nimbo попробует скачать его как список правил. Для явного mixed-режима лучше писать ключ:
process-rules: https://cdn.example.com/nimbo/app-rules.jsonКак Nimbo сопоставляет процесс
Можно передавать только имя файла или полный путь:
Telegram.exe
C:\Users\Danila\AppData\Local\Telegram Desktop\Telegram.exeДля сопоставления Nimbo нормализует путь и использует имя исполняемого файла. Поэтому Telegram.exe и полный путь к Telegram.exe считаются правилом для одного приложения. Не добавляйте один и тот же процесс одновременно в direct и proxy: при конфликте пользовательское локальное правило сможет переопределить провайдера, но на стороне провайдера лучше держать список однозначным.
CORS
Если подписка читается из WebView или браузерного окружения, добавьте Access-Control-Expose-Headers, иначе клиент может не увидеть кастомные заголовки.
Access-Control-Expose-Headers: profile-title, subscription-userinfo, support-url, profile-update-interval, announce, nimbo-custom, nimbo-theme, nimbo-logo, nimbo-style, process-direct, process-proxy, process-rules, app-direct, app-proxy, app-rules, x-nimbo-theme, x-nimbo-logo, x-nimbo-style, x-process-direct, x-process-proxy, x-process-rules, x-app-direct, x-app-proxy, x-app-rulesПримеры настройки
Если подписки раздаёт Remnawave (частый случай), заголовки задаются прямо в панели.
Remnawave
Заголовки настраиваются в панели. Откройте Subscription → Settings (актуально для Remnawave 2.x).
Часть значений у Remnawave — это отдельные поля настроек подписки:
| Поле в панели | Заголовок |
|---|---|
| Profile title | profile-title |
| Support link | support-url |
| Profile webpage URL | profile-web-page-url |
| Announce | announce |
Лимиты трафика и срок действия (subscription-userinfo) Remnawave подставляет автоматически по данным пользователя.
Остальные заголовки Nimbo добавляются в карточке кастомных заголовков ответа (Subscription Response Headers) парами «ключ → значение»:
| Ключ | Значение |
|---|---|
nimbo-custom | update |
nimbo-theme | fidelity,#9B67FF,#7445FF,#41DDFF,2 |
nimbo-logo | https://example.com/assets/logo.png |
nimbo-style | glass |
process-direct | Steam.exe, EpicGamesLauncher.exe |
process-proxy | Telegram.exe, Discord.exe |
process-rules | https://cdn.example.com/nimbo/app-rules.json |
Панель отдаёт эти заголовки вместе с подпиской. Если клиент читает подписку из браузерного окружения, проверьте, что нужные заголовки попадают в Access-Control-Expose-Headers — см. раздел CORS выше.
Сводка nimbo-заголовков
| Заголовок | Назначение | Пример |
|---|---|---|
nimbo-custom | Когда применять nimbo-* | update |
nimbo-theme | Тема одной строкой | fidelity,#9B67FF,#7445FF,#41DDFF,2 |
nimbo-logo | Логотип провайдера | https://example.com/logo.png |
nimbo-style | Стиль интерфейса | glass |
process-direct | Процессы напрямую | Steam.exe, EpicGamesLauncher.exe |
process-proxy | Процессы через VPN | Telegram.exe, Discord.exe |
process-rules | Смешанные правила или URL | https://cdn.example.com/nimbo/app-rules.json |