Claude - ещё один чат.
aipager переносит твои сессии Claude Code в Telegram, рядом с семьёй, друзьями и командой. Работает на твоём компьютере.
Сессия Claude Code на твоём ноутбуке готова, в режиме Авто, с которого начинается каждая новая сессия.
curl -fsSL aipager.run/install | shLinux и macOS · MIT · около минуты
Три режима. Начинаешь с режима Авто.
Каждая сессия работает в одном из трёх режимов: ты выбираешь его для каждой отдельно и меняешь когда угодно через /mode. Режим «Спрашивать» останавливает Claude перед каждым действием. Режим Авто, с которого начинается каждая новая сессия, полагается на собственную проверку безопасности Claude Code: безопасные действия она пропускает сама, а рискованные останавливает и оставляет решение тебе. Режим «Полный доступ» выполняет всё вообще без проверок. Режим влияет только на запросы разрешений самого Claude Code: в группе инструмент, запрещённый роли участника, всё равно отклоняется, в каком бы режиме ни была сессия.
- ✅ Разрешить · только это действие
- ❌ Отклонить · Claude блокирует действие
- 🟢 Разрешать всегда · добавляет правило от Claude, если он его предлагает
- ⏹ Остановить · прервать задачу вместо ответа
Показывает кнопку для каждого из остальных режимов; /mode ask, /mode auto и /mode full переключают сразу. Новые сессии начинаются в режиме Авто, если в чате не выбрано другое в /settings → Новые сессии.
Без перезапуска, даже пока Claude работает: aipager нажимает Shift+Tab в сессии, и карточка показывает, что идёт переключение, пока Claude Code не подтвердит новый режим.
Переход в режим «Полный доступ» и обратно перезапускает сессию и сохраняет переписку. Запустить сессию в нём или перевести её туда может только админ (или ты, в своём личном чате с ботом).
Режим управляет запросами разрешений, а не решениями: когда Claude о чём-то спрашивает, кнопки приходят в твой чат в любом режиме.
Три чата. Всё остальное - просто твоя жизнь.
- aipagerбот⏳ api · Работает · 3:14 · Read ×2 · Bash ×2Твой чат с Claude
Один чат на все сессии. На каждую задачу живая карточка, которая меняется сама, запросы, на которые отвечаешь одним нажатием, и закреплённое сообщение, где видно, что ждёт тебя. Обычное сообщение уходит в сессию, которая там указана; /web отправит следующее в другую сессию, и дальше разговор пойдёт с ней.
/status/new/mode/stop/app/<сессия> <сообщение> - BTbackend-teamгруппа · режим командыSara: @aipagerbot /web прогони e2e логина на stagingГруппа твоей команды
Добавь бота в группу, и упомянуть его сможет любой из списка разрешённых. Каждое сообщение выполняется с ролью того, кто его отправил; инструмент, который эта роль использовать не может, отклоняется до запуска, а каждое решение попадает в журнал аудита с именем того, кто нажал.
owneradminuserread_only - JJimего собственный чат с ботом🔐 web · Нужно твоё разрешениеДругой человек, в своём чате
Добавь личный чат коллеги с ботом, и у коллеги будут свои сессии, своя роль и своя корневая папка: задачи Claude запускаются внутри неё и ничего не читают в твоей домашней папке за её пределами. Тому, кто должен только смотреть, дай read_only в своей группе.
корневая папка участников~/aipager-users/<label>read_only/new
Четыре роли, и у каждой своё правило по инструментам.
Считается та роль, которая у тебя в том чате, где ты сейчас пишешь; инструмент, который роль использовать не может, отклоняется до запуска, и о нём не спрашивают. Ни в Telegram, ни в Mini App нельзя изменить, кто есть в списке: только aipager config, на компьютере.
| Может | owner | admin | user | read_only |
|---|---|---|---|---|
| Отправлять сообщения в сессию | ✓ | ✓ | ✓ | ✕ |
| Разрешать, отклонять, отвечать на вопросы Claude | ✓ | ✓ | ✓ | ✕ |
| Bash и всё остальное, что выполняет код | ✓ | ✓ | ✕ | ✕ |
| Режим «Полный доступ», /settings группы, /update | ✓ | ✓ | свой чат | ✕ |
| Где могут работать сессии | везде | везде | корневая папка | корневая папка |
| Читать файлы с ключами (~/.ssh, …) | ✓ | ✓ | ✕ | ✕ |
Пользуйся им как чатом.
Это не консоль, переодетая в чат: здесь работает всё, что ты и так делаешь в Telegram. Наговори голосовое по дороге домой, кинь скриншот, отправь следующую мысль, пока не закончилась предыдущая.
- 🎙️Скажи голосом
Отправь голосовое: оно расшифровывается на твоём компьютере (а не в чьём-то облаке), возвращается текстом, чтобы было видно, что услышал aipager, и печатается в сессию, как будто ты набираешь его с клавиатуры.
0:07🎙️ Услышано: почини нестабильный e2e-тест логина - 📎Скриншот с багом
Фото и файлы попадают в папку на твоём компьютере, а Claude получает путь к ним, с твоей подписью в качестве сообщения или с «check this: …», если подписи нет. Отправь сразу несколько, и они уйдут одним сообщением.
- 📤Присылает тебе файлы
Попроси своими словами, «пришли скриншот», и файл придёт в чат этой сессии сразу после ответа: картинки как фото, видео и аудио как есть, всё остальное как файл, а несколько сразу одним альбомом. Только не настройки aipager, учётные данные Claude или твои ключи: такие файлы отклоняются ещё до отправки.
пришли скриншот - 👀Отправь следующее прямо сейчас
Твоё сообщение уходит Claude в ту же секунду, даже посреди задачи: 👀, пока его держит очередь самого Claude, 👍, когда Claude его забрал. ⚡ «Отправить сейчас» передаёт его, не дожидаясь конца шага.
- ⏸Не перепутается с ответом
Сообщение, отправленное при открытом запросе разрешения, подождёт в стороне, а не подмешается в ответ на запрос, и уйдёт в сессию сразу, как только ты ответишь.
- 🤖Агенты и фоновые команды, все на виду
У каждого фонового агента, которого запускает Claude, своя строка на карточке с тем, чем он занят, а у команды, оставленной работать в фоне, свои часы до самого конца.
- 🔔Он скажет первым
Предупреждение о контексте, сжатие переписки, сессия, которая завершилась или затихла, задача, которая идёт слишком долго: чат скажет об этом сам, ходить проверять не надо.
- ⌨️Кнопки уже на месте
Под полем ввода стоит клавиатура: по кнопке на каждую запущенную сессию, потом «статус», «стоп» и «новая», потом «Шаблоны» для сообщений, которые ты набираешь снова и снова, и «Команды» для того, что выполняет сам Claude Code.
- 📋/status, весь чат разом
Все сессии списком, с которым можно работать: что делает каждая, её модель, сколько осталось контекста, сколько она стоила, что ждёт в её очереди, а у каждой кнопки «Остановить», «Ответить» и остальное меню.
Панель, не выходя из Telegram.
/app открывает все сессии разом: по плитке на каждую, с кольцом контекста, папкой, моделью и тем, сколько она потратила. Отвечаешь по-прежнему в чате, а приложение нужно, чтобы увидеть все сразу и сделать то, что в чате неудобно: прочитать diff или поменять настройку.
По плитке на каждую: кольцо контекста, чья это сессия, модель и сколько потрачено. Над ними строка о том, как дела в чате: что работает, что готово, сколько стоил день, сколько сессий завершилось. Кнопка + запускает ещё одну: имя, папка из тех, что уже в ходу, модель.
Сессия, которая ждёт ответа на запрос разрешения или на вопрос, стоит сверху, вместе с тем, о чём спрашивает. «Ответить в чате» отправляет этот запрос вниз чата, вместе с кнопками, и ты отвечаешь там.
Строка состояния, «Работает (3:12)» или «Готова, последняя активность 5 мин назад», и одно нажатие на «Остановить» или «Продолжить». Под ней последние использованные инструменты, последний ответ, выбор модели, файлы, которые задача изменила, в виде diff, и собственные настройки этой сессии.
По умолчанию включено, каждый запрос проверяется по подписи самого Telegram, и страница ничего не загружает со стороны: ни шрифтов, ни скриптов. Выключить: aipager miniapp disable.
На твоём языке, вплоть до цифр.
Меняются только собственные слова aipager: карточки, запросы, кнопки, закреплённое сообщение, /status, Mini App, документация. Твои сессии Claude не меняются: Claude отвечает на языке, на котором ты ему пишешь, а то, что aipager отправляет Claude, остаётся как было. Выбери язык через /language или оставь язык своего Telegram.
Персидский и арабский читаются справа налево, с персидскими (۰-۹) или восточноарабскими (٠-٩) цифрами и своими разделителями, и в Telegram, и в Mini App. Имена сессий, пути, команды и код сохраняют своё направление.
Каждый язык написан так, как на нём на самом деле говорят люди, привыкшие к приложениям: с заимствованиями и со своими формами множественного числа (в арабском их шесть).
Личный чат может следовать за языком твоего Telegram. У группы один язык, его выбирает админ, а всплывающее сообщение после нажатия приходит на языке того, кто нажал.
README и все страницы в docs/ переведены. Если перевод и английская страница расходятся, верна английская.
pnpm test e2e/login --trace onПравда по-прежнему в терминале.
Claude Code работает в настоящем терминале, внутри dtach, поэтому держать окно открытым никому не нужно. Каждый шаг запускает hook, который отправляет одну датаграмму в aipager по локальному сокету, а aipager правит сообщение в твоём чате. Твои ответы идут обратно тем же путём: решение тому hook, который держит действие, или нажатия клавиш в сессию.
- Claude Codeвнутри dtach, окно не нужно
- hookсрабатывает на каждом шаге
- aipagerодин процесс, под твоим пользователем
- Telegramтокен твоего собственного бота
- твои чатытвой личный чат, группа твоей команды
aipager session api подключается к работающей сессии из любого терминала. Печатай там, печатай в чате: сессия одна и та же. Закрой окно, и она продолжит, а подключение переживёт даже перезапуск сессии.
aipager печатает в сессию и слушает собственные события Claude Code. То, что ты видишь в чате, собрано из hooks и сохранённой переписки, а не считано с экрана терминала.
Hook отправляет одну датаграмму и возвращается, около 20 мс времени Claude Code. Если aipager не слушает, событие просто теряется, а Claude работает дальше; потом aipager догоняет по собственным файлам сессии.
Посередине никого.
aipager никогда не обращается к Anthropic. Это делает только сам Claude Code, с твоим логином, на твоём компьютере. aipager запускает его в терминале и слушает hooks, которые публикует Claude Code. Никаких эндпоинтов, вскрытых реверс-инжинирингом, никакого прокси, никаких чужих аккаунтов: сессия, которой ты управляешь с телефона, это та же сессия, что и за клавиатурой.
aipager общается с Telegram Bot API через токен твоего собственного бота. Нет ни аккаунта aipager, ни сервиса aipager, и между твоим телефоном и твоим компьютером нет ничьего чужого компьютера.
aipager отвечает только в чатах, перечисленных в твоей конфигурации. Незнакомец, который найдёт бота, получит одну строку о том, что бот не настроен с ним общаться; ничто из отправленного им до сессии не дойдёт.
Он слушает только loopback. Mini App выходит наружу через туннель Cloudflare, где каждый запрос обязан нести подпись Telegram. Выключить: aipager miniapp disable.
Токен бота и id чатов лежат в ~/.config/aipager/aipager.yaml с правами 600. В log aipager они не попадают, а везде, где могли бы туда просочиться, aipager их маскирует.
Ни sudo, ни setuid. Всё, что он пишет, лежит в твоей домашней папке, в /tmp или в его собственной папке сокетов, а каждый процесс, который он запускает (claude, dtach, установщики), работает под твоим пользователем.
Твой settings.json говорит, о чём надо спрашивать. aipager только передаёт вопрос; он никогда не решает, что можно выполнить, а кнопка, оставшаяся от законченной задачи, откажется работать и не тронет то, что идёт сейчас.
Участники и роли меняются только через aipager config, на компьютере. Ни Telegram, ни Mini App не могут добавить человека или расширить роль.
Каждое «Разрешить», «Отклонить» и каждый ответ уходят в ~/.claude/aipager-audit.jsonl, только на дозапись, а в группе ещё и с тем, кто нажал.
Четыре строки. Сохрани их в «Избранном».
Нажми на строку, чтобы скопировать. Сначала две вещи: собственный бот от @BotFather (нажми в нём «Запустить») и вход в Claude Code на этом компьютере. Остальное спросит мастер из второй строки.
Положи токен бота в файл, который агенту читать не придётся, и дай Claude Code вот это:
Install aipager for me by following https://aipager.run/agent.md. My Telegram bot token is in ~/.config/aipager/bot-token and my Telegram user id is <your id>.
Привычнее свой пакетный менеджер? uv, pipx, Homebrew, Docker, Nix, AUR и Snap. все способы установки →
Спроси.
Добавь Claude в свои чаты.
А потом закрой терминал и иди отдыхать.