{"slug": "show-hn-gemtype-an-open-source-grammarly-alternative-chrome-extension", "title": "Show HN: Gemtype – an open source Grammarly alternative Chrome extension", "summary": "Gemtype, an open-source Chrome extension, offers live grammar and spelling checking, sentence verification, and rewrite features using Google's Gemini API with a bring-your-own-key model, providing a free and private alternative to Grammarly.", "body_md": "**Live grammar and spelling checking**— underlines appear in any text field about a second after you stop typing: Gmail, LinkedIn, X, Reddit, GitHub, anywhere** One-click fixes**— click an underline and accept the correction;`Ctrl/Cmd+Z`\n\nalways undoes**Sentence verification**— after every accepted fix, the surrounding sentence is automatically re-checked, so word-level fixes never leave broken sentences behind**Rewrite on demand**— select text for a floating toolbar with*Improve, Fix, Shorten, Formal,*and*Casual*actions, also available from the right-click menu**Context-aware suggestions**— an LLM judges whole sentences in any language, not just pattern rules** Bring your own key**— uses your free[Google AI Studio](https://aistudio.google.com/apikey)key; no account, no subscription, no middleman server**Private by design**— text goes only to Google's Gemini API; no tracking, no analytics, nothing else phones home** Full control**— per-site disable, global toggle, model picker, language setting; honors`data-gramm=\"false\"`\n\nopt-outs\n\n| GemType | Grammarly | |\n|---|---|---|\n| Price | Free — bring your own Gemini key (\n|\n\n**What does \"bring your own key\" really cost?** For a single person typing,\nthe free Gemini tier is more than enough — GemType checks only after you\npause, skips unchanged text, and caches results, so even a heavy writing day\nstays comfortably inside the free quota. On the paid tier, a typical check\ncosts around $0.0003 — roughly one dollar per month for very heavy daily\nuse, compared with $144–360 per year for Premium.\n\nLive checking — underlines and issue-count badge |\nClick an underline, accept the fix |\nReview all suggestions from the badge |\nSelect text to rewrite: Improve, Fix, Shorten, Formal, Casual |\n\n** Install from the Chrome Web Store** — one click, then add your free Gemini API key from\n\n[Google AI Studio](https://aistudio.google.com/apikey).\n\n**Or install manually (developer mode)**\n\n**Manual (developer mode):**\n\n- Download or clone this repository\n- Open\n`chrome://extensions`\n\nand enable**Developer mode** - Click\n**Load unpacked** and select the`extension/`\n\nfolder - Get a free API key at\n[aistudio.google.com/apikey](https://aistudio.google.com/apikey)(no credit card required) - Open GemType\n**Settings** from the toolbar icon, paste the key, and click**Save & test**\n\n**Safari** — the same code base wraps into a Safari App Extension; see [Safari build](#safari) below.\n\n```\n             page (any website)\n┌──────────────────────────────────────────┐\n│  content script                          │\n│  ├─ detects textarea / contenteditable   │\n│  ├─ draws underline overlay (shadow DOM, │\n│  │   never touches the page's editor)    │\n│  └─ applies fixes via execCommand        │\n│      (native undo + framework-safe)      │\n└──────────────┬───────────────────────────┘\n               │ chrome.runtime messaging\n┌──────────────▼───────────────────────────┐\n│  background service worker               │\n│  ├─ queue + cache + 429 backoff          │\n│  └─ Gemini generateContent               │\n│      (structured JSON output)            │\n└──────────────┬───────────────────────────┘\n               ▼\n   generativelanguage.googleapis.com\n        (your API key, your data)\n```\n\n**Overlay, not injection**— underline positions come from`Range.getClientRects()`\n\n(rich editors) or a mirror element (plain fields); the page's DOM is never modified, so React, Vue, and ProseMirror editors stay stable**Snippet anchoring**— the model returns exact text snippets, located client-side and re-anchored live as you type (LLM character offsets are unreliable)**Token-frugal**— debounced checks, unchanged-text skipping, response caching, and sentence-scoped re-checks keep free-tier quota comfortable for daily use\n\n| Editor type | Status |\n|---|---|\nPlain `textarea` / `input` (GitHub, forums, most forms) |\nSupported |\n`contenteditable` rich editors (Gmail, LinkedIn, X) |\nSupported |\n| Shadow-DOM web components (Reddit) | Supported |\n| Google Docs (canvas rendering; requires a Google-whitelisted extension ID) | Not supported — use the right-click rewrite instead |\n\n- The text you are editing is sent\n**only** to`generativelanguage.googleapis.com`\n\n(Google's Gemini API) using your own key — see[PRIVACY.md](/riponcm/GemType/blob/main/PRIVACY.md) - Your API key lives in\n`chrome.storage.local`\n\non your device; it is never synced or transmitted anywhere else - Password fields are never read, and payment or one-time-code fields are skipped at the code level\n- No accounts, no telemetry, no third-party servers\n- Sites can opt out with\n`data-gemtype=\"false\"`\n\n; Grammarly-style opt-outs are honored as well\n\n```\nextension/              the Chrome extension (MV3, no build step)\n├── manifest.json\n└── src/\n    ├── background.js       Gemini API calls, cache, rate limiting\n    ├── content/\n    │   ├── content.js      field discovery + checking loop\n    │   ├── overlay.js      underlines, badge, suggestion card\n    │   ├── refine.js       selection rewrite toolbar\n    │   └── util.js         text extraction, offset maps, safe replacement\n    ├── options.html/js     API key, model, language, disabled sites\n    └── popup.html/js       global + per-site toggles\nassets/                 logo, hero animation, screenshots\ntest/\n├── test-page.html      manual test fields (incl. scroll + opt-out cases)\n└── harness.html        automated harness with a mocked Gemini backend\nsafari/                 Xcode wrapper project (generated)\n# run the mock harness (no API key needed)\npython3 -m http.server 8377\nopen http://localhost:8377/test/harness.html\n```\n\n**Safari build** (requires Xcode):\n\n```\nxcrun safari-web-extension-converter extension --project-location safari --app-name GemType --macos-only\nxcodebuild -project safari/GemType/GemType.xcodeproj -scheme GemType -configuration Debug build\n```\n\nThen in Safari: Settings → Developer → **Allow unsigned extensions** → enable GemType.\n\n-\n**Chrome Web Store release**—[live now](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh) - Hosted key option (proxy backend) — zero setup for end users\n- Tone and style preferences per site\n- Safari App Store release (build ready; needs Apple Developer membership —\n[sponsor](#sponsor-this-project)) - Firefox port\n- iOS / Android keyboards sharing the same backend\n\nGemType sends the text you are actively editing to Google's Gemini API for analysis. Do not use it in fields containing passwords, secrets, or text you are not comfortable processing with a cloud AI service — or disable it for those sites with one click.\n\n**Is GemType a free alternative to Grammarly?**\nYes. GemType provides live grammar checking, one-click fixes, and AI rewrites\non any website at no cost — you supply your own free Gemini API key from\nGoogle AI Studio. There is no subscription and no premium tier.\n\n**Is the Gemini API key really free? Do I need a credit card?**\nGoogle AI Studio issues free API keys with no credit card required. The free\nquota is far more than one person needs for everyday typing; GemType is built\nto stay inside it (debounced checks, caching, sentence-scoped re-checks).\n\n**Is GemType safe? Where does my text go?**\nThe text you edit is sent directly from your browser to Google's Gemini API,\nauthenticated with your own key. There is no GemType server, no account, and\nno analytics — the developers never see your text. Password, payment, and\none-time-code fields are never read. See [PRIVACY.md](/riponcm/GemType/blob/main/PRIVACY.md).\n\n**Which websites does it work on?**\nAny site with a normal text field or rich editor: Gmail, LinkedIn, X\n(Twitter), Reddit, GitHub, forums, web mail, CMS editors. Google Docs is the\none notable exception, because it renders documents to a canvas and restricts\nits annotation API to Google-whitelisted vendors.\n\n**Does it work in languages other than English?**\nYes. GemType auto-detects the language you are writing in and checks it with\nthe same model — Spanish, French, German, Portuguese, Bengali, Hindi, Arabic,\nChinese, Japanese, and anything else Gemini understands. You can also pin a\nlanguage in settings.\n\n**How is this different from pasting my text into ChatGPT or Gemini?**\nGemType works where you type: mistakes are underlined in place while you\nwrite, fixes apply with one click and native undo, and each fix triggers an\nautomatic re-check of the sentence. No copy-paste round trips.\n\n**Does it slow down my browser?**\nNo. The content script stays inert until you focus a text field, checks only\nafter you pause typing, and draws its UI on a lightweight overlay without\ntouching the page's own editor.\n\n**Can it run fully offline or with a local model?**\nNot yet. A pluggable backend (including self-hosted models) is on the\nroadmap.\n\nContributions are welcome — this project went from an empty folder to a working extension in a day, and there is plenty of interesting work left:\n\n- Firefox port (WebExtension API is nearly identical)\n- Compatibility fixes for stubborn editors (report a site, ideally with a\nreduced test case in\n`test/test-page.html`\n\n) - Translations for the UI\n- The proxy backend for a zero-setup hosted mode\n\nOpen an issue to discuss anything bigger before you build it. If GemType helped you, starring the repository genuinely helps others find it.\n\nGemType is free, open source, and unfunded. The Safari version is built and\nworking — but shipping it to the App Store requires the **Apple Developer\nProgram fee of $99/year**, which is currently the only thing standing between\nthis project and Safari users (and, later, the iOS keyboard).\n\nIf you or your company find GemType useful, consider sponsoring:\n** github.com/sponsors/riponcm** — the\nfirst goal is exactly one thing: the Apple Developer fee. Every sponsor is\ncredited in this README.\n\n[Apache License 2.0](/riponcm/GemType/blob/main/LICENSE) © 2026 Ripon Chandra Malo (Matily). See [NOTICE](/riponcm/GemType/blob/main/NOTICE).\n\nThe GemType name and logo are trademarks and are **not** covered by the Apache\nlicense — see [TRADEMARK.md](/riponcm/GemType/blob/main/TRADEMARK.md). Please give forks their own name and icon.\n\nAnother open source product from **Matily** — open source software studio.", "url": "https://wpnews.pro/news/show-hn-gemtype-an-open-source-grammarly-alternative-chrome-extension", "canonical_source": "https://github.com/riponcm/GemType", "published_at": "2026-07-09 20:41:11+00:00", "updated_at": "2026-07-09 21:07:22.570812+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-tools", "developer-tools"], "entities": ["Gemtype", "Grammarly", "Google", "Gemini", "Chrome Web Store", "Google AI Studio"], "alternates": {"html": "https://wpnews.pro/news/show-hn-gemtype-an-open-source-grammarly-alternative-chrome-extension", "markdown": "https://wpnews.pro/news/show-hn-gemtype-an-open-source-grammarly-alternative-chrome-extension.md", "text": "https://wpnews.pro/news/show-hn-gemtype-an-open-source-grammarly-alternative-chrome-extension.txt", "jsonld": "https://wpnews.pro/news/show-hn-gemtype-an-open-source-grammarly-alternative-chrome-extension.jsonld"}}