Slack open in browser userscript 21 Sep 2026 12:57 ============================================== I despise Slack very much and try to use it as little as possible. Sometimes, however, I have no choice but to message a colleague or a friend, so I refuse to download the Slack app because I don't want it open all the time. One thing that really annoyed me was that whenever you clicked on a Slack channel from the main Slack homepage, it would do two things: It would try to open Slack in the app, which I didn't have installed, so it would require me to click "Open in Browser" or "Continue in Browser." It would open Slack workspaces in a new tab, which was very frustrating because I don't need the Slack homepage open in my browser. I wrote a small userscript that bypasses and disables the new tab opening and automatically clicks the "Continue in Browser" button when it appears. // ==UserScript== // @name Slack Browser UX Enhancements // @description Keeps Slack in the browser and prevents workspace links opening new tabs // @version 1.0.1 // @author @tdrayson // @namespace https://github.com/tdrayson/userscripts // @match https://*.slack.com/* // @match https://*.slack.com/ssb/redirect* // @match https://*.slack.com/archives/* // @icon https://www.google.com/s2/favicons?sz=64&domain=slack.com // @run-at document-end // @grant none // ==/UserScript== (function () { 'use strict'; const textVariations = [ 'use slack in your browser', 'open in browser', 'continue in browser', 'stay in browser', 'open this link in your browser', ]; let browserLinkClicked = false; function disableNewTabOpening() { const links = document.querySelectorAll( 'a.ss-c-workspace-detail__action, a.workspace-list-item' ); if (links.length === 0) return; links.forEach((link) => { if (link.target === '_blank') { link.target = '_self'; } }); } function clickBrowserLink() { if (browserLinkClicked) return; const links = document.querySelectorAll('a'); for (const link of links) { const text = (link.textContent || '').toLowerCase().trim(); if (!text) continue; if (textVariations.some((variant) => text.includes(variant))) { link.click(); browserLinkClicked = true; break; } } } window.addEventListener('load', disableNewTabOpening); const observer = new MutationObserver(() => { disableNewTabOpening(); clickBrowserLink(); }); if (document.body) { observer.observe(document.body, { childList: true, subtree: true, }); } clickBrowserLink(); })();