v0.1.0 — Telegram, to go.
First stable release
Your conversations should be useful outside the chat window. indexit’s first release gives you a small CLI to export Telegram history, collect specific messages, and bring photos and files home. The output is yours: JSONL for your tools, ordinary files for your archive.
Sign in without waiting for a code
Scan a terminal QR from an already signed-in Telegram device. 2FA is supported, expired QR codes refresh automatically, and the session is reused on later runs.
indexit telegram auth login --qrSet up your API credentials with the quick start. Phone-code login is also available, with a qr escape hatch when delivery fails. Accounts & sessions →
Take the conversation with you
Open a conversation in fx , expand its fields, and search the contents. Narrow history by date or ID, or inspect only the links you care about. Install the companion tools first.
indexit -q telegram fetch messages \
--dialog @example_channel --limit 200 | fx
indexit -q telegram fetch message https://t.me/example_channel/46 | fxReplace example names and IDs with your own. History arrives newest first; service events are filtered. Explore conversations →
Bring a whole topic home
Find a forum’s topics, choose a trip, and download its photos at the largest available size. The manifest keeps message IDs, album IDs, and file paths together.
indexit -q telegram fetch topics --dialog @example_forum | fx
indexit -q telegram fetch media \
--dialog https://t.me/example_forum/42/1042 \
--media photo --limit 20 --dir ./trip | fxRepeat the command to skip existing non-empty files. Add --overwrite to fetch them again. Failed files are recorded in the manifest while the walk continues. Save topics & media →
Connect your way
SOCKS5, MTProto, and HTTP CONNECT are supported. Paste a Telegram proxy-sharing link into .env; MTProto secrets work in hex and base64.
INDEXIT_PROXY_URL="tg://proxy?server=proxy.example&port=443&secret=YOUR_SECRET"Use real proxy values. Configuration is validated before connecting, with no silent fallback to a direct connection. Proxy setup →
Find the conversation by name
Send the dialog list into fzf, type part of a title, and select the chat you need. jq shapes the rows; fzf gives you the interactive fuzzy finder.
indexit -q telegram fetch dialogs \
| jq --unbuffered -r '[.uid, .title // .username // .uid] | @tsv' \
| fzf --delimiter '\t' --with-nth 2..Before your first big export
- Interactive search covers the records fetched in this run;
--limit 200selects a small first window. - A full topic link contains both topic and message numbers, such as
https://t.me/example_forum/42/1042. A message-only link selects the whole dialog for history/media exports. - Check media records with
erroreven after a successful command exit. Use one media directory per dialog.
This release covers Telegram ingestion through a user account. Contacts, Stories, live sync, a built-in search index, and automatic account/proxy orchestration are not included.
Get started: install indexit and make your first export. Install with Homebrew on macOS, or download a v0.1.0 release archive for macOS or Linux (amd64, arm64).