Встановлення за допомогою агента

Ця сторінка для ШІ-агента для програмування (Claude Code або будь-якого агента з shell), якого попросили встановити й налаштувати aipager для своєї людини. Виконуй її крок за кроком. Кожна команда тут виконується без запитань і ніколи не потребує інтерактивного термінала.

Джерело на GitHub ↗Цю сторінку перекладено з англійської; якщо вони розходяться, правильною є англійська версія. English

aipager дає цій людині керувати сесіями Claude Code з Telegram. Коли закінчиш, у людини буде Telegram-бот, який спілкується лише з нею, а aipager працюватиме у фоні на цьому комп'ютері.

1. Що може зробити лише сама людина#

Попроси людину зробити це. Ти не можеш зробити це за неї.

  1. Створити бота. У Telegram відкрити @BotFather, надіслати /newbot, вибрати назву та ім'я користувача. BotFather відповідає токеном бота (він має вигляд 123456789:AA...).

  2. Натиснути Start у боті. Відкрити нового бота (BotFather дає посилання t.me/<bot username>) і натиснути Start. Бот не може написати тому, хто цього не зробив.

  3. Увійти в Claude Code на цьому комп'ютері. Якщо людина вже користується тут Claude Code, нічого робити не потрібно. На сервері без екрана вона один раз запускає claude у своєму терміналі й входить (там буде посилання, яке треба відкрити на іншому пристрої). Якщо зручніше довготривалий токен, вона запускає claude setup-token, який лише виводить токен: людина сама зберігає його для сесій aipager, у своєму терміналі (вставити токен, натиснути Enter, потім Ctrl-D):

    sh
    mkdir -p ~/.config/aipager
    (umask 077 && { printf 'CLAUDE_CODE_OAUTH_TOKEN='; cat; } >> ~/.config/aipager/daemon.env)
    

    aipager передає цей токен кожній сесії, яку запускає (див. безпека). Ти його ніколи не читаєш.

2. Як людина передає тобі токен#

Хто має токен бота, той керує ботом. Запропонуй людині ці два способи і дай вибрати.

  • Найбезпечніший: файл, який ти ніколи не читаєш. У своєму терміналі людина запускає:

    sh
    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, щоб він не був аргументом команди, яка його записує:

    sh
    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#

sh
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#

sh
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#

sh
aipager setup detect-chat --token-file ~/.config/aipager/bot-token --json

Попроси людину натиснути Start у боті (або надіслати йому будь-яке повідомлення), поки команда чекає (до 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Що ти робиш
0installed, updated або unchanged: готово, переходь до 3.5. dry_run: нічого не записано; запусти ту саму команду без --dry-run. detect-chat found: попроси людину підтвердити, як у 3.3, потім запусти 3.2.
1config_malformed, ambiguous_install, settings_invalid, test_send_failed, write_failed, service_failed, internal_errorПокажи людині message і fix. ambiguous_install: людина виправляє це в aipager config. Не редагуй файли вручну.
2usage, token_malformed, token_stdin_timeout, bad_chat_id, ...Твої вхідні дані були неправильні; fix називає прапорець. token_malformed: у файлі немає токена бота, попроси людину його перевірити.
3deps_missingВиконай fix (кожен відсутній пункт має свій fix у deps.items), потім знову запусти setup.
4token_rejectedTelegram відхилив токен. Попроси в людини токен ще раз (або новий в @BotFather).
5chat_not_started, bot_blockedПопроси людину відкрити бота, натиснути Start (або розблокувати його), потім знову запусти setup.
6existing_installaipager уже налаштовано з іншим токеном, чатом або роллю. Скажи людині, що відрізняється, і спитай, перш ніж додавати --force.
7telegram_unreachableПроблеми з мережею, або Telegram перевантажений. Зачекай хвилину й спробуй знову.
8detect_timeoutdetect-chat не побачив жодного повідомлення. Попроси людину знову натиснути Start і запусти ще раз. З попередженням updates_backlog натискання Start не допоможе: спитай у людини її числовий ID.
9daemon_runningdetect-chat: aipager для цього бота вже працює й отримує його повідомлення. Спитай у людини її числовий ID (або попроси дозволу, перш ніж зупиняти його через aipager service stop).
10updates_conflictdetect-chat: повідомлення цього бота читає інша програма. Спитай у людини її числовий ID.
130interruptedЗупинено через 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 Перевірити встановлення#

sh
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 (налаштування груп поки не можна зробити скриптом). Див. Робота в команді та групи.

Див. також#