Skip to content

Whynotmetoo/enhance-gpt

Repository files navigation

EnhanceGPT icon

EnhanceGPT

React 19.0.0 Radix UI 1.3.2 / 1.2.8 npm >=10 Chrome Manifest V3

English · 简体中文 · Français · Español · 日本語 · Português

EnhanceGPT is a Chrome extension that adds native-feeling bulk chat management, reusable prompt snippets, and conversation outlines to the ChatGPT web app. It is implemented as a restrained augmentation layer, avoiding full-page modals, heavy surfaces, and layout-shifting DOM changes.

InstallDevelopmentFeature ShowcaseImplementation Notes

Key Features

  • Bulk-select conversations from the left sidebar for faster multi-chat workflows.
  • Archive or delete selected conversations from a focused bulk-action surface.
  • Save, edit, and reuse prompt snippets from a compact dropdown above the composer.
  • Generate a lightweight conversation outline in the right whitespace for quicker thread navigation.
  • Keep the experience native-feeling, lightweight, and unobtrusive.

Feature Showcase

Bulk Operation
Bulk conversation manager demo
Prompt Manager
Prompt manager demo
Conversation Outline
Conversation outline demo

Install

Install EnhanceGPT from your browser's extension store:

Requirements

  • Node.js 20 or newer
  • npm 10 or newer
  • Chrome or a Chromium-based browser with Manifest V3 support

Development

npm install

Build And Load In Chrome

npm run build

Then load the dist directory in Chrome:

  1. Open chrome://extensions.
  2. Enable Developer mode.
  3. Select "Load unpacked".
  4. Choose this repo's dist folder.

Project Structure

public/manifest.json        Manifest V3 extension manifest
src/content/                ChatGPT content script and injected UI
src/shared/                 Shared constants and prompt types
vite.content.config.ts      IIFE build for manifest content script

Implementation Notes

  • The content script is scoped to https://chatgpt.com/* and https://chat.openai.com/*.
  • Prompt snippets are stored in chrome.storage.local, with localStorage fallback for non-extension development contexts.
  • Bulk delete/archive buttons currently emit ecg:bulk-conversation-action browser events instead of calling private ChatGPT APIs. This keeps the first version safe until a stable, explicit native-action adapter is implemented.
  • CSS is prefixed with ecg- and loaded as a static content-script stylesheet.
  • Conversation outlines prefer ChatGPT's conversation JSON endpoint so long threads can be indexed before every message is mounted in the DOM.

Validation

npm run typecheck
npm run lint
npm run build

References