Chrome extension to control what you see in Telegram Web — hide UI, curate chats, and lock into a focus folder.
翻译准备中
插件JavaScript · HTMLGitHub @nima1313自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A Chrome extension (Manifest V3) to control what you see in Telegram Web K
(web.telegram.org/k/) — like Unhook, but tailored to Telegram and far more
customizable. Hide distracting UI, curate which chats appear, and lock yourself
into a focused view.
Built for the WebK client (/k/) only. If you open the extension on WebA
(/a/), the popup offers to switch you over.
Create a native Telegram folder (e.g. focus mode) containing exactly the
chats you want, type its name into the extension, and on every page load the
extension auto-opens that folder for you. Because the filtering is done by
Telegram itself, it's always correct and complete — no matter how many chats you
have.
Filters only shape the chat list — Telegram still opens any chat you reach another way (a channel link inside a message, a mention, search). With Block other chats on, opening a chat outside your focus set covers the conversation with a "Hidden by Focus Mode" screen and a Back to focus button.
Unlock for 1 minute (in the popup, under Block other chats) switches the whole extension off for 60 seconds — folder tabs, search and every chat come back — with a countdown in the popup and at the bottom of Telegram. Then it all returns by itself and the focus folder reopens, even if you are still in another chat. For the times you really need to step out of focus briefly.
The focus set is your focus folder (when Focus folder is on) and/or your whitelist (when whitelist mode is on). Blocked names are always blocked.
Membership comes from Telegram's own folder data, so every chat in the folder counts — not just the ones currently on screen.
family matches "Family ❤️").
saved messages matches your Saved Messages chat.Click Pick element to hide, then click anything in Telegram to remove it. It generates a CSS selector from what you clicked and remembers it — the fallback when a preset doesn't match your build, or for hiding anything not covered by a preset. Picking a chat in the list adds it to Hide chats by name instead (a selector can't cleanly remove one row of Telegram's virtual list).
chrome.storage.sync).chrome://extensions.focus mode and add the chats you care about.focus mode).You'll land straight in your curated, distraction-free view every time.
src/content.js — fast, flicker-free, and it survives re-renders.#folders-tabs on load, and
src/page.js loads any folder chats missing from WebK's local cache
(appMessagesManager.reloadConversation), which WebK then adds to the list.src/page.js, inside WebK's own page context.
WebK's chat list is virtual: only the rows on screen exist in the DOM,
each absolutely positioned, so hiding rows would leave gaps and miss every
chat that isn't on screen. Instead, page.js wraps the function WebK uses to
fetch pages of dialogs: it scans the folder's whole list once, keeps the
matching chats, and hands Telegram only those. Telegram then renders a
normal, gap-free list. Live updates (a new message in a hidden chat) are
filtered the same way.page.js relies on WebK internals (window.appDialogsManager). If a Telegram
update changes them, name filtering stops (a warning is logged to the console)
while everything else keeps working. If a preset stops matching after an
update, the element picker still works.
| Path | Purpose |
|---|---|
manifest.json | MV3 manifest |
src/content.js | Presets, focus-folder click, element picker; forwards filter settings to page.js |
src/page.js | Name filtering (whitelist / blacklist) and the "block other chats" guard, inside WebK's page context |
popup/ | Extension popup UI (popup.html / popup.css / popup.js) |
icons/ | Toolbar/store icons |
tools/make_icons.py | Regenerates the icons (python3 tools/make_icons.py) |
chrome.storage.sync.https://web.telegram.org/k/*.#column-left,
#folders-tabs, #folders-container, #new-menu, …); the element picker is
the fallback for anything a preset misses.MIT