External Publication
Visit Post

How to disable the very annoying Ask ChatGPT?

OpenAI Developer Community February 7, 2026
Source
I tried the Tampermonkey script posted above, but it did not work. So I asked (yes, you guessed it) ChatGPT, and this one does work! // ==UserScript== // @name Hide “Ask ChatGPT” selection popup // http://tampermonkey.net/ // @version 2026-02-07.1 // @description Hides the “Ask ChatGPT” popup that appears when selecting text on chatgpt.com // You // @match https://chatgpt.com/* // @match https://chat.openai.com/* // @run-at document-start // none // ==/UserScript== (function () { ‘use strict’; // Try to hide the container that holds the “Ask ChatGPT” control. function hideAskPopup(root = document) { // Look for clickable elements that literally say “Ask ChatGPT” const candidates = root.querySelectorAll(‘button, a, [role=“button”]’); for (const el of candidates) { const txt = (el.textContent || '').trim(); if (txt === 'Ask ChatGPT') { // Walk up to a reasonable container and hide it let container = el; for (let i = 0; i < 6 && container; i++) { // Heuristics: popups/menus are often "dialog/menu/tooltip/portal" like containers const role = container.getAttribute?.('role') || ''; const isPopupy = role === 'dialog' || role === 'menu' || role === 'tooltip' || container.className?.toString().toLowerCase().includes('popover') || container.className?.toString().toLowerCase().includes('tooltip'); if (isPopupy) break; container = container.parentElement; } (container || el).style.setProperty('display', 'none', 'important'); (container || el).style.setProperty('visibility', 'hidden', 'important'); (container || el).style.setProperty('pointer-events', 'none', 'important'); } } } // Run once early and again when DOM is ready hideAskPopup(); // Watch for dynamic UI insertion (React portals etc.) const observer = new MutationObserver((mutations) => { for (const m of mutations) { for (const node of m.addedNodes) { if (node.nodeType === 1) hideAskPopup(node); } } }); function startObserver() { observer.observe(document.documentElement, { childList: true, subtree: true }); } if (document.documentElement) startObserver(); else window.addEventListener(‘DOMContentLoaded’, startObserver, { once: true }); })();

Discussion in the ATmosphere

Loading comments...