[Try it Now] [็ฎไฝไธญๆ] [ๆฅๆฌ่ช]
Easily find and export your Telegram messages with powerful semantic search, supporting all languages and unsegmented sentences.
Make message retrieval fast, accurate, and privacy-friendly โ self-host or try online.
- Export to PostgreSQL or in-browser database (PGlite)
- Universal export format for easy import to any database
- One-click export to CSV / JSON
- Keyword search: multi-language support (Chinese, English, etc.)
- Natural language search: find messages like asking a question
- Smart filters: by contact/group, time range, with attachments, etc.
- Incremental sync: sync while using
- Storage options: server (PostgreSQL + pgvector) or browser-only mode (PGlite)
- Resume from breakpoint: auto-continue after failure
- Ask AI about your chats: query current chat or selected range
- AI message summary: auto-extract key points, todos, conclusions
- AI-powered search: natural language queries with pinpointed results
- AI chat: converse with AI based on your chat context
- AI analysis: trends, sentiment, keywords, insights from links & files
- Local model support: local Embedding / inference (no cloud required)
- Deep indexing for links & images: web summaries, image OCR/descriptions
- Attachment content extraction: PDFs, images, audio/video key frames & text
- Multi-client support: Discord, etc.
We provide an online version where you can experience all features of Telegram Search without self-deployment.
Note
We promise not to collect any user privacy data, you can use it with confidence
Visit: https://search.lingogram.app
Important
The simplest way to get started โ no configuration needed. All features work with sensible defaults.
docker run -d --name telegram-search \
-p 3333:3333 \
-v telegram-search-data:/app/data \
ghcr.io/groupultra/telegram-search:latestThen open http://localhost:3333 ๐
๐ง Environment Variables
[!TIP] All environment variables are optional. Customize only if needed.
| Variable | Description |
|---|---|
TELEGRAM_API_ID |
Telegram app ID from my.telegram.org |
TELEGRAM_API_HASH |
Telegram app hash |
DATABASE_TYPE |
postgres or pglite (default: pglite) |
DATABASE_URL |
PostgreSQL connection string (only when DATABASE_TYPE=postgres) |
PROXY_URL |
Proxy URL (e.g. socks5://user:pass@host:port) |
PORT |
Backend HTTP/WebSocket port inside the container (default: 3000) |
HOST |
Backend listen host inside the container (default: 0.0.0.0) |
BACKEND_URL |
Nginx upstream URL for /api and /ws (default: http://127.0.0.1:3000) |
[!IMPORTANT] AI Embedding & LLM settings are now configured per account inside the app (Settings โ API).
Environment variables likeEMBEDDING_API_KEY,EMBEDDING_MODEL, etc. are deprecated and will be removed in a future release.
Example with PostgreSQL:
docker run -d --name telegram-search \
-p 3333:3333 \
-v telegram-search-data:/app/data \
-e TELEGRAM_API_ID=611335 \
-e TELEGRAM_API_HASH=d524b414d21f4d37f08684c1df41ac9c \
-e DATABASE_TYPE=postgres \
-e DATABASE_URL=postgresql://<postgres-host>:5432/postgres \
ghcr.io/groupultra/telegram-search:latestProxy formats:
- SOCKS5:
socks5://user:pass@host:port - SOCKS4:
socks4://user:pass@host:port - HTTP:
http://user:pass@host:port - MTProxy:
mtproxy://secret@host:port
๐ Full environment variable reference: docs/ENVIRONMENT.md
-
Clone repository.
-
Run docker compose to start all services including the database:
docker compose up -d- Access
http://localhost:3333to open the search interface.
Caution
Development requires Node.js >= 24.11 and pnpm. Make sure you have them installed.
git 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
# Copy and adjust environment variables (Telegram keys, DB type/URL, proxy, etc.)
cp .env.example .env
# Optionally override in .env.local (ignored by Git)
# Start PostgreSQL with pgvector (or point DATABASE_URL to your own DB)
docker compose up -d pgvector
# Start backend & frontend (two terminals)
pnpm run server:dev # Terminal 1: WebSocket server (uses .env/.env.local via dotenvx)
pnpm run web:dev # Terminal 2: Vue frontend๐ More development details: CONTRIBUTING.md
This project is a monorepo with event-driven architecture:
apps/web: Vue 3 frontendapps/server: WebSocket serverpackages/client: Client adapters & stores (Pinia)packages/core: Event bus (EventEmitter3), services, database models (Drizzle ORM)packages/common: Logger & utilities
Key Technologies:
- Event-driven with
CoreContext(EventEmitter3) - Real-time communication via WebSocket
- PostgreSQL + pgvector OR PGlite (in-browser)
- Message processing pipeline: Embedding, Jieba, Link, Media, User resolvers
๐ Full architecture details, event flow, and diagrams: CONTRIBUTING.md
Warning
We have not issued any virtual currency, please do not be deceived.
Caution
This software can only export your own chat records for search, please do not use it for illegal purposes.
