ChatGPT interface extension with ambient backgrounds, glass effects, and privacy controls. Not affiliated with OpenAI.
Clone the repo OR download/extract the zip -> open chrome://extensions -> enable Developer mode -> click Load unpacked and select the project folder -> pin the extension.
- Built-in presets and an optional animated gradient
- Blur control - 0 to 150px
- Scaling - contain or cover
- Glass styles - Clear or Dimmed
- Light/Dark modes - auto or manual
- Quick settings - in-page panel
- Privacy mode - blur chat messages and history (hover to reveal)
- Hide upgrade prompts - remove upgrade buttons and banners
- Hide UI elements - toggle GPTs, Sora, Today's pulse, and more
- Animation controls - disable background or menu animations
- Auto-hide GPT-5 limit - hide limit popup after 5 minutes
- Local settings - stored in
storage.sync
- English and Spanish
- Popup strings use Chrome's extension locale.
- Content-script strings prefer the ChatGPT UI language, then fall back to the browser language.
- No network calls
- No analytics or telemetry
- Optional sync via
storage.sync
- Download or
git clonethis repository - Open Chrome and navigate to
chrome://extensions - Enable Developer mode (toggle in top right)
- Click Load unpacked and select the project folder
- Pin the extension icon for easy access
- Visit https://chatgpt.com
To create a clean, distributable ZIP file that contains only the extension assets needed for Chromium-based browsers:
-
Run the packaging script:
chmod +x package.sh ./package.sh
-
This generates a file named
Aether-vX.X.X.zip. -
The ZIP includes the runtime extension files only:
manifest.json, popup/background/content assets, CSS,_locales/,icons/,Aether/, andLICENSE. -
Repo-only files such as tests, scripts, lint configs, logs, and git metadata are intentionally excluded.
-
Users can install the ZIP by extracting it and loading the folder in Chrome (Developer Mode -> Load Unpacked).
Use the built-in Playwright audit to capture popup screenshots and run dynamic UI checks:
npm run ui:audit:popupTo make popup warnings fail the run, append:
npm run ui:audit:popup -- --fail-on-warningFor live ChatGPT checks (requires a loaded ChatGPT UI in the launched browser context):
npm run ui:auditArtifacts are written to .tmp/ui-audit/<timestamp>/:
report.json- run metadata, geometry checks, and warningspopup-*.png- popup states (tabs, search, dropdowns, sliders)chatgpt-*.png- quick-settings screenshots when available
- Extension popup - open full settings
- Quick settings - gear icon on ChatGPT pages
- Background presets - dropdown in settings
- Privacy Mode - blur chat content for privacy; hover to reveal
- Glass Style - Clear or Dimmed
- Settings sync across devices if Chrome sync is enabled
- Use Quick Settings for frequent changes
- Disable animations on older hardware
"permissions": ["storage"],
"content_scripts": [{
"matches": [
"https://chatgpt.com/*",
"https://chat.openai.com/*"
]}]- storage - remember your settings and preferences
- content script matches - run only on ChatGPT pages
No data leaves your machine. All processing is local.
- Manifest V3 - MV3 service worker + storage APIs (
manifest.json) - CSS-driven glass and blur -
backdrop-filter/filterin CSS; JS only toggles classes/vars - No page-script injection - DOM/CSS injection plus lightweight extension-side navigation hooks
- Centralized defaults - defaults in
background.js(popup caches/fallbacks) - Dual-layer background - layer swap/crossfade for smooth transitions
- Chromium-based browsers with MV3 (Chrome/Edge/Brave/Opera)
- Not tested on Firefox/Safari
- Glass effects require
backdrop-filtersupport - Known compatibility: Works in Perplexity Comet; does not work in ChatGPT Atlas Browser
Licensed under the MIT License.
See LICENSE file for details.