This Chrome extension provides real‑time grammar checking for Thai, English, and Japanese without using AI. It includes a popup UI for quick toggles and an options page for detailed configuration.
grammar-checker-extension/
├─ src/
│ ├─ background.js # Service worker
│ ├─ content.js # Content script
│ ├─ popup.html
│ ├─ popup.js
│ ├─ options.html
│ └─ options.js
├─ dist/ # Build output (generated by Vite)
├─ icons/ # Extension icons
├─ manifest.json
├─ package.json # Build scripts
└─ README.md
- Node.js (>=18)
- npm (comes with Node)
npm installRun a Vite dev server that watches the src folder and outputs to dist:
npm run devOpen chrome://extensions/, enable Developer mode, and click Load unpacked → select the dist folder generated by Vite.
npm run buildThe dist folder will contain the compiled extension ready for publishing.
- Click the extension icon to open the popup.
- Toggle the extension on/off, choose correction mode (inline or clipboard), and select performance mode.
- Right‑click any text field → Check Grammar to run a manual check.
- Open the Options page (via the gear icon in the popup) to configure:
- Enable/disable the extension globally
- Select languages to check (Thai, English, Japanese)
- Choose correction mode
- Adjust debounce delay for live checking
Settings are persisted with chrome.storage.sync.
The extension requests the following permissions:
storage– Store user settings locallyactiveTab– Check grammar in the current active taboffscreen– Service worker operations (Chrome Manifest V3)clipboardWrite– Write corrected text to the clipboardcontextMenus– Add the Check Grammar menu itemhost_permissions: <all_urls>– Work on any website (Gmail, Google Docs, etc.)
Privacy Note: All permissions are used for local processing only. See PRIVACY.md for details.
🔒 Your data never leaves your device (unless you explicitly enable optional LanguageTool integration)
- ✅ All grammar checking is performed locally on your device
- ✅ No tracking, no analytics, no telemetry
- ✅ No external servers - we don't have any!
- ✅ Settings stored locally using Chrome storage API
- ✅ Optional LanguageTool API integration (disabled by default, requires your own API key)
For full details, see our Privacy Policy.
- Fork the repository.
- Create a feature branch.
- Make changes in the
srcfolder. - Run
npm run devto test locally. - Submit a pull request.
MIT © 2025 Naphatsadon4596