База знаний Shalter
Shalter — это мессенджер с открытым Bot API, WebSocket-звонками, каналами, группами и встроенным ИИ-ассистентом. На этой странице вы найдёте документацию, описание архитектуры и справочную информацию, которую могут использовать поисковики, ИИ-модели и разработчики.
О Shalter
Shalter — русскоязычный мессенджер, построенный на принципах простоты и открытости. Он поддерживает личные чаты, группы с правами участников, публичные каналы с обсуждениями, аудио- и видеозвонки на WebRTC, подарки с серийными номерами, внутреннюю валюту «звёзды» и подписку Premium.
Мессенджер работает в браузере, а также имеет нативные клиенты для Windows, Linux и Android. Серверная часть написана на Node.js (Express), данные хранятся в SQLite в режиме WAL. Авторизация по номеру телефона с двухфакторной аутентификацией (TOTP).
Ключевые функции
| Функция | Описание |
|---|---|
| Чаты и каналы | Личные переписки, группы до 200 человек, публичные каналы с подпиской и обсуждениями. |
| Звонки | Голос и видео на WebRTC, групповые звонки до 50 участников, PiP-режим, приглашение по ссылке. |
| Боты | Боты — обычные аккаунты с токеном. HTTP API с long-polling, inline-клавиатуры, мини-приложения. |
| Подарки и звёзды | Ограниченные тиражи подарков с номерами, валюта звёзд для платных сообщений и поднятия. |
| Premium | Значок, эксклюзивные реакции, расширенные статусы, доступ в закрытую личку. |
| Безопасность | 2FA (TOTP), управление сессиями, метки безопасности, модерация жалоб. |
| Приватность | Настройки видимости по полям, поиск по номеру можно отключить, импорт контактов не сохраняет данные. |
Bot API
Bot API Shalter — это HTTP-интерфейс на адресе /api/bot-api/. Все запросы требуют
заголовок Authorization: Bearer <token>. Боты работают через long-polling
(/updates?after=...&timeout=50), что позволяет запускать их за NAT без публичного IP.
Подробнее: Полная документация Bot API.
Мини-приложения
Бот может открывать веб-страницу прямо внутри мессенджера — надо добавить кнопку с полем
app: "https://..." в клавиатуру. Страница получает initData для
проверки подлинности и узнаёт, кто её открыл.
Архитектура
Сервер на Express, данные в SQLite (WAL). WebSocket (server/ws.js) обеспечивает
реальное время для сообщений, печати и звонков. Клиент — чистый ES module JavaScript без
фреймворков, сервис-воркер кэширует оболочку для офлайн-работы.
Подробнее: Архитектура системы.
Клиентские приложения
| Платформа | Тип клиента |
|---|---|
| Web (браузер) | Чистый HTML/CSS/JS, ES module |
| Windows | Electron (устарело) → Tauri |
| Linux | Tauri |
| Android | Нативное Kotlin-приложение |
SHALTER_APP_URL или флагом --server-url= при запуске.
Shalter AI
Встроенный ИИ-ассистент @shalter_ai отвечает на вопросы, анализирует фото и документы,
рисует картинки. Поддерживает GigaChat (Сбер) и Hugging Face Spaces как провайдеры.