// ==UserScript== // @name Claude No Auto-Scroll // @description Disable auto-scroll on Claude.ai // @match https://claude.ai/* // @version 0.0.1.20250316172707 // @namespace https://greasyfork.org/users/1435046 // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Find the main scroll container const findScrollContainer = () => { return document.querySelector('div.overflow-y-scroll'); }; // Block auto-scroll while preserving manual control const disableAutoScroll = (container) => { Object.defineProperty(container, 'scrollTop', { set: function() {}, // Block programmatic scroll get: () => container._realScrollTop || 0, configurable: true }); // Track real scroll position container.addEventListener('scroll', () => { container._realScrollTop = container.scrollTop; }); }; // Wait for container to exist const observer = new MutationObserver(() => { const container = findScrollContainer(); if (container) { observer.disconnect(); disableAutoScroll(container); } }); observer.observe(document.body, { childList: true, subtree: true }); })();