
AnchorGPT (ChatGPT Pins)
Pin important assistant messages in ChatGPT so you can jump back to them later. A lightweight Chrome extension built with React 18 and Manifest V3.
Features
- Pin/unpin any assistant message in ChatGPT with a small π button
- Quick-jump sidebar: hover the right edge to reveal your pinned steps
- Click a pin to scroll to and briefly highlight the original message
- Pins are stored per chat and synced via chrome.storage.sync
- Safe Shadow DOM UI, no CSS bleed; zero external network requests
- Built on React 18 + Webpack 5; Manifest V3 compatible
How it works
- A content script injects a Shadow DOM app into ChatGPT pages and watches for new assistant messages.
- Each assistant message gets a π button; clicking it toggles a pin with id, label, and timestamp.
- Pins are saved under the current chat id (parsed from the URL) in chrome.storage.sync.
- A minimal sidebar appears when you move your mouse to the right edge; use it to navigate or clear pins for the current chat.
Prerequisites
- Node.js β₯ 16
- Yarn or npm
- Google Chrome (MV3-supported)
Setup
git clone <your-repo-url>
cd chatgpt-pins
yarn # or: npm installBuild
Create a production build into dist/:
yarn buildDevelopment (watch rebuilds)
Rebuild on file changes into dist/:
yarn devThen keep chrome://extensions open and click Reload on the extension after changes. (Manifest V3 does not auto-reload content scripts.)
Load in Chrome
- Open chrome://extensions
- Enable Developer mode (top-right)
- Click βLoad unpackedβ and select the dist/ folder
- Open ChatGPT and you should see small π buttons on assistant messages
Usage
- Click the π on any assistant message to pin/unpin it
- Hover the far right edge of the window to reveal the sidebar
- Click a pin to jump to the original message (it will briefly highlight)
- Use the βClearβ button in the sidebar to remove all pins for the current chat
Scripts
- yarn dev β watch and rebuild into dist/
- yarn build β production build into dist/
- yarn zip β package the current dist/ as extension.zip
Permissions & Privacy
- Permissions: storage only
- Data: Pins are stored in chrome.storage.sync under a single key; no external requests; no analytics
Privacy Policy
Effective date: 2025-08-09
AnchorGPT (ChatGPT Pins) is a client-side Chrome extension that helps you pin and quickly navigate to assistant messages in ChatGPT. We care about your privacy and designed this extension to operate without sending any data to external servers.
Information We Collect
The extension stores only the minimal data necessary to provide pinning and navigation features:
- Pinned item metadata (id, label, timestamp)
- Associated chat identifier (derived from the page URL) used as the storage key
How Your Data Is Stored
Pins are saved using chrome.storage.sync, which may sync across your Chrome profiles if you are signed in and sync is enabled. Data is stored locally by your browser and is not transmitted to any thirdβparty servers by this extension.
Data Sharing
We do not sell, rent, or share your data with third parties. The extension does not include analytics, tracking pixels, or external network requests.
Data Retention and Control
- You can remove individual pins or clear all pins for a chat from the sidebar.
- Uninstalling the extension will remove its stored data from your browser.
Childrenβs Privacy
AnchorGPT is intended for general audiences and does not knowingly collect personal information from children.
Changes to This Policy
We may update this policy to reflect improvements or legal requirements. Material changes will be reflected in the effective date above.
Contact
Questions or concerns? Contact us at hello@chethiya.me.
Compatibility
Chrome (MV3). Likely compatible with Edge/Brave/Arc. Firefox is not supported (MV3 differences).
Project structure
chatgpt-pins/
ββ public/
β ββ manifest.json # MV3 manifest (name: AnchorGPT)
ββ src/
β ββ content.jsx # Injects the app into ChatGPT pages
β ββ background.jsx # Service worker (MV3)
β ββ popup.{html,jsx} # Browser action popup
β ββ ui/ # Shadow DOM UI (Sidebar, Pins, etc.)
β ββ lib/ # DOM helpers, observer, storage, router, styles
ββ webpack*.js # Webpack base/dev/prod configs
ββ dist/ # Build output (load this in Chrome)Tech stack
- React 18, React DOM 18
- Webpack 5, Babel
- Manifest V3
License
ISC