Установка с помощью агента
Эта страница для ИИ-агента для программирования (Claude Code или любого агента с shell), которого попросили установить и настроить aipager для своего человека. Следуй ей шаг за шагом. Каждая команда здесь выполняется без вопросов и никогда не требует интерактивного терминала.
aipager позволяет этому человеку управлять сессиями Claude Code из Telegram. Когда закончишь, у человека будет Telegram-бот, который общается только с ним, а aipager будет работать в фоне на этом компьютере.
1. Что может сделать только сам человек#
Попроси человека сделать это. Ты не можешь сделать это за него.
-
Создать бота. В Telegram открыть @BotFather, отправить
/newbot, выбрать имя и имя пользователя. BotFather отвечает токеном бота (он выглядит как123456789:AA...). -
Нажать «Запустить» (Start) в боте. Открыть нового бота (BotFather даёт ссылку
t.me/<bot username>) и нажать «Запустить». Бот не может написать тому, кто этого не сделал. -
Войти в Claude Code на этом компьютере. Если человек уже пользуется здесь Claude Code, делать ничего не нужно. На сервере без экрана он один раз запускает
claudeв своём терминале и входит (там будет ссылка, которую нужно открыть на другом устройстве). Если удобнее долгоживущий токен, он запускаетclaude setup-token, который только выводит токен: человек сам сохраняет его для сессий aipager, в своём терминале (вставить токен, нажать Enter, потом Ctrl-D):mkdir -p ~/.config/aipager (umask 077 && { printf 'CLAUDE_CODE_OAUTH_TOKEN='; cat; } >> ~/.config/aipager/daemon.env)aipager передаёт этот токен каждой сессии, которую запускает (см. безопасность). Ты его никогда не читаешь.
2. Как человек передаёт тебе токен#
У кого есть токен бота, тот управляет ботом. Предложи человеку эти два способа и дай выбрать.
-
Самый безопасный: файл, который ты никогда не читаешь. В своём терминале человек запускает:
mkdir -p ~/.config/aipager rm -f ~/.config/aipager/bot-token (umask 077 && cat > ~/.config/aipager/bot-token) chmod 600 ~/.config/aipager/bot-tokenпотом вставляет токен, нажимает Enter и нажимает Ctrl-D. Читать файл может только этот человек (права 600). Когда настройка пройдёт успешно, файл можно удалить (aipager хранит свою копию в своей конфигурации). Человек говорит тебе путь (
~/.config/aipager/bot-token). Токен никогда не попадает в твою переписку, а ты передаёшь путь в--token-file. -
Самый быстрый: вставить в переписку. Так тоже можно, но прямо скажи, что это значит: токен останется в истории твоей переписки и уйдёт к поставщику твоей модели. Если эту историю когда-нибудь могут увидеть другие, человеку стоит потом отправить
/revokeв @BotFather и поставить новый токен черезaipager setup --force(шаг 3.2, с--force). Если человек выбирает этот способ, сохрани токен в тот же файл, не выводя его: лучше всего своим инструментом записи файлов, потомchmod 600 ~/.config/aipager/bot-token. Если у тебя есть только shell, передай его через stdin с помощью here-document, чтобы он не был аргументом команды, которая его пишет:mkdir -p ~/.config/aipager rm -f ~/.config/aipager/bot-token (umask 077 && cat > ~/.config/aipager/bot-token) <<'EOF' <the token> EOF chmod 600 ~/.config/aipager/bot-tokenПотом используй
--token-file, как ниже.
Telegram ID человека (ID его чата, число вроде 123456789) не секрет. Если человек его не знает, ты можешь его найти (шаг 3.3).
3. Твои шаги#
3.1 Установить aipager#
curl -fsSL https://raw.githubusercontent.com/dev-aly3n/aipager/main/install.sh | sh
Он использует uv или pipx, что найдётся (на macOS ещё и Homebrew), и сначала ставит uv, если нет ничего. Можно и самому запустить uv tool install aipager или pipx install aipager. Если после этого aipager не находится, добавь ~/.local/bin в PATH своего shell (export PATH="$HOME/.local/bin:$PATH").
Если aipager уже был установлен, эти команды его не обновляют. Проверь, что работает aipager setup --help; если нет, установленный aipager слишком старый: запусти aipager update и проверь ещё раз. Если aipager update говорит перезапустить aipager, скажи об этом человеку и не перезапускай его со своей стороны (см. 4).
Не запускай aipager config: это интерактивный мастер для людей.
3.2 Настроить aipager#
aipager setup --token-file ~/.config/aipager/bot-token --chat-id 123456789 --service --json
Используй настоящий ID человека и путь к файлу с токеном. Вместо --token-file можно передать токен через pipe с --token-stdin (например, --token-stdin < path); pipe должен закрыться, setup ждёт его не больше 30 секунд.
setup проверяет токен в Telegram, проверяет этот компьютер, отправляет человеку одно тестовое сообщение («aipager is set up for you. ...») и только потом записывает свою конфигурацию, добавляет hooks Claude Code в ~/.claude/settings.json и, с --service, ставит и запускает фоновую службу. Если какая-то проверка не проходит, ничего не записывается.
Добавь --dry-run, чтобы сначала посмотреть, что изменится. --role admin даёт человеку роль admin вместо роли owner (вариант по умолчанию, owner, правильный для человека, который настраивает свой собственный компьютер).
3.3 Если человек не знает свой Telegram ID#
aipager setup detect-chat --token-file ~/.config/aipager/bot-token --json
Попроси человека нажать «Запустить» в боте (или отправить ему любое сообщение), пока команда ждёт (до 5 минут; --timeout SECONDS меняет это время). Она выводит самого последнего отправителя в candidate (id, first_name, last_name, username) и ничего не сохраняет. Покажи человеку имя и имя пользователя и спроси «Это ты?». Только если человек ответит «да», запусти шаг 3.2 с --chat-id, равным candidate.id. Если other_candidates не 0, боту писали и другие люди: проверь особенно внимательно.
3.4 Прочитать результат#
С --json setup выводит ровно один JSON-объект в stdout. Читай exit_code (то же, что код выхода процесса), status, error, message, fix и next_step. Если stdout не JSON (неизвестный флаг, неправильное слово после setup или aipager настолько старый, что у него нет setup), код выхода 2, а причина написана простым текстом в stderr: прочитай её, а для старого aipager см. 3.1.
| Выход | error | Что ты делаешь |
|---|---|---|
| 0 | installed, updated или unchanged: готово, переходи к 3.5. dry_run: ничего не записано; запусти ту же команду без --dry-run. detect-chat found: попроси человека подтвердить, как в 3.3, потом запусти 3.2. | |
| 1 | config_malformed, ambiguous_install, settings_invalid, test_send_failed, write_failed, service_failed, internal_error | Покажи человеку message и fix. ambiguous_install: человек исправляет это в aipager config. Не правь файлы вручную. |
| 2 | usage, token_malformed, token_stdin_timeout, bad_chat_id, ... | Твой ввод был неверным; fix называет флаг. token_malformed: в файле нет токена бота, попроси человека его проверить. |
| 3 | deps_missing | Следуй fix (у каждого недостающего пункта есть свой fix в deps.items), потом снова запусти setup. |
| 4 | token_rejected | Telegram отклонил токен. Попроси у человека токен ещё раз (или новый у @BotFather). |
| 5 | chat_not_started, bot_blocked | Попроси человека открыть бота, нажать «Запустить» (или разблокировать его), потом снова запусти setup. |
| 6 | existing_install | aipager уже настроен с другим токеном, чатом или ролью. Скажи человеку, что отличается, и спроси, прежде чем добавлять --force. |
| 7 | telegram_unreachable | Проблемы с сетью, или Telegram перегружен. Подожди минуту и попробуй снова. |
| 8 | detect_timeout | detect-chat не увидел ни одного сообщения. Попроси человека снова нажать «Запустить» и запусти ещё раз. С предупреждением updates_backlog нажатие «Запустить» не поможет: спроси у человека его числовой ID. |
| 9 | daemon_running | detect-chat: aipager для этого бота уже работает и получает его сообщения. Спроси у человека его числовой ID (или спроси разрешения, прежде чем останавливать его через aipager service stop). |
| 10 | updates_conflict | detect-chat: сообщения этого бота читает другая программа. Спроси у человека его числовой ID. |
| 130 | interrupted | Остановлено через Ctrl-C. |
Если daemon.restart_needed равно true, aipager нужно перезапустить, чтобы применить изменение, или setup не смог понять, работает ли он (предупреждение daemon_unknown). Следуй next_step, он говорит, что из этого (если он предлагает aipager start, который остаётся на переднем плане, лучше выбери aipager service install). Скажи человеку и перезапускай (aipager service stop, потом aipager service start) только если он попросит, и никогда изнутри сессии, которой человек управляет через aipager (см. 4). Полный список ошибок, предупреждений и ключей JSON есть в справке по команде setup.
3.5 Проверить установку#
aipager doctor --json
Команда только читает и ничего не отправляет. Выход 0 значит, что ни одна проверка не провалилась. Для каждой проверки со status, равным fail (или warn), покажи человеку её title, detail и fix.
3.6 Рассказать человеку о результате#
Скажи в нескольких строках:
- бота (
@+bot_username) и было ли отправлено тестовое сообщение (test_message); - что было настроено (
changedиservice.result); - как запустить сессию Claude: отправить
/newботу в Telegram или запуститьaipager session <name>в терминале; - всё, на что указал
doctor, иnext_step, если он что-то просит.
4. Чего делать нельзя#
- Не выводи токен, не передавай его в
echoилиcatи никогда не ставь его в командную строку (--tokenвсё равно отклоняется). Передавай его только файлом или через stdin. - Не правь вручную
~/.config/aipager/(кроме файла с токеном из шага 2) и~/.claude/settings.json. Их записываютaipager setupиaipager config. - Не добавляй
--force, не спросив человека: он заменяет уже существующие токен, чат или роль. - Не перезапускай и не завершай свою собственную сессию Claude Code. При первой установке сессия, в которой ты работаешь, не находится под aipager и не должна: новые сессии появляются через
/newв Telegram илиaipager session <name>. Если aipager уже настроен и человек общается с тобой через него (например, чтобы запуститьsetup --forceс новым токеном), не останавливай и не перезапускай aipager со своей стороны: твоя задача и её ответ оборвутся. Скажи человеку перезапустить его, когда закончишь.
5. Группы#
aipager setup настраивает личный чат человека с ботом. Чтобы добавить группу Telegram с другими людьми и их ролями, человек запускает aipager config (настройку групп пока нельзя сделать скриптом). См. Работа в команде и группы.