{"id":51873882,"url":"https://github.com/riponcm/gemtype","last_synced_at":"2026-07-25T04:01:07.528Z","repository":{"id":370626527,"uuid":"1287996949","full_name":"riponcm/GemType","owner":"riponcm","description":"Free, open-source Grammarly alternative for Chrome \u0026 Safari — AI grammar checker and text rewriter for any website, powered by your own free Google Gemini API key. No account, no tracking, no subscription.","archived":false,"fork":false,"pushed_at":"2026-07-17T20:04:32.000Z","size":1958,"stargazers_count":107,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-07-17T20:15:06.021Z","etag":null,"topics":["ai","ai-writing-assistant","browser-extension","chrome-extension","gemini","gemini-api","google-gemini","grammar-checker","grammarly-alternative","javascript","llm","manifest-v3","open-source","productivity","proofreading","safari-extension","spell-checker","text-rewriter","writing-assistant"],"latest_commit_sha":null,"homepage":"https://gemtype.matily.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riponcm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-03T07:22:37.000Z","updated_at":"2026-07-17T20:05:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/riponcm/GemType","commit_stats":null,"previous_names":["riponcm/gemtype"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/riponcm/GemType","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riponcm%2FGemType","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riponcm%2FGemType/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riponcm%2FGemType/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riponcm%2FGemType/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riponcm","download_url":"https://codeload.github.com/riponcm/GemType/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riponcm%2FGemType/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35864848,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-25T02:00:06.922Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-writing-assistant","browser-extension","chrome-extension","gemini","gemini-api","google-gemini","grammar-checker","grammarly-alternative","javascript","llm","manifest-v3","open-source","productivity","proofreading","safari-extension","spell-checker","text-rewriter","writing-assistant"],"created_at":"2026-07-25T04:01:06.624Z","updated_at":"2026-07-25T04:01:07.515Z","avatar_url":"https://github.com/riponcm.png","language":"JavaScript","funding_links":["https://github.com/sponsors/riponcm"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"assets/logo.svg\" alt=\"GemType\" width=\"420\" /\u003e\n\n**A free, open-source Grammarly alternative for your browser, Microsoft Word, and the whole desktop — powered by your own Gemini API key.**\n\n[![Chrome Web Store](https://img.shields.io/chrome-web-store/v/linnnamnhkciekgpnegkcajcafmjlhgh?label=Chrome%20Web%20Store\u0026logo=googlechrome\u0026logoColor=white\u0026color=4285F4)](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh)\n[![Users](https://img.shields.io/chrome-web-store/users/linnnamnhkciekgpnegkcajcafmjlhgh?color=10a37f)](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh)\n[![Rating](https://img.shields.io/chrome-web-store/rating/linnnamnhkciekgpnegkcajcafmjlhgh?color=f59e0b)](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh)\n[![Edge Add-ons](https://img.shields.io/badge/Edge%20Add--ons-Live-0C88DA?logo=microsoftedge\u0026logoColor=white)](https://microsoftedge.microsoft.com/addons/detail/edbehlnmfcjhlbdlnmklicdoaopobbel)\n[![Firefox Add-ons](https://img.shields.io/amo/v/gemtype-ai-writing-assistant?label=Firefox%20Add-ons\u0026logo=firefoxbrowser\u0026logoColor=white\u0026color=FF7139)](https://addons.mozilla.org/firefox/addon/gemtype-ai-writing-assistant/)\n[![Manifest V3](https://img.shields.io/badge/manifest-v3-6366f1)](extension/manifest.json)\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-D22128.svg)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](../../pulls)\n\n### [➜ Install free: Chrome](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh) · [Edge](https://microsoftedge.microsoft.com/addons/detail/edbehlnmfcjhlbdlnmklicdoaopobbel) · [Firefox](https://addons.mozilla.org/firefox/addon/gemtype-ai-writing-assistant/)\n\n**[gemtype.matily.org](https://gemtype.matily.org)** — the official site, with a live demo and everything in one place.\n\n\u003cimg src=\"assets/hero.svg\" alt=\"GemType demo: typing with mistakes, wavy underlines appear, one click fixes them\" width=\"820\" /\u003e\n\n\u003c/div\u003e\n\n---\n\n## Watch the tutorial\n\n[**▶ 2-minute tutorial on YouTube**](https://www.youtube.com/watch?v=j7Su-4hvigU) — install GemType, add your free Gemini key, and see grammar checking + rewrites in action.\n\n## Now available\n\nGemType runs everywhere you write — all surfaces share the same private,\nbring-your-own-key core (your text goes straight to Google's Gemini API, never\nthrough a server of ours):\n\n| Platform | Status |\n|---|---|\n| **Chrome** | [Live on the Chrome Web Store](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh) |\n| **Edge** | [Live on Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/edbehlnmfcjhlbdlnmklicdoaopobbel) |\n| **Firefox** | [Live on Firefox Add-ons](https://addons.mozilla.org/firefox/addon/gemtype-ai-writing-assistant/) |\n| **Microsoft Word** | Office task-pane add-in — see [`msword/`](msword/) |\n| **Desktop (macOS · Windows · Linux)** | Menu-bar/tray app — works in **any** application via a global hotkey. [Download the latest release](../../releases/latest) · see [`desktop/`](desktop/) |\n| **Safari** | Build ready (needs the Apple Developer fee — [sponsor](#sponsor-this-project)) |\n| **iOS / Android keyboards** | Planned |\n\nWorks in **any language** (auto-detected), on any website, inside Word, and now anywhere on your desktop.\n\n## Features\n\n- **Live grammar and spelling checking** — underlines appear in any text field about a second after you stop typing: Gmail, LinkedIn, X, Reddit, GitHub, anywhere\n- **One-click fixes** — click an underline and accept the correction; `Ctrl/Cmd+Z` always undoes\n- **Sentence verification** — after every accepted fix, the surrounding sentence is automatically re-checked, so word-level fixes never leave broken sentences behind\n- **Rewrite on demand** — select text for a floating toolbar with *Improve, Fix, Shorten, Formal,* and *Casual* actions, also available from the right-click menu\n- **Context-aware suggestions** — an LLM judges whole sentences in any language, not just pattern rules\n- **Bring your own key** — uses your free [Google AI Studio](https://aistudio.google.com/apikey) key; no account, no subscription, no middleman server\n- **Private by design** — text goes only to Google's Gemini API; no tracking, no analytics, nothing else phones home\n- **Full control** — per-site disable, global toggle, model picker, language setting; honors `data-gramm=\"false\"` opt-outs\n\n## Comparison with Grammarly\n\n| | GemType | Grammarly |\n|---|---|---|\n| Price | Free — bring your own Gemini key ([free tier](https://aistudio.google.com/apikey), no card required) | Free plan is limited; Premium $12–30 per month |\n| Grammar and spelling fixes | Unlimited | Full corrections require Premium |\n| Sentence re-check after each accepted fix | Automatic | Not available |\n| AI rewrites (Improve, Shorten) | Included | Premium |\n| Preset styles (Formal, Casual) | Included | Premium |\n| Languages | Any language Gemini understands, auto-detected | English and a small set of variants |\n| Trackers and analytics | None | Product analytics and telemetry |\n| Account required | No | Yes |\n| Where your text is processed | Google's Gemini API only, with your key — no middleman server | Grammarly's servers |\n| Open source | Yes (Apache 2.0) | No |\n| Google Docs | Not supported (Google whitelists specific vendors) | Supported |\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\n## Screenshots\n\n| | |\n|---|---|\n| ![Live checking with underlines and the issue-count badge](assets/screenshots/underlines.png) | ![Suggestion card with one-click Accept](assets/screenshots/card.png) |\n| *Live checking — underlines and issue-count badge* | *Click an underline, accept the fix* |\n| ![All suggestions in one panel](assets/screenshots/panel.png) | ![Rewrite toolbar on selected text](assets/screenshots/toolbar.png) |\n| *Review all suggestions from the badge* | *Select text to rewrite: Improve, Fix, Shorten, Formal, Casual* |\n\n## Install\n\n**[Install from the Chrome Web Store](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh)**, **[Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/edbehlnmfcjhlbdlnmklicdoaopobbel)**, or **[Firefox Add-ons](https://addons.mozilla.org/firefox/addon/gemtype-ai-writing-assistant/)** — one click, then add your free Gemini API key from [Google AI Studio](https://aistudio.google.com/apikey).\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eOr install manually (developer mode)\u003c/b\u003e\u003c/summary\u003e\n\n**Manual (developer mode):**\n\n1. Download or clone this repository\n2. Open `chrome://extensions` and enable **Developer mode**\n3. Click **Load unpacked** and select the `extension/` folder\n4. Get a free API key at [aistudio.google.com/apikey](https://aistudio.google.com/apikey) (no credit card required)\n5. Open GemType **Settings** from the toolbar icon, paste the key, and click **Save \u0026 test**\n\n\u003c/details\u003e\n\n**Firefox** — [install from Firefox Add-ons](https://addons.mozilla.org/firefox/addon/gemtype-ai-writing-assistant/). Same code base via `extension/manifest.firefox.json` (event-page background + `browser.*` compatibility); build steps under [Development](#development).\n\n**Microsoft Word** — a task-pane add-in that checks your document and rewrites selected text right inside Word (Windows, Mac, and the web). See [`msword/`](msword/) and its [README](msword/README.md) to run or install it.\n\n**Desktop app (macOS · Windows · Linux)** — a menu-bar/tray app that works in **every application**, not just the browser. Select text anywhere — Word, Slack, Outlook, an editor, an email — press the global hotkey (**⌘⇧G** on Mac, **Ctrl+Shift+G** on Windows/Linux), and GemType fixes or rewrites it and pastes the result back in place.\n\n\u003e **[⬇ Download the latest release](../../releases/latest)** — macOS (`.dmg`), Windows (`.exe` installer), and Linux (`.AppImage`).\n\n- **macOS**: open the `.dmg`, drag GemType to Applications. First hotkey press asks for **Accessibility** permission (System Settings → Privacy \u0026 Security → Accessibility) — that's what lets it send copy/paste, the same as Grammarly Desktop and Raycast.\n- **Windows**: run the installer; unsigned builds show a SmartScreen notice (**More info → Run anyway**).\n- **Linux**: `chmod +x GemType-*.AppImage` and run it.\n\nUnsigned for now (code-signing certificates cost money — see [sponsor](#sponsor-this-project)). Source and build steps are in [`desktop/`](desktop/).\n\n**Safari** — the same code base wraps into a Safari App Extension; see [Safari build](#safari) below.\n\n## How it works\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()` (rich editors) or a mirror element (plain fields); the page's DOM is never modified, so React, Vue, and ProseMirror editors stay stable\n- **Snippet anchoring** — the model returns exact text snippets, located client-side and re-anchored live as you type (LLM character offsets are unreliable)\n- **Token-frugal** — debounced checks, unchanged-text skipping, response caching, and sentence-scoped re-checks keep free-tier quota comfortable for daily use\n\n## Site support\n\n| Editor type | Status |\n|---|---|\n| Plain `textarea` / `input` (GitHub, forums, most forms) | Supported |\n| `contenteditable` rich editors (Gmail, LinkedIn, X) | Supported |\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## Privacy\n\n- The text you are editing is sent **only** to `generativelanguage.googleapis.com` (Google's Gemini API) using your own key — see [PRIVACY.md](PRIVACY.md)\n- Your API key lives in `chrome.storage.local` on your device; it is never synced or transmitted anywhere else\n- 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 `data-gemtype=\"false\"`; Grammarly-style opt-outs are honored as well\n\n## Project structure\n\n```\nextension/              the browser extension (MV3, no build step) — Chrome, Edge, Firefox\n├── manifest.json           Chrome / Edge manifest\n├── manifest.firefox.json   Firefox (AMO) manifest — event-page background + gecko id\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\nmsword/                 the Microsoft Word add-in (Office.js task pane)\n├── manifest.xml            Office add-in manifest\n└── src/taskpane/          task pane UI + Office.js integration + Gemini calls\ndesktop/                the menu-bar/tray app (Electron) — macOS, Windows, Linux\n├── main.js                tray, global hotkey, clipboard capture, paste-back\n├── gemini.js              Gemini API calls (Node; unit-tested)\n├── popup.html             result overlay (Replace / Copy / rewrite chips)\n└── settings.html          API key, model, language, About\nbrand/                  icon source vectors + generate.sh (all surface icons)\nsafari/                 Xcode wrapper project (generated)\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\n```\n\n## Development\n\n```bash\n# run the mock harness (no API key needed)\npython3 -m http.server 8377\nopen http://localhost:8377/test/harness.html\n```\n\n**Firefox** — load `extension/` with `manifest.firefox.json` via `about:debugging` → **Load Temporary Add-on**. The code auto-aliases Firefox's promise-based `browser.*` to `chrome.*`, so one codebase runs in both.\n\n**Microsoft Word add-in** — see [`msword/README.md`](msword/README.md): `npm install \u0026\u0026 npm run certs \u0026\u0026 npm start`, then sideload `msword/manifest.xml` into Word.\n\n\u003ca name=\"safari\"\u003e\u003c/a\u003e**Safari build** (requires Xcode):\n\n```bash\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## Roadmap\n\n- [x] **Chrome Web Store** — [live](https://chromewebstore.google.com/detail/linnnamnhkciekgpnegkcajcafmjlhgh)\n- [x] **Edge Add-ons** — [live](https://microsoftedge.microsoft.com/addons/detail/edbehlnmfcjhlbdlnmklicdoaopobbel)\n- [x] **Firefox (AMO)** — [live](https://addons.mozilla.org/firefox/addon/gemtype-ai-writing-assistant/)\n- [x] **Microsoft Word add-in** — working; AppSource submission in progress\n- [x] **Desktop app (macOS · Windows · Linux)** — menu-bar/tray app, works in any application via a global hotkey ([download](../../releases/latest))\n- [ ] Safari App Store (build ready; needs Apple Developer membership — [sponsor](#sponsor-this-project))\n- [ ] iOS / Android keyboards sharing the same backend\n- [ ] Hosted-key option (proxy backend) — zero setup for end users\n- [ ] Tone and style preferences per site\n\n## Responsible use\n\nGemType sends the text you are actively editing to Google's Gemini API for\nanalysis. Do not use it in fields containing passwords, secrets, or text you\nare not comfortable processing with a cloud AI service — or disable it for\nthose sites with one click.\n\n## Frequently asked questions\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](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\n## Contributing\n\nContributions are welcome — this project went from an empty folder to a\nworking extension in a day, and there is plenty of interesting work left:\n\n- Compatibility fixes for stubborn editors (report a site, ideally with a\n  reduced test case in `test/test-page.html`)\n- Translations for the UI\n- The Word add-in's native **annotation API** (inline squiggly underlines in Word)\n- The proxy backend for a zero-setup hosted mode\n- Help with the iOS / Android keyboards\n\nOpen an issue to discuss anything bigger before you build it. If GemType\nhelped you, starring the repository genuinely helps others find it.\n\n## Sponsor this project\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](https://github.com/sponsors/riponcm)** — the\nfirst goal is exactly one thing: the Apple Developer fee. Every sponsor is\ncredited in this README.\n\n## License\n\n[Apache License 2.0](LICENSE) © 2026 Ripon Chandra Malo (Matily). See [NOTICE](NOTICE).\n\nThe GemType name and logo are trademarks and are **not** covered by the Apache\nlicense — see [TRADEMARK.md](TRADEMARK.md). Please give forks their own name and icon.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nAnother open source product from \u003cb\u003eMatily\u003c/b\u003e — open source software studio.\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friponcm%2Fgemtype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friponcm%2Fgemtype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friponcm%2Fgemtype/lists"}