Skip to Content
Changelogv0.1.0 — Telegram, to go.

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 --qr

Set 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 | fx

Replace 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 | fx

Repeat 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..

Try the fx and fzf demos →

Before your first big export

  • Interactive search covers the records fetched in this run; --limit 200 selects 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 error even 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).