Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Telegram Web에서 보이는 화면을 제어하는 Chrome 확장 프로그램, UI 숨기고 채팅 정리, 집중 폴더에 고정
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