TG Manager — User manual
What is TG Manager
TG Manager is an app that reads messages from Telegram channels and RSS feeds, lets AI process them (translation, summary, tags, importance scoring), and lets you publish the selected posts to your own Telegram channel.
Signing in
Open the app at its address and click Log in. There are two ways to sign in:
| Method | How it works |
|---|---|
| Phone | Enter your phone number, then the verification code. |
| QR code | Scan the QR code with the official Telegram app. |
Phone + code
+420 123 456 789.QR code
Two-step verification (2FA)
If you have two-step verification enabled, the app will ask for your password. Find it in Telegram: Settings → Privacy & Security → Two-step verification. For QR login: enter the password and scan the newly generated QR code again.
Flood Wait — temporary limit
If Telegram detects too many sign-in attempts, an orange warning with a countdown appears. Wait for the countdown to finish — repeated attempts extend the limit.
First run — Onboarding
After the first login the app walks you through 5 setup steps. Each step has a progress bar and unlocks progressively:
| # | Step | What you set |
|---|---|---|
| 1 | Add sources | First source (Telegram channel or RSS) |
| 2 | Feed settings | Sorting, relevance, channel filter |
| 3 | AI analysis | AI language, topics, scoring weights |
| 4 | Publishing | Target channel, post structure, signature |
| 5 | URL filter | Blacklist of unwanted URLs |
Unlock: add 1 source, run Scan — after the first successful sync you can add more without limits.
After the last step, finish with Done — the onboarding closes and the app is ready for full publishing (draft editor, media, sending).
Dashboard
| Element | What it does |
|---|---|
| Settings | Opens Settings |
| Account | Popover with account, sync status and quick actions |
| Status dot | Green = connected · blue = syncing · red = error |
| AI credits | Credit balance (⚡ + number) |
| Connectors | Sources panel (camera icon + source count) |
| My channel | Preview of your own channel (RadioTower) |
| Scan | Runs a sync |
| New draft | Opens an empty draft for a new post |
Account popover
On mobile the header icons collapse into a hamburger menu (Account, Settings, Help), and the feed-level actions move to a bottom bar(Sources, My channel, Blocked feed, Settings).
Click the Account icon top-right: you'll see connection status, counts SOURCES / MESSAGES / LAST SYNC and the Account and Log Out buttons.
Adding sources — Connectors (Telegram + RSS)
Open the sources panel with the Connectors icon in the header. It has two tabs: Telegram and RSS.
Telegram — adding a channel
Or quickly: type @channelName (e.g. @Reuters) or a t.me/link into the field and confirm with Enter / the + button.
RSS — adding a website
theguardian.com, or a direct feed URL.Sync & AI analysis
Pull in new messages with the Scan button in the header:
| Situation | Behavior |
|---|---|
| Auto Scan off | Manual Scan (with a short cooldown after each run) |
| Auto Scan on | Scan runs on an interval (5–60 min), the button shows a countdown ring |
What happens after Scan
Card states
| State | What you see |
|---|---|
| Pending | Blue spinner "AI RUN" + "Waiting for AI analysis" |
| Ready | Card with headline, AI Summary, tags and score |
| Failed | Red error + retry button |
| Published | Purple PUBLISHED + link to published posts |
Time range
If the last sync is older than 12 hours (or never happened), the app asks how far back into history to pull.
| Situation | Options |
|---|---|
| First sync | Only 6 hours — keeps the feed small for a first try |
| Regular sync | 1 / 3 / 6 / 9 / 12 / 24 hours |
Feed cards & scoring
Card anatomy
- Left column — score (rotated number 0–100). Color: blue = pending, red = failed, purple = published, green = highlighted.
- Source + time — channel and date.
- Headline — title created by AI.
- AI Summary — summary with a blue border.
- URL chips — links from the article.
- Tags — green = your topic, gray = AI tags without a match, black = a blocked topic (in the Blocked feed). Click a tag to open actions — add to topics / block / remove / unblock.
- Bottom bar — AI STATUS and buttons.
Scoring — how to set the weights
The score (0–100) is just a weighted sum of two things: how big the story is for the world (World impact, scored by AI) and how well it matches your topics (Topics).
| You prefer… | World impact | Topics | Result |
|---|---|---|---|
| World events | Max | Default | Big stories get highlighted green |
| Your topics | 0 | Max | The app prefers your topics |
Final tuning: one combined Relevance → Highlight slider (Feed). The left thumb hides low-score posts (0 = ALL), the right thumb sets the score at which a card turns green. Highlight is always at least 30 points above relevance. The track is color-coded: red = hidden below relevance, gray = visible, green = highlighted.
Flip — original vs. AI
Click the link icon to flip the card and see the original text with an "ORIGINAL" badge and a link to the original post.
Card actions
| Action | How |
|---|---|
| View media | Opens MediaModal |
| Prepare draft | Loads the post into the Draft editor |
| Hide | Hides the card (local only). On a merged (story) card it hides the whole group as one item — Undo restores all variants |
| Retry | Re-runs AI analysis |
| Blacklist URL | × on a URL → adds it to the blacklist |
| Condense | Shrinks the AI summary — 1 credit cloud / 0 local. Disabled for summaries under 350 chars. Once a condensed version exists, the button just toggles condensed ↔ full (free) |
| Tag chip | Click to open actions — add to topics / block a topic / remove from topics / unblock |
Blocked feed — posts with blocked topics
Posts matching a blocked topic (and posts without meaningful content — the AI headline is "Not enough context") don't appear in the main feed. They go to theBlocked feed, opened with the shield button (top toolbar on desktop, bottom bar on mobile; a red badge shows how many are hidden). Cards there are styled dark and the blocked-topic chips are black. Click a black chip to Unblock the topic or add it to your topics; or hide the card with the trash icon.
Keyboard shortcuts
| Key | Action |
|---|---|
↓ / ↑ | Next / previous card in compact mode |
PageDown / PageUp | First / last card |
Delete | Hide + advance to next |
← / → | Switch variant on a merged (story) card |
Ctrl+Z | Undo (restore a hidden card) |
Enter / Tab | Load the card into the Draft |
Ctrl+Enter | Publish |
Story cards — merged posts
When several sources (Telegram and RSS) bring the same event, the app merges them into one card — the feed doesn't fill with duplicates. A merged card is marked with a purple ★ N variants badge.
| Element | What it does |
|---|---|
| ★ N variants | Purple badge in the card header — how many sources cover the event. In compact mode it's a purple circle with the count before the trash icon. |
| Publish version (composite) | Default view (star button among the avatars): text from the best-scored variant + media from the variant with the most media. This is the version you send to the draft with ✏️. |
| Channel avatars | Each variant has its source's avatar; click to switch to that channel's original post. The star returns to the composite. ← / → cycle variants too. |
| Action | What it does |
|---|---|
| Unmerge group | If the app wrongly merged two different events — splits them back into separate cards; that pair never merges again. |
| Hide | Hides the whole group as one item; Undo (Ctrl+Z) restores all variants. |
| Turn merging off | Settings → Feed → Story cards (default ON) — merged cards split back into individual posts. |
Publishing (Draft)
Click the pencil (Prepare draft) on a card, or New draft in the header. The Draft panel slides in from the right:
| Section | What it does |
|---|---|
| Media | Manage media from the original post + your own files |
| Text | Headline, editor, AI/Original, Topics, URL |
| Publish to | Pick the target channel (per-post override) |
| Pending High-Priority | Queue of important waiting posts — quick LOAD |
AI text processing
The ✏️✨ button in the Text header is context-aware:
| Option | Result |
|---|---|
| Translate only | Full translation + headline, tags, URL |
| Summarize | Concise summary + headline, tags, URL (creates AI Compact and AI Full) |
Load from link (Download icon ⬇️)
The ⬇️ icon in the Text header opens the LOAD FROM LINK box. Paste a link and click Load — the app figures out what it is:
https://t.me/channel/12345 → Telegram (unchanged): loads the message straight into the draft — handy for your own older posts.Publishing
URLs from the post
In Settings → Publishing you control how (and whether) the article's links are printed into the published post. With Numbered / Domain / Template, the real URLs travel inside Telegram link entities, so they don't count against the 4096/1024 character limit — only the visible markers do. Full prints every URL as plain visible text and therefore uses up the limit.
Translating videos with SublyAI (Beta)
Want subtitles or a translation on a video from your feed? TG Manager connects to SublyAI (a separate app) through a secure postMessage handoff — you send the video for translation and the subtitled video comes back into your draft.
SUBLYAI_HANDOFF_URL (default: the local dev instance).Back in TG Manager:
| If you sent it from… | What happens |
|---|---|
| The draft editor (MediaManager) | The subtitled video appears directly in MediaManager (with no SublyAI button). |
| The feed viewer (MediaModal) | The modal stays open, briefly shows a Loading translated video… loader, then reveals the returned video with a green Use translated video button. Closing the modal while the translated video is present asks whether to discard it or use it in the current post. |
Use translated video opens the publisher on the AI view, adds the subtitled video to MediaManager (again with no SublyAI button), and excludes the original video when it can be identified uniquely. So you publish the clean subtitled video. If the original can't be pinned down (e.g. an album), everything stays live and you pick in MediaManager which media to keep (Remove/Restore on each item).
Where to find things
Open Settings with the ⚙️ icon in the header, via the Account popover, or from the Account page. The panel has 5 sections:
FEED
| Setting | What it does |
|---|---|
| Relevance → Highlight | Hidden below relevance (0 = ALL) → green highlight; highlight ≥ relevance + 30 |
| Source / Order / Sort by score | Source filter, ordering, score sorting |
| Compact mode / Show media | Compact list / media previews |
| Story cards | Merge posts about the same event into one card (default ON). Off shows every variant separately |
| Auto-open compact card | After hiding/publishing, automatically expand the next card (default OFF). Off keeps the feed collapsed |
| Auto Scan | Automatic sync (5–60 min) |
AI
| Setting | What it does |
|---|---|
| AI Output Language | Language of all AI output — 100+ languages. Searchable picker: type a name or code (cz, jp, ua work too) |
| World impact weight | Weight of the AI world-importance score |
| Relevance weight | Points per topic match |
| Topics | Your topics — chips (max 20) |
| Topics | Blocked topics | Topics = what you want to read (green chips). Blocked = what you never want to see — matching posts move to the Blocked feed (see Feed & scoring). Mutually exclusive with Topics, max 20 each. Shortcut: click any tag chip → Block |
| Suggest topics | AI suggests new topics from a channel |
PUBLISHING
| Setting | What it does |
|---|---|
| Target Channel | The channel you publish to |
| Headline symbol / List symbol | Symbol before headline (media-less only) · bullet replacement |
| Publish headline / Show source | Headline bold · link to original |
| Signature | Custom signature (bold, italic, links) |
| Link preview TG/RSS + Hide after publish | Link preview · hide card after publish |
| Publish guard | Warn when the target channel already has a similar post (a near-identical text or shared URL is flagged as a duplicate) — default ON |
| Block on duplicate | Stop the publish when a duplicate is found — turn off to show the modal as informational only and never intercept the publish (default ON) |
| URLs from post | Toggle — when ON, the post's source URLs are added (default ON). OFF = no URLs from the url field |
| URL display mode | How URLs appear (default Numbered): Full (each URL on its own line, counts toward the limit) · Numbered ([1][2]… after the text, URLs hidden in link entities so they don't count) · Domain (hosts on one line, URLs hidden) · Template (your label with a [word] that gets an index, URLs hidden) |
| URL template | Only for Template mode — default 🔗 Source: [link]; the word in […] is the base the index is appended to (translate/edit freely) |
BLACKLISTED URLS and OTHER
Blacklisted URLs — blocks unwanted URLs (substring-based). Other — Model Provider (Google Gemini vs Local LM Studio/Ollama), diagnostics and App Reset.
Account & credits
Open the account page: header → user icon → Account.
| Section | Content |
|---|---|
| Telegram | User ID, status, cloud connection |
| Credits & Usage | 30-day usage chart + credits Log |
| Quick actions | Settings, Data export, App Reset, Log Out, Delete |
How credits work
GDPR / data
| Action | What it does |
|---|---|
| Download My Data | JSON export of all your data (GDPR) |
| Delete My Account | Permanently deletes the account and local data — cannot be undone |
| Log Out | Only clears the login in this browser |
Troubleshooting & tips
Sign-in
| Problem | Solution |
|---|---|
| "Code didn't arrive" | The code is only in the official Telegram app (service chat) |
| "Flood Wait" | Wait for the countdown — retrying extends the limit |
| QR doesn't work | Wait for the QR to refresh · with 2FA scan a new QR |
Sources (RSS)
| Problem | Solution |
|---|---|
| "No feed found" | Try another domain or RSSHub |
| Bot-blocked website | The app automatically tries the Google News fallback |
AI
| Problem | Solution |
|---|---|
/chat/completions → 404 | The app appends /v1 itself |
| CORS with local AI | Enable CORS for the exact origin (Vercel / localhost) |
| Model returns invalid JSON | Pick a model with better JSON support, or use Gemini |
Feed
| Problem | Solution |
|---|---|
| Two posts merged into one card | That's a Story card — switch variants with the avatars or ←/→; wrongly merged events can be split with "Unmerge group". Disable merging in Settings → Feed → Story cards |
| Where did posts about a blocked topic go? | They're in the Blocked feed — open it with the shield button (top toolbar on desktop, bottom bar on mobile). Unblock a topic by clicking its black chip → Unblock |
| How do I block a topic? | Click a tag on a card → Block, or Settings → AI → Blocked tab |
| Why do variants share the same headline? | The AI translates every source of the same event into one language — headlines unify, but the details differ. The composite (★) combines the best text with the richest media |