Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
Chrome extension to control what you see in Telegram Web — hide UI, curate chats, and lock into a focus folder.
PluginsJavaScript · HTMLGitHub @nima1313Self-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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