← Back to Privacy
Pinogrammer — Privacy & Data Practices
Last updated: June 24, 2026
Core Principle: Local-First Grammar
Pinogrammer checks your writing entirely on your device using Chrome's built-in Gemini Nano AI model. No text you type is sent to any external server by default. Grammar suggestions, spelling corrections, and domain-aware feedback all run locally in your browser.
What Pinogrammer Accesses
- Text fields on web pages: Pinogrammer's content script monitors text inputs, textareas, and contenteditable elements to provide inline grammar checking. It reads the text you type after a brief pause (debounce) — never during active keystrokes.
- Language detection: Chrome's built-in Language Detector API identifies the language you're writing in. This happens entirely on-device.
- Extension storage: Your preferences (enabled/disabled state, domain profile, disabled sites, BYOK API keys) are stored in
chrome.storage.local — never transmitted externally.
How Grammar Checking Works
Pinogrammer uses a multi-layer approach depending on the language detected:
- English & major European languages: Processed directly by Gemini Nano on your device. Zero network calls.
- Tamil, Hindi, Arabic, Japanese, Korean & 30+ more: Translated to English via Chrome's built-in Translator API (on-device), checked by Nano, then translated back. Still zero network calls.
- Cloud AI (optional, BYOK only): If you add your own API key (OpenAI, Anthropic, or Azure), tone analysis and advanced rewrites can be sent to your configured provider. This only happens when you explicitly enable it.
BYOK (Bring Your Own Key)
You may optionally provide an API key for a cloud LLM provider. When configured:
- Keys are stored in
chrome.storage.local only — never in page scripts or third-party frames.
- Text sent to your provider is processed through PII redaction (emails and phone numbers are masked) before transmission, if you enable that option.
- The current public launch is free-first. Any future Pro cloud-session limits will be published before paid checkout opens.
- You can clear or revoke your key at any time in the extension popup.
What We Never Do
- We never collect, store, or transmit the text you type to our servers.
- We never read password fields, hidden inputs, or file upload fields.
- We never inject scripts into login pages (
accounts.google.com) or payment pages (stripe.com).
- We never use analytics, tracking pixels, or telemetry of any kind.
- We never sell or share any data with third parties.
Domain Profiles
Pinogrammer supports domain-specific writing profiles (Legal, Academic, Medical, Business, Creative). These profiles modify the grammar checking prompts sent to the on-device AI model. Profile selection is stored locally and never transmitted.
Feedback & Learning
When you accept or reject a grammar suggestion, Pinogrammer stores a lightweight feedback event locally (event type, timestamp — no text content). This helps improve future suggestion ranking on your device. Feedback data never leaves your browser.
Sign-in & Google OAuth
Signing in is optional and only required to activate a Pro subscription. Pinogrammer's core grammar checking works entirely without an account.
When you choose to sign in:
- Pinogrammer uses
chrome.identity.launchWebAuthFlow to redirect you to Google's sign-in page. Your Google credentials are entered directly on Google's servers — Pinogrammer never sees your password.
- Google returns an OAuth token scoped to
openid, email, and profile. This token is used to verify your subscription entitlement against PencilCard's Firebase backend — nothing else.
- Your email address and display name are displayed in the extension popup so you know which account is connected. They are stored in
chrome.storage.local only and are never transmitted to third parties.
- Your writing, grammar suggestions, and domain profiles are completely separate from your account — they remain on-device and are never linked to your identity.
- You can sign out at any time in the extension popup. Signing out clears the local token and account details immediately.
Entitlements & Subscriptions
The free tier requires no account and has no usage limits on local grammar checking. When a Pro plan is active, entitlement is verified by checking your Firebase UID against PencilCard's Firestore — no text, writing history, or grammar results are included in this check. No payment credentials are stored in the extension.
Permissions Explained
- activeTab: Read the current tab's URL to show per-site enable/disable status.
- contextMenus: "Check writing with Pinogrammer" right-click menu item.
- storage: Persist your preferences and BYOK keys locally.
- scripting: Inject the grammar checking content script into web pages.
- host_permissions (all URLs): Required to monitor text fields on any website for inline grammar checking.