https://github.com/chatenhancer/youtube-chat-qol
Suite of enhancements that make YouTube live chat easier to follow and participate in.
https://github.com/chatenhancer/youtube-chat-qol
chrome extension firefox live-chat translation youtube
Last synced: 12 days ago
JSON representation
Suite of enhancements that make YouTube live chat easier to follow and participate in.
- Host: GitHub
- URL: https://github.com/chatenhancer/youtube-chat-qol
- Owner: chatenhancer
- License: gpl-3.0
- Created: 2026-05-16T21:14:29.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-06T20:39:50.000Z (17 days ago)
- Last Synced: 2026-06-06T22:10:14.226Z (17 days ago)
- Topics: chrome, extension, firefox, live-chat, translation, youtube
- Language: TypeScript
- Homepage: https://www.chatenhancer.com
- Size: 161 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Chat Enhancer for YouTube
Suite of enhancements that make YouTube live chat easier to follow and participate in.
Not affiliated with YouTube or Google.
[Website](https://www.chatenhancer.com) · [Chrome Web Store](https://www.chatenhancer.com/chrome) · [Firefox Add-ons](https://www.chatenhancer.com/firefox)
## Features
###
Translation
- Translate live chat messages, with translation off by default.
- Choose whether translations replace the original message or appear below it.
- Translate the message you're typing before sending it, while keeping mentions and emojis intact.
###
Reply and context
- Mention or quote messages from YouTube's existing message menu.
- Click an author name to mention them.
- Alt/Option-click an author name to quote their message.
- Use Focus mode to keep one conversation visible while you reply.
- Recover unsent drafts after refreshing the same stream.
- Bookmark users with a colored avatar ring.
- Click an avatar to see that user's recent messages and open their channel.
###
Inbox
- Keep a local inbox for messages that mention your handle or match watched keywords/phrases.
- Highlight mentions and watched keywords in chat and in the inbox.
- Jump back to saved messages while they are still visible in chat.
- Optionally play a subtle sound and show tab alerts for new inbox messages.
###
Emoji and commands
- Reuse your most-used emojis from a local row in the emoji picker.
- Use Tab-expanded chat commands and autocomplete for mentions, quotes, time helpers, translations, inbox watches, and settings.
###
Popup and status
- See whether the extension is active in this tab or other open live chat tabs.
- Manage extension settings and clear local extension data from the popup.
- Opt in to Playground experiments. The current beta can connect users in the same stream for chess games.
###
Privacy
- The extension does not replace YouTube chat.
- The extension does not run analytics.
- Except for opt-in Playground games, the extension does not send data to an extension-owned server.
- Bookmarked users are stored locally so avatar rings can appear across streams.
- When a translation feature is enabled, incoming message text or draft text you choose to translate is sent to Google Translate so it can be translated.
## Screenshots

## Development
Install dependencies:
```sh
npm install
```
Build the extension:
```sh
npm run build
```
Load it in Chrome, Edge, Brave, Vivaldi, Arc, or another Chromium browser:
1. Open `chrome://extensions`.
2. Enable Developer mode.
3. Click `Load unpacked`.
4. Select `dist/extension-chrome`.
After source changes, run `npm run build` again and reload the unpacked extension.
For Firefox 140+ development, build the Firefox package and load `dist/extension-firefox` from `about:debugging#/runtime/this-firefox`:
```sh
npm run build:firefox
```
## Scripts
- `npm run typecheck` checks TypeScript.
- `npm run lint` runs ESLint.
- `npm run check` runs typecheck and lint.
- `npm run test` runs the Vitest unit tests.
- `npm run verify` runs `check`, unit tests, the full extension build, localized docs build, mock browser tests, and logged-out live browser smoke tests.
- `npm run docs:build` regenerates the ignored `dist/docs` Pages output when docs change.
- `npm run docs:screenshots` regenerates README/site showcase images and localized store screenshots when needed.
- `npm run build` writes Chrome, Edge, and Firefox unpacked extension folders.
- `npm run build:chrome`, `npm run build:edge`, and `npm run build:firefox` write one browser's unpacked extension folder.
- `npm run zip` runs `verify`, then writes Chrome, Edge, Firefox, and tracked source release archives to `dist/release/`.
## Release
1. Update `version` in `package.json`.
2. Run `npm run verify`.
3. Commit the version bump and create a tag such as `v0.7.6`.
4. Push the commit and tag.
The release workflow builds Chrome, Edge, Firefox, and source archives, then attaches them to a GitHub Release.
Store submission only runs for exact `vX.Y.Z` tags that match the `package.json` version.
Store submission is automatic on tags when maintainer store credentials are configured. If store credentials are missing, the workflow still produces release zips and skips store submission.
## License
GPL-3.0-or-later. See [LICENSE](LICENSE).
Third-party icon and font notices are listed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
The `Chat Enhancer for YouTube` name, logo, and store listing assets are not licensed for use in a way that suggests an official release or endorsement.
## Project layout
- `src/content/` wires features into YouTube live chat.
- `src/features/` contains chat actions, drafts, commands, translation, emoji, focus mode, profile cards, inbox, and sound features.
- `src/youtube/` contains YouTube DOM adapters and selectors.
- `src/shared/` contains shared options, language data, state, and helpers.
- `src/background/` contains the translation bridge, toolbar status, active-chat keepalive, and Playground transport service worker modules.
- `src/popup/` contains the extension action popup.
- `cloudflare/` contains the language redirect and opt-in Playground backend workers.
- `scripts/` contains build, icon, and release packaging scripts.
See [PRIVACY.md](PRIVACY.md) for the current data-use disclosure.