Читайте и отвечайте на сообщения мессенджера MAX (max.ru) прямо в Telegram.
Двусторонний · медиа · отдельная тема на каждый чат · бесплатно · self-hosted
· 🇬🇧 In English
max2tg — личный мост: зеркалит ваш аккаунт MAX в Telegram. Входящие
сообщения, фото, видео, файлы и стикеры прилетают в Telegram, а ответить можно
прямо оттуда — ответ уходит в нужный чат MAX.
MAX удалён из App Store — на iOS его официально не установить, и нормально пользоваться MAX на Apple сейчас по сути невозможно.
max2tgэто решает: все ваши диалоги MAX приходят в Telegram, который у вас уже есть, — с обычными push-уведомлениями 🔔, поиском и нормальным клиентом. Отвечать тоже можно прямо из Telegram. По факту это единственный рабочий способ читать и писать в MAX с iPhone.
1. пуши из MAX на локскрине iPhone · 2. каждый чат — отдельная тема · 3. ответ из Telegram уходит обратно в MAX (макеты)
Видно, что сообщения именно из MAX: мост помечает каждое — MAX | Имя (чат …), голосовые как 🎤 Голосовое (N с) — открыть в MAX, а доставку ответа подтверждает ✅ Отправлено в MAX. Это реальный формат вывода моста.
- Возможности
- Быстрый старт
- ⭐ Режим тем
- 🎮 Команды
- Запуск на сервере 24/7
- Вопросы и ответы
- Ограничения
- Для разработчиков
Что именно передаётся:
| Направление | Содержимое |
|---|---|
| MAX → Telegram | текст, фото, видео, файлы, стикеры, пометки о голосовых |
| Telegram → MAX | текст (ответом), фото, видео, файлы |
Windows, ~5 минут. Запустите run.bat — мастер настройки попросит три
вещи:
1. Токен Telegram-бота
Создайте бота у @BotFather командой /newbot и
скопируйте выданный токен.
2. /start вашему боту
Напишите боту /start, чтобы мост узнал, куда слать сообщения.
3. Токен MAX
Войдите на web.max.ru, нажмите F12 → вкладка Console,
выполните команду и вставьте результат в мастер:
copy(JSON.parse(localStorage.__oneme_auth).token)
⚠️ Не нажимайте «Выйти» (Logout) в web.max.ru — это аннулирует токен. Просто закройте вкладку. Токен хранится локально вconfig.json.
Готово ✅ Это базовый режим: все сообщения MAX приходят в одну личку с ботом. Дальше советуем включить режим тем — так гораздо удобнее.
Чтобы каждый MAX-чат стал отдельной темой Telegram-форума, а не сваливался в одну ленту:
- Создайте Telegram-супергруппу и включите в настройках «Темы» (Topics).
- Добавьте бота в группу, дайте права администратора с разрешением «Управление темами» (Manage Topics) — без этого мост не создаст темы.
- Узнайте id группы (начинается с
-100…, например через @getidsbot) и пропишите вconfig.json:
{
"telegram_topics_enabled": true,
"telegram_forum_chat_id": -1001234567890,
"telegram_preload_topics": true,
"telegram_seed_last_messages": true,
"telegram_confirm_sent": false
}Каждый MAX-чат получит свою тему с именем собеседника. Пишете в теме — уходит в этот чат MAX; Reply (свайп) отправляет ответ цитатой.
Ботом можно управлять MAX прямо из Telegram — команды видны в меню по «/»:
| Команда | Что делает |
|---|---|
/dm <телефон или id> <текст> |
Написать человеку. Найду по номеру и напишу; его ответ придёт отдельной темой. |
/join <ссылка или @username> |
Вступить в канал / группу / чат. Появится отдельной темой. |
/help · /start |
Справка и приветствие. |
Просто: люди — /dm по телефону, каналы — /join по ссылке.
Примеры:
/dm +79991234567 привет # написать человеку по телефону
/dm 21243808 привет # написать по id
/join https://max.ru/join/AbCdEf # вступить в канал/чат по ссылке (или просто пришлите ссылку)
ℹ️ Ответить в существующий чат —
Reply(свайп) на пересланном сообщении: уйдёт точно туда.Поиск каналов по названию MAX не поддерживает — только по ссылке/@нику (
/join).
Мост держит постоянное соединение, поэтому ему нужен хост, который не «засыпает» (обычные бесплатные «спящие» PaaS не подойдут).
| Где | Как |
|---|---|
| 🖥 Windows | run.bat + автозапуск через shell:startup |
| 📟 Старый Android | Termux — мини-сервер с российским IP |
| ☁️ Сервер (Docker) | готовый образ из GHCR, без исходников ↓ |
Готовый Docker-образ — нужны только два файла:
mkdir max2tg && cd max2tg
curl -O https://raw.githubusercontent.com/Sillkiin/max2tg/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/Sillkiin/max2tg/main/.env.example
nano .env # три значения MAX2TG_* (свежий токен MAX!)
docker compose up -d # подтянет ghcr.io/sillkiin/max2tg:latestОбновление позже: docker compose pull && docker compose up -d.
Полный гайд (Oracle Cloud, прокси, systemd) — в DEPLOY.md.
Канал шлёт слишком много уведомлений — как заглушить?
Заглушите тему штатными средствами Telegram: долгий тап по теме в
списке → «Выключить уведомления» (или внутри темы → тап по названию →
отключить уведомления). В форуме глушится каждая тема отдельно — каналам
выключите, людям оставите. Это полностью убирает уведомление (и звук, и баннер).
Бот сам сделать это не может: «без звука» он отправить умеет, но совсем убрать
пуш — настройка на стороне Telegram, которую ставите вы.
Темы пересоздаются после каждого перезапуска
Значит не сохраняется state.json (карта «MAX-чат → тема»). В Docker он лежит
на постоянном томе (docker-compose.yml); путь можно задать через
MAX2TG_STATE_PATH. Без Docker файл хранится рядом со скриптами.
Как убрать «✅ Отправлено в MAX» после каждого ответа
Добавьте в config.json: "telegram_confirm_sent": false (или
переменную окружения MAX2TG_TELEGRAM_CONFIRM_SENT=false). Ошибки
отправки при этом всё равно показываются.
Мост пишет, что токен MAX устарел
Получите свежий токен на web.max.ru (та же
команда в консоли) и обновите его в config.json или в
.env, затем перезапустите мост.
- ⚙️ Неофициальный API MAX (через vkmax — официального API для личных аккаунтов нет). Для MAX это выглядит как вход через веб-версию; теоретически он может ограничить сессию.
- 🎤 Голосовые из MAX приходят подписью «🎤 Голосовое (N с)» — само аудио недоступно даже веб-клиенту MAX.
- 📦 Файлы и видео до ~50 МБ (лимит Telegram-ботов); крупнее — уведомление «открыть в MAX».
- 🔑 Токены лежат локально в
config.json(в.gitignore, не коммитятся).
Структура проекта и сборка
| Файл | Назначение |
|---|---|
main.py / setup_wizard.py |
точка входа и мастер настройки |
bridge.py |
ядро: слушает MAX, маршрутизирует, принимает ответы |
max_client.py |
WebSocket-клиент MAX (браузерные заголовки, вход по токену) |
attaches.py / mediamax.py |
разбор и загрузка медиа MAX |
tg.py |
мини-клиент Telegram Bot API |
state.py / config.py |
карта тем и конфигурация |
Dockerfile / docker-compose*.yml / DEPLOY.md |
деплой |
python -m unittest discover -s tests # тестыCI (GitHub Actions) на каждый push в main гоняет тесты и публикует
Docker-образ ghcr.io/sillkiin/max2tg:latest. Для локальной сборки из исходников:
docker compose -f docker-compose.build.yml up -d --build.
Click to expand
max2tg mirrors your personal MAX (max.ru) messenger account into
Telegram and lets you reply from there.
MAX is gone from the App Store — you can't install it on iPhone/iPad anymore. max2tg brings every MAX chat into Telegram (which you already have) with normal push notifications — effectively the only way to use MAX on iOS.
- Two-way. Incoming MAX messages — text, photos, videos, files, stickers — are forwarded to Telegram; reply right from Telegram and it lands in the MAX chat.
- Topics. Each MAX chat becomes its own Telegram forum topic, named after the contact.
- Commands (shown in the "/" menu):
/join <link | @username>— join a MAX channel/group/chat ·/find <phone | @username | link | id>— look up a person or channel and get their id ·/help— command reference. - Private & free. Tokens and messages stay on your machine. Open-source (MIT).
- Runs anywhere. Windows, old Android (Termux), or a 24/7 server. Pull the
ready image:
docker pull ghcr.io/sillkiin/max2tg:latest.
Quick start: run run.bat, create a bot via @BotFather,
and paste your MAX token from web.max.ru (DevTools console:
copy(JSON.parse(localStorage.__oneme_auth).token)).
⚠️ Uses MAX's unofficial web API. Voice messages from MAX are only labeled — MAX's own web client can't play them either. Use at your own risk.
Личный инструмент для удобства, не связан с MAX/VK и Telegram. Использует неофициальный API — применяйте на свой риск и соблюдайте условия сервисов. Лицензия: MIT.