Tip
Struggling to search Chinese, Japanese, or Korean (CJK) messages in Telegram?
Important messages often get lost in the noise — especially when word boundaries aren’t clear.
Telegram Search solves this with advanced semantic search and word segmentation, fully supporting CJK and all languages.
Vector search enables fuzzy, sentence-level matching, making it easy to find the information you need—even in languages without spaces.
- Export chat history to multiple database types: supports both PGlite and PostgreSQL
- Media files are automatically backed up to MinIO object storage—no manual steps required
- Automatic vector embedding and tokenization during export for precise future search
- Real-time sync keeps all conversations updated continuously
- Intelligent word segmentation for accurate, multilingual retrieval
- Combines fuzzy matching with vector-based semantic search for highly efficient results
- Image semantic search: find images by text description via image embedding
- Infinite scroll for search results — smoother browsing experience
- RAG-powered AI Q&A: Chat with AI using your Telegram history as real-time context
- Search and export messages via Bot
- Message deep links — jump to the original conversation in one click
- Smart unread message summaries: Instantly aggregate all unread content with a concise AI-generated summary
- Date range filtering for quickly narrowing down search results
- Context menu to jump to the original Telegram message, with mobile support
- Automatic session summaries
- "Super Brain": Build knowledge graphs of people and events directly from your chat records
- Intelligently organize your "Saved Messages" for efficient content management
- Deep link and image indexing: web page summarization, OCR for images, AI-driven captions—powerful search & archival
- Expand to Discord and other major social/messaging platforms for unified search and backup
We offer an online experience—no deployment needed. Try all Telegram Search features instantly.
Visit: https://search.lingogram.app
Warning
No cryptocurrency has been issued by us. Please beware of scams.
This tool exports only your own chat history. Do not use it for illegal purposes.
The recommended way to self-host is with Docker Compose. This launches the UI, backend, database, and media storage in one step.
- Create an empty folder for your Telegram Search data and config:
mkdir telegram-search
cd telegram-search- Download the Docker Compose and default environment files:
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/docker-compose.yml -o docker-compose.yml
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/.env.example -o .env
curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/init.sql -o init.sql- Start all containers:
docker compose -f docker-compose.yml up -d- Open http://localhost:3333 in your browser to start using Telegram Search! 🎉
If MinIO is not configured, media files will be stored in the local data/media directory.
docker run -d --name telegram-search -p 3333:3333 ghcr.io/groupultra/telegram-search:latestImportant
AI Embedding & LLM settings are now per-account in-app (Settings → API).
Please restart the service after modifying the .env file by running docker compose -f docker-compose.yml up -d.
All environment variables are optional. If not provided, the default values will be used.
| Variable | Description | Example |
|---|---|---|
TELEGRAM_API_ID |
From my.telegram.org | 611335 |
TELEGRAM_API_HASH |
From my.telegram.org | d524b414d21f4d37f08684c1df41ac9c |
DATABASE_TYPE |
Database type: postgres or pglite |
pglite |
DATABASE_URL |
PostgreSQL connection string (DATABASE_TYPE=postgres only) |
postgresql://postgres:123456@pgvector:5432/postgres |
TELEGRAM_BOT_TOKEN |
Bot token from @BotFather | 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 |
PROXY_URL |
Proxy address (formats like socks5://user:pass@host:port) |
socks5://user:pass@host:port |
PORT |
Backend HTTP/WebSocket listening port | 3333 |
HOST |
Backend listening address | 0.0.0.0 |
BACKEND_URL |
Upstream backend for Nginx /api//ws proxy |
http://127.0.0.1:3333 |
MINIO_URL |
MinIO service address | http://minio:9000 |
MINIO_ACCESS_KEY |
MinIO access key | minioadmin |
MINIO_SECRET_KEY |
MinIO secret key | minioadmin |
MINIO_BUCKET |
MinIO bucket name | telegram-media |
Please modify the environment variables according to your needs.
docker run -d --name telegram-search \
-p 3333:3333 \
-e TELEGRAM_API_ID=1234567890 \
-e TELEGRAM_API_HASH=1234567890 \
-e DATABASE_TYPE=postgres \
-e DATABASE_URL=postgresql://postgres:123456@pgvector:5432/postgres \
-e PROXY_URL=socks5://user:pass@host:port \
-e PORT=3333 \
-e HOST=0.0.0.0 \
ghcr.io/groupultra/telegram-search:latestgit clone https://github.com/groupultra/telegram-search.git
cd telegram-search
pnpm install
cp .env.example .env
pnpm run devgit clone https://github.com/groupultra/telegram-search.git
cd telegram-search
pnpm install
cp .env.example .env
docker compose up -d pgvector minio
pnpm run server:dev
pnpm run web:dev📖 More details: CONTRIBUTING.md
