ScrollToPrompt is an MIT-licensed TypeScript browser extension that adds a minimap-style navigation layer to the scrollbar of AI chat interfaces such as ChatGPT, Claude and Gemini, so that anyone working through long conversations can jump straight back to an earlier prompt instead of scrolling to find it.
What it is
ScrollToPrompt is a browser extension written in TypeScript and bundled with Vite through the @crxjs/vite-plugin. It belongs to the ecosystem of Chromium extensions that augment third-party AI chat interfaces, and the README documents loading it into Chrome, Brave or Edge from an unpacked dist folder. Internally it follows a modular adapter pattern that separates site-specific logic in src/adapters from the core engine in src/core, the isolated Shadow DOM components in src/components, content script entry points in src/content, service worker logic in src/background, and shared types and utilities.
The problem it addresses is scrollback in long-form AI interactions. Once a conversation runs to hundreds of messages, the host page's scrollbar gives no indication of where earlier prompts sit, and returning to a specific question means dragging or scrolling until it appears. ScrollToPrompt injects visual markers into the scrollbar area, one per prompt, turning a conversation's history into a navigable map rather than an undifferentiated column of text.
Key capabilities
- Site-specific adapters for ChatGPT, Claude and Gemini (chatgpt-adapter, claude-adapter, gemini-adapter), each handling that platform's DOM selection.
- A Shadow DOM UI layer that keeps injected markers fully isolated from host page CSS and prevents styling conflicts.
- Optimised MutationObserver logic with debounced rendering, so markers track new messages without continuous re-rendering.
- Theme awareness: marker styling adapts dynamically to the host interface's light and dark modes.
- Privacy-first operation, with zero data collection and all logic running locally in the browser.
- A modular adapter pattern with zero coupling between platform-specific code and the core engine, so new platform support is a new adapter rather than a core change.
- Established tooling throughout: ESLint and Prettier for linting and formatting, Vitest for tests, and a GitHub Actions CI workflow.
Who uses it and how
- People who hold long-running AI conversations and need to revisit an early prompt without losing their place in the current one.
- Chromium users on Chrome, Brave or Edge, who install it by enabling Developer Mode at chrome://extensions and using Load Unpacked against the built dist folder.
- Privacy-sensitive users and teams that cannot send conversation data to a third-party service, since the extension runs entirely in the browser.
- Contributors extending platform coverage: the adapter pattern is designed so that Perplexity and Poe support, both listed on the roadmap, can be added without touching the core engine.
Getting started
Clone the repository, run npm install on Node.js v18 or later, start the development server with npm run dev, and load the generated dist folder through Load Unpacked in chrome://extensions with Developer Mode enabled.
How it compares
The material available for this entry names no paid or commercial products as alternatives, and no comparable tool is named either, so ScrollToPrompt stands alone in this registry.
When to use it — and when not to
There is no server side to operate: no database, object storage or SMTP to run, only a Node.js 18+ build step and a Chromium browser to load the result into, which keeps the burden low for individual users. It is not the right pick for anyone who expects a packaged store install or a Firefox or Safari build, since the README documents only the load-unpacked developer path. The repository also lists zero forks and zero open issues, and the message bus between content scripts, background workers and the popup is still marked as planned, so this is a young project rather than a settled one.
project readme (upstream, from github) — read inline
ScrollToPrompt

ScrollToPrompt is a production-grade browser extension designed to enhance the navigation experience in modern AI chat interfaces. By injecting high-performance, visual markers into the scrollbar area, it allows users to instantly locate and jump back to their previous prompts.
Vision & Purpose
In the era of long-form AI interactions, navigating through hundreds of messages can be cumbersome. ScrollToPrompt aims to provide a "Minimap-like" experience for chat history, ensuring that your context is always just one click away.
Features
- Intelligent Detection: Site-specific adapters for ChatGPT, Claude, and Gemini.
- Shadow DOM UI: Fully isolated UI components to prevent styling conflicts with the host page.
- High Performance: Optimized
MutationObserver logic with debounced rendering.
- Theme Awareness: Dynamic styling that adapts to both light and dark modes.
- Privacy First: Zero data collection. All logic runs locally in your browser.
Architecture & System Design
The project follows a Modular Adapter Pattern, ensuring high cohesion and zero coupling between platform-specific logic and the core engine.
Core Modules:
Core Engine: Orchestrates the detection, state management, and UI updates.
Adapters: Platform-specific implementations (ChatGPT, Claude, Gemini) that handle DOM selection.
UI Layer: A Shadow DOM-based component system for rendering markers.
Message Bus: (Planned) Handles communication between content scripts, background workers, and the popup.
Folder Structure:
src/
├── adapters/ # Site-specific logic (Adapter Pattern)
├── assets/ # Static assets & icons
├── components/ # Isolated UI components (Shadow DOM)
├── core/ # Business logic & Engine
├── background/ # Service worker logic
├── content/ # Content script entry points
├── types/ # Global TypeScript definitions
└── utils/ # Shared utility functions
Tech Stack
- Languages: TypeScript, HTML, CSS
- Bundler: Vite with
@crxjs/vite-plugin
- Linting: ESLint, Prettier
- Testing: Vitest
- CI/CD: GitHub Actions
Getting Started
Prerequisites
- Node.js (v18+)
- npm / pnpm / yarn
Installation
- Clone the repository:
git clone https://github.com/AhmadHassan-BTed/ScrollToPrompt.git
- Install dependencies:
npm install
- Start the development server:
npm run dev
Loading into Browser
- Open Chrome/Brave/Edge and navigate to
chrome://extensions.
- Enable Developer Mode.
- Click Load Unpacked.
- Select the
dist folder generated by the build.
Development Workflow
- Linting:
npm run lint
- Formatting:
npm run format
- Testing:
npm run test
- Build:
npm run build
Contributing
We welcome contributions! Please see CONTRIBUTING.md for our contribution guidelines and CODE_OF_CONDUCT.md for our community standards.
Security
Security is a top priority. Please refer to our SECURITY.md for reporting vulnerabilities.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Roadmap
Maintainers