macOS · відкритий код · MIT

Твій Telegram — звичайними файлами

tg-archive тримає копію твого листування на твоєму ж диску: читається будь-яким редактором, шукається, оновлюється за секунди після нового повідомлення. Клод теж уміє з ним працювати.

Ось що лягає на диск — один файл на чат за місяць:

## 2026-08-19
14:32 · Анна ↳ replying to “ти завтра будеш?”: так, після шостої
14:33 · me [voice 12s] 👍
14:41 · Анна (edited): краще о сьомій
Це законно? Так. Telegram публікує той самий протокол, яким користуються його власні застосунки, а це звичайний клієнт, який заходить під тобою, на твій акаунт, і читає твої ж повідомлення. Чужих даних він не збирає.

Частина 1 — Встановлення

1

Постав Homebrew, якщо його ще немає

Homebrew — це «магазин» програм для командного рядка на Mac. Відкрий Термінал (натисни ⌘ Пробіл, набери «Terminal», Enter) і встав:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Уже є? Переходь до кроку 2. Перевірити: brew --version.

2

Встанови tg-archive

brew install tggo/tap/tg-archive

Перевір, що поставилось:

tg-archive version
Пише «command not found»? Закрий вікно Термінала і відкрий нове — Homebrew прописує себе в PATH лише для нових сесій.
А якщо Linux?

Homebrew — це для Mac, але та сама програма збирається й під Linux: зручно тримати архів свіжим на сервері.

curl -LO https://github.com/tggo/tg-archive/releases/latest/download/tg-archive_0.2.0_linux_amd64.tar.gz
tar -xzf tg-archive_0.2.0_linux_amd64.tar.gz
sudo install tg-archive /usr/local/bin/

На ARM-машинах бери arm64 замість amd64. Далі все однаково, крім brew services — запускай tg-archive live через systemd або в контейнері.

Частина 2 — Отримати ключі

Telegram видає ключі доступу на кожен акаунт окремо. Будь-якому клієнту потрібна своя пара, і твоя нікуди не передається — навіть авторам цієї програми. Це дві хвилини.

1

Відкрий my.telegram.org

Зайди на my.telegram.org і введи номер у міжнародному форматі, з кодом країни: +380671234567.

2

Код прийде в сам Telegram

Це не SMS. Код приходить повідомленням усередині Telegram, у чат під назвою Telegram — відкрий застосунок на телефоні чи компʼютері й подивись там.

Нікому не давай цей код. Підтримка Telegram ніколи його не просить, а хто просить — забирає акаунт. Тут ти вводиш його на власному сайті Telegram, і це єдине місце, де він доречний.
3

API development tools → створити застосунок

Після входу натисни API development tools і заповни коротку форму:

ПолеЩо вписати
App titletg-archive — будь-яка назва, її бачиш лише ти
Short nametgarchive
URLлишити порожнім
PlatformDesktop
Descriptionлишити порожнім

Тисни Create application — на наступній сторінці буде два значення:

ЗначенняМає вигляд
api_idчисло, наприклад 2040815
api_hash32 символи з літер і цифр
Стався до api_hash як до пароля. Не викладай його в issue, скріншотах чи чатах. Якщо витік — просто створи новий застосунок.

Частина 3 — Перший запуск

1

Дай відповіді майстру налаштування

tg-archive setup

Він питає по одному; Enter лишає те, що в дужках:

ПитанняВідповідь
api_id / api_hashвстав те, що щойно отримав
where to write the archiveEnter → ~/TelegramArchive, або свій шлях
timezoneEurope/Kyiv (або Local)
private chats / groups / Saved Messagesy — це найцінніше
channels you follow / bot chatsn, якщо не хочеш шуму
2

Увійди

tg-archive login

Номер телефону, потім код (ще раз: він приходить у Telegram), потім хмарний пароль, якщо в тебе увімкнена двоетапна перевірка. Це робиться один раз — сесія зберігається на твоєму Mac.

3

Витягни історію

tg-archive backfill

Він проходить кожен чат від найновішого вглиб. Роки листування тягнуться довго — від десятків хвилин до кількох годин, і Telegram час від часу навмисно пригальмовує, а програма це спокійно пересиджує. Можна будь-коли зупинити через Ctrl-C і запустити пізніше — воно продовжить з того ж місця, а не почне спочатку.

Хочеш спершу спробувати? Візьми по 200 останніх повідомлень з кожного чату:

tg-archive backfill --limit 200
4

Тримай архів свіжим

Запусти фоновою службою — нові повідомлення падатимуть в архів за секунди:

brew services start tggo/tap/tg-archive

Або просто у вікні, щоб бачити, що діється:

tg-archive live

Що ти отримуєш

~/TelegramArchive/
├── index.md                      ← таблиця всіх чатів
└── chats/
    └── anna-smith-428424641/
        ├── 2017-05.md
        └── 2026-08.md            ← один файл на місяць

Наведи Obsidian на цю теку — і листування стає блокнотом з пошуком і зв'язками. Або користуйся Spotlight, grep, будь-яким редактором: це звичайні текстові файли.

Чому редагування й видалення відображаються чесно

Повідомлення спершу лягають у невелику базу, а Markdown малюється з неї. Тому коли співрозмовник редагує повідомлення — архів оновлює той самий рядок і ставить (edited); коли видаляє — архів лишає його і позначає (DELETED). Усі файли можна перебудувати будь-коли, навіть без інтернету:

tg-archive rerender
Медіа не завантажується. Від фото, файлів і голосових лишається позначка на кшталт [voice 12s] чи [file zvit.pdf 2.1MB]. Завдяки цьому роки листування важать десятки мегабайтів, а не сотні гігабайтів.

Пошук працює через повнотекстовий індекс: миттєвий навіть на сотнях тисяч повідомлень і не спотикається об великі літери в українській — на відміну від звичайного пошуку підрядка.

tg-archive search "адреса доставки"
tg-archive search "фундамент" --chat VABRAM --from 2026-01-01

Усі слова мають зустрітися. "у лапках" — точна фраза, слов* — за початком слова, а звузити можна через --chat, --sender, --from, --to.

Фото, голосові та файли

За замовчуванням зберігаються лише позначки. Щоб тримати й самі файли, постав "media": "small" (або "all") у конфізі й запусти:

tg-archive media

Вони лягають у attachments/, а в Markdown замість слова [photo] з'являється саме зображення — Obsidian показує його прямо в тексті.

Чи чогось не бракує?

tg-archive doctor          # чого бракує
tg-archive doctor --fix    # дотягнути
Він каже про дві різні речі: чати, які так і не дійшли до найпершого повідомлення, і прогалини всередині супергруп та каналів. І свідомо не шукає прогалин у приватних чатах — Telegram нумерує їхні повідомлення на акаунт, тож стрибок номера там означає лише, що між ними ти писав деінде, а не що щось загубилося.

Другий акаунт

tg-archive --profile work setup
tg-archive --profile work backfill

Окремі налаштування, окремий вхід, окремий архів.

Частина 5 — Підключити до Клода

Та сама програма вміє працювати MCP-сервером — так Клод під'єднується до інструментів на твоїй машині. Одна команда:

claude mcp add tg-archive -- tg-archive mcp

Далі можна питати «що Анна писала про поїздку в червні?» або «знайди всі повідомлення, де мені надсилали адресу». Клод читає локальний архів, тому відповідає миттєво і працює навіть без мережі.

Якщо хочеш, щоб Клод ще й писав

claude mcp add tg-archive -- tg-archive mcp --allow-send
Подумай, перш ніж вмикати. Інструмент, який може написати твоїм контактам, — це зовсім інший рівень ризику, ніж той, що читає локальний файл. Надсилання вимкнене, поки не додаси цей прапорець, і позначене так, щоб Клод перепитував перед відправкою.
Що вміє КлодЗвідки бере дані
list_chats, read_chat, search_messages, archive_statusлокальний архів — миттєво, без мережі
sync_chat, download_media, check_archiveTelegram, щоб дотягнути нове чи відсутнє
send_messageTelegram — лише з --allow-send

Claude Desktop замість Claude Code

У Claude Desktop немає команди claude mcp add — він читає власний файл конфігурації. Відкрий (або створи):

~/Library/Application Support/Claude/claude_desktop_config.json

і додай tg-archive у mcpServers:

{
  "mcpServers": {
    "tg-archive": {
      "command": "/opt/homebrew/bin/tg-archive",
      "args": ["mcp"]
    }
  }
}
Вкажи повний шлях до бінарника, а не просто tg-archive — десктопний застосунок не бачить PATH твоєї оболонки. Виконай which tg-archive у терміналі, щоб дізнатись шлях (Homebrew на Apple Silicon ставить у /opt/homebrew/bin, на Intel-Маках — у /usr/local/bin). Додай "--allow-send" у список args, якщо хочеш ще й надсилання, а тоді перезапусти Claude Desktop.

Шпаргалка команд

КомандаЩо робить
tg-archive setupПерепройти налаштування
tg-archive loginУвійти в Telegram
tg-archive chatsПоказати чати та їх id
tg-archive backfillВитягти історію (можна переривати)
tg-archive liveСтежити за новими повідомленнями
tg-archive search "слова"Пошук по архіву
tg-archive mediaЗавантажити вкладення
tg-archive doctorПеревірити, чи не бракує історії
tg-archive statusСкільки вже в архіві
tg-archive send --chat "Анна" --text "вже їду"Надіслати повідомлення
tg-archive rerenderПеребудувати всі файли з бази
tg-archive mcpВіддати архів Клоду

Коли щось пішло не так

«no config … run `tg-archive setup`»

Ти пропустив частину 3 або запускаєш під іншим користувачем, ніж налаштовував. Виконай tg-archive setup.

macOS каже, що програму «неможливо відкрити» / невідомий розробник

Встановлення через Homebrew цього уникає — Homebrew не вішає на завантажене позначку карантину. Якщо ж ти качав архів браузером, macOS триматиме його, доки збірку не нотарізують в Apple. Використовуй brew install tggo/tap/tg-archive.

Код для входу не приходить

Він надсилається всередину Telegram, а не по SMS — відкрий застосунок і знайди чат Telegram. Якщо ти скрізь вийшов з акаунта, Telegram переходить на SMS, і воно може йти кілька хвилин.

Після коду просить якийсь пароль

Це двоетапна перевірка («хмарний пароль»), яку ти колись увімкнув у Telegram. Це не код з повідомлення і не пароль від телефона. Забув — скинути можна в Telegram: Налаштування → Приватність і безпека → Двоетапна перевірка.

backfill повільний або зупиняється на кілька хвилин

Так і має бути. Telegram обмежує темп запитів історії й просить зачекати; tg-archive чекає, замість довбати сервер — саме це тримає акаунт у безпеці. Лиши його працювати або зупини й продовж пізніше: прогрес зберігається.

Замість назви чату — просто число

Той акаунт видалено, і Telegram більше не віддає для нього імені. Повідомлення при цьому збережені.

Немає моїх секретних чатів

Секретні чати наскрізно зашифровані й лежать лише на тих двох пристроях, де їх створили. Жоден клієнт їх не експортує — ні цей, ні Telegram Desktop. Тут нема що лагодити.

Хочу почати з нуля

Видали ~/.config/tg-archive (налаштування й сесія) і теку архіву, потім знову tg-archive setup. Видалення сесії тут не виходить з Telegram на інших пристроях; щоб відкликати її з боку Telegram — Налаштування → Пристрої.

Чесні застереження

Не роби розсилокПрограма заходить під тобою. За масову відправку Telegram банить акаунт, а разом з ним зникає й доступ до архіву.
Архів — відкритий текстХто має доступ до твого Mac (або до бекапів), той його прочитає. Тримай на зашифрованому диску — FileVault закриває внутрішній.
Там не лише твої словаУ листуванні є й інші люди. Публікувати це — твоє рішення і твоя відповідальність.