Ось що лягає на диск — один файл на чат за місяць:
14:32 · Анна ↳ replying to “ти завтра будеш?”: так, після шостої
14:33 · me [voice 12s] 👍
14:41 · Анна (edited): краще о сьомій
Частина 1 — Встановлення
Постав Homebrew, якщо його ще немає
Homebrew — це «магазин» програм для командного рядка на Mac. Відкрий Термінал
(натисни ⌘ Пробіл, набери «Terminal», Enter) і встав:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Уже є? Переходь до кроку 2. Перевірити: brew --version.
Встанови tg-archive
brew install tggo/tap/tg-archive
Перевір, що поставилось:
tg-archive version
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 видає ключі доступу на кожен акаунт окремо. Будь-якому клієнту потрібна своя пара, і твоя нікуди не передається — навіть авторам цієї програми. Це дві хвилини.
Відкрий my.telegram.org
Зайди на my.telegram.org
і введи номер у міжнародному форматі, з кодом країни: +380671234567.
Код прийде в сам Telegram
Це не SMS. Код приходить повідомленням усередині Telegram, у чат під назвою Telegram — відкрий застосунок на телефоні чи компʼютері й подивись там.
API development tools → створити застосунок
Після входу натисни API development tools і заповни коротку форму:
| Поле | Що вписати |
|---|---|
| App title | tg-archive — будь-яка назва, її бачиш лише ти |
| Short name | tgarchive |
| URL | лишити порожнім |
| Platform | Desktop |
| Description | лишити порожнім |
Тисни Create application — на наступній сторінці буде два значення:
| Значення | Має вигляд |
|---|---|
api_id | число, наприклад 2040815 |
api_hash | 32 символи з літер і цифр |
Частина 3 — Перший запуск
Дай відповіді майстру налаштування
tg-archive setup
Він питає по одному; Enter лишає те, що в дужках:
| Питання | Відповідь |
|---|---|
| api_id / api_hash | встав те, що щойно отримав |
| where to write the archive | Enter → ~/TelegramArchive, або свій шлях |
| timezone | Europe/Kyiv (або Local) |
| private chats / groups / Saved Messages | y — це найцінніше |
| channels you follow / bot chats | n, якщо не хочеш шуму |
Увійди
tg-archive login
Номер телефону, потім код (ще раз: він приходить у Telegram), потім хмарний пароль, якщо в тебе увімкнена двоетапна перевірка. Це робиться один раз — сесія зберігається на твоєму Mac.
Витягни історію
tg-archive backfill
Він проходить кожен чат від найновішого вглиб. Роки листування тягнуться довго —
від десятків хвилин до кількох годин, і Telegram час від часу навмисно пригальмовує, а
програма це спокійно пересиджує. Можна будь-коли зупинити через Ctrl-C
і запустити пізніше — воно продовжить з того ж місця, а не почне спочатку.
Хочеш спершу спробувати? Візьми по 200 останніх повідомлень з кожного чату:
tg-archive backfill --limit 200
Тримай архів свіжим
Запусти фоновою службою — нові повідомлення падатимуть в архів за секунди:
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]. Завдяки
цьому роки листування важать десятки мегабайтів, а не сотні гігабайтів.Частина 4 — Як знаходити
Пошук працює через повнотекстовий індекс: миттєвий навіть на сотнях тисяч повідомлень і не спотикається об великі літери в українській — на відміну від звичайного пошуку підрядка.
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 # дотягнути
Другий акаунт
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_archive | Telegram, щоб дотягнути нове чи відсутнє |
send_message | Telegram — лише з --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 закриває внутрішній. |
| Там не лише твої слова | У листуванні є й інші люди. Публікувати це — твоє рішення і твоя відповідальність. |