Calab
От голоса до интеграций
Голос и видео
Зашли в комнату — и говорите
Голосовые комнаты всегда открыты: один клик — и вы в разговоре. Камеры, показ экрана и звонки один на один — там же, без отдельных ссылок и приложений.
- Шумоподавление RNNoise и эхоподавление AEC3 — чисто даже без наушников
- Push-to-talk и активация голосом, в том числе в фоне
- Показ экрана в AV1 или аппаратном H.264, указка и рисование поверх стрима
- Камера с размытием или картинкой вместо фона
- Запись встречи с транскриптом и саммари прямо в чат

Качество звука
Голос без компромиссов
Качество звука задаёт комната — вплоть до «Отличного»: Opus 64 кбит/с в полной полосе до 20 кГц. Слышно тембр и детали голоса, с хорошим микрофоном разница заметна сразу.
- Четыре уровня комнаты: от 8 кбит/с для плохой связи до 64 кбит/с в полной полосе
- Каждый может поставить личный потолок и экономить трафик, когда связь хуже
- Шумоподавление RNNoise включается по желанию; пока оно выключено, работает встроенное шумоподавление Chromium
- Звук стрима идёт без обработки: музыка и демонстрации звучат как есть, а голоса собеседников в стрим не попадают (macOS 14.2+, Windows 11)
- В паузах голос почти не расходует канал: 0,1 кбит/с, пока микрофон молчит
Для музыкантов
Режим музыканта
Качество звука очень высокое, а шумоподавление можно полностью отключить — поэтому можно играть на музыкальных инструментах или петь вживую без потери качества. Эхоподавление, шумоподавление и автоусиление выключены, а микрофон уходит в музыкальном профиле Opus: 128 кбит/с моно или 192 кбит/с стерео, с защитой от потерь и без вырезания тишины. Нужны наушники — приложение предупредит. Остальные видят значок гитары рядом с вашим именем. Доступно на тарифе Team и выше.
Уровни качества комнаты
Чем шире полоса, тем больше обертонов слышит собеседник.
- Низкое8 кбит/с
Полоса: до 4 кГц
- Нормальное16 кбит/с
Полоса: до 8 кГц
- Хорошее32 кбит/с
Полоса: до 12 кГц
- Отличное64 кбит/с
Полоса: до 20 кГц
Звонки на телефон
Позвоните на любой номер — прямо из комнаты
Подключите своего SIP-провайдера, и из голосовой комнаты можно набрать городской или мобильный номер. Абонент появляется в комнате участником с иконкой трубки — и его слышат все.
- Статус виден всем: «Набираем… → Звонит… → В разговоре 02:14»
- «Позвонить на номер» — в шапке комнаты и в меню «…»; номер можно вставить как есть, с пробелами и скобками
- Завершить звонок могут звонивший и модераторы; гудки слышит только звонящий
- Настройки провайдера: сервер, порт, логин, Caller ID, разрешённые направления
- «Проверить подключение» — пробный звонок на ваш Caller ID; журнал звонков — кто, когда, куда, чем закончилось
- Право «Звонить на номера» по умолчанию ни у кого; один звонок на комнату, до 20 в час на пространство
Звонки оплачиваются у вашего SIP-провайдера.




Чат
Чат как в Telegram
У каждой комнаты свой чат: ответы, реакции, пересылка, стикеры, голосовые, файлы с превью, закрепы и поиск. Галочки прочтения — как вы привыкли.
- Пересылка сразу в несколько чатов
- Стикерпаки пространства
- Голосовые, музыка и видео со встроенным плеером
- Упоминания, уведомления на комнату, поиск по пространству

Календарь и встречи
Встречи там же, где разговор
Календарь встроен в приложение: день с встречами, приглашения, ответы участников, комната встречи с кнопкой «Перейти» и напоминания за 15 минут.
Приглашения .ics
Письмо с invite.ics добавляет встречу в Apple, Google, Outlook или Яндекс. Внешние участники отвечают по ссылке и входят гостем.
Подобрать время
Колонки занятости коллег, общие свободные окна и ближайшие слоты — клик создаёт встречу.
CalDAV
Подключите календарь Яндекса, iCloud, Fastmail или Nextcloud: занятость учитывается, встречи Calab появляются в нём сами.


Доски задач
Задачи рядом с разговором
Канбан, список и таймлайн в духе Linear — без отдельного сервиса. Задачу можно создать из любого сообщения, а ссылка на неё разворачивается в чате карточкой.
- Статусы, приоритеты, лейблы, вехи и сроки
- Несколько исполнителей, подзадачи и связи
- Комментарии как в чате: реакции, стикеры, голосовые
- Фильтры, сохранённые виды и горячие клавиши
На Free — 3 доски, на Team — 30, на Business — 50, на Enterprise — без ограничений.



Заметки
Личные полки для всего важного
До 20 полок со своими названиями и эмодзи — как «Избранное» в Telegram, только несколько. Полку видите только вы.
- Перетащите сообщение на полку или перешлите его
- Файлы из Finder и Проводника — прямо на полку
- Закрепы и поиск, как в обычном чате

Гости
Гости без регистрации — с вашего разрешения
Гостевая ссылка ведёт прямо в комнату: гость вводит имя и оказывается в разговоре. Нужен контроль — включите подтверждение: организатор увидит «просит войти» и нажмёт «Пустить».
- Гость видит только свою комнату
- Подтверждение для комнаты или отдельной ссылки
- Звук и счётчик ожидающих у организатора

Веб-приложения
Ваши сервисы — в одном окне со звонком
Администратор закрепляет в левой панели ярлыки сайтов — Grafana, вики, CRM. Клик — и сайт открывается прямо в Calab на всё окно, а звонок продолжается.
- Ярлык — картинка, название и адрес; до 20 приложений на пространство
- Звонок не прерывается: островок с микрофоном остаётся внизу
- Логины на сайтах сохраняются отдельно для каждого приложения и не смешиваются с Calab
- Камера и микрофон сайту — только после вашего разрешения
- Порядок — перетаскиванием; правый клик — изменить, открыть в браузере, перезагрузить, удалить
- Видят все участники, кроме гостей; добавляют и меняют те, у кого есть право на интеграции

Боты и SDK
Бот — такой же участник
Бот работает через тот же API, что и приложение, и видит ровно то, что разрешено его ролям. Bot API v2 покрывает почти всё, что делает человек.
- Читает и пишет в чатах, которые ему доступны, отвечает на /команды
- Работает с задачами: создаёт, меняет, комментирует
- Голос через LiveKit: слышит всех и говорит сам
- Календарь: создаёт встречи, смотрит «свободно/занято», подбирает время
- Профили участников, переименование, приглашения и бейджи
- Запускает запись встречи
- События по WebSocket или webhook, кнопки под сообщениями, SDK на TypeScript
import { Bot } from '@calaba/bot-sdk';const bot = new Bot(process.env.BOT_TOKEN, { server: 'https://app.calab.io',});await bot.commands([{ name: 'standup', description: 'Start' }]);// "/standup" → a message with a buttonbot.on('command', (c) => bot.send(c.message.roomId, { text: 'Stand-up time. Record it?', inlineKeyboard: { rows: [{ buttons: [ { id: 'rec', label: 'Record', data: 'standup' }, ] }] }, }),);// pressed → start the meeting recordingbot.on('callback', (cb) => { if (cb.buttonId === 'rec') bot.recording.start(cb.roomId);});await bot.start();Свой сервер и безопасность
Ваш сервер, ваши данные
Calab ставится на ваш Linux-сервер одной командой и не зависит от внешних сервисов.
Шаг 1. Поднимите сервер
Linux-хост с Docker и доменом. Одна команда — и через минуту всё работает, сертификаты Let’s Encrypt выпускаются сами.
infra/docker/deploy.shШаг 2. Установите приложение
macOS, Windows или Linux. Или просто откройте Calab в браузере — ничего ставить не нужно.
Шаг 3. Пригласите команду
Отправьте ссылку-приглашение. Гостям на одну встречу аккаунт не нужен.
Шифрование в пути
API и сигнализация — по TLS, голос и видео — DTLS-SRTP.
Данные у вас
Сообщения, файлы и записи хранятся только на вашем сервере.
Работает за VPN
UDP закрыт — TURN/TLS через 443, для сети это обычный HTTPS.
Права на всё
Роли и права на каждую комнату и доску проверяет сервер.
Производительность
Лёгкий — и это измерено
Мы меряем процессор на реальной машине и публикуем цифры, в том числе те, что нас не радуют.
Без звонка
Средняя нагрузка, % одного ядра: Calab и Discord на одном Mac, подряд, в одинаковых условиях.
Окно видно
Calab
Discord
Окно скрыто
Calab
Discord
Что мы ускорили
Голос, тихая комната
Шумодав RNNoise работает по требованию и засыпает в паузах.
было
15,0 %стало
6,9 %Видео при скрытом окне
Скрытое окно больше не декодирует видео.
было
17,5 %стало
7,0 %Видео под открытым меню
Стекло и размытие убраны: материалы сплошные.
было
17,2 %стало
11,4 %Индикатор записи
Пульсирует три раза и замирает, а не мигает часами.
было
59,1 %стало
11,7 %Установщик macOS
Убрали лишние языки Chromium: −16,3 МБ.
было
146,2 МБстало
130,0 МБ
Звонки Discord мы не измеряли, поэтому по голосу не сравниваем.
Методика. MacBook Air (Apple M4, 10 ядер, 24 ГБ), macOS 27, Discord 0.0.413. CPU — сумма по всем процессам приложения (top, выборка раз в 5 с, 3 минуты, первая отброшена), один прогон на сценарий. «Было» и «стало» — один и тот же Calab до и после правки: для голоса и видео это релиз 0.5.1 и его бандл с оптимизациями (стенд app.calab.ru, фейковый микрофон, издатель lk), для меню и индикатора записи — сборка на мок-сервере и локальном LiveKit, размер установщика — docs/18. Инструмент — tools/energy-bench.py, исходные CSV — в репозитории. Все замеры и условия — docs/14-energy.md