I second this, very annoying feature
I made a tampermonkey script to hide it. Works so far.
(function() {
‘use strict’;
setTimeout(function(){
// Create a new element to prepend
const newElement = document.createElement('style');
newElement.textContent = '.fixed {display: none;}';
// Prepend the new element to the body
document.head.append(newElement);
}, 4000);
})();
Always covering something I need to copy. I’m IN ChatGPT already, asking it questions. Why do you need to prompt me to do what I am already doing?
Yes, thumbs down on the Ask ChatGPT bubble! It gets in the way of things I’m trying to read or copy. Please add a switch to turn it off.. Or remove the annoyance completely!
This is what your robot told me to tell you:
The floating “Ask ChatGPT” bubble that appears when selecting text in the ChatGPT web UI is intrusive, blocks content, and triggers constantly. Please add a user-visible setting to disable it entirely.
Completely agree, this is intrusive and absolutely unnecessary. As Bill said, if I am in chatgpt already why would I need a prompt for me to ask chatgpt something? Please for the love of all of our sanity, remove this or give me a way to disable it!
It’s such bad design that I signed up to this community just to post about it. Absolutely disruptive and absurd.
Is there now a way to toggle this disruptive insert from settings ?
Thank you for making a userscript however I do not wish to use proprietary software “tampermonkey”
How in the world did they ever think this was a good idea? Worst thing ever. Isn’t there a way to turn it off?
Me too. It’s strikes me as badly broken design.
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 });
})();
I just found a solution - I’m using Brave browser and right-clicked on the floating “Ask ChatGPT” bubble and selected to block this element. It’s gone for good, finally. Very annoying thing.
clearly chatgpt developers do not listen to what we write. this is just going to add to their failure.
