Privacy Policy

How Gramext handles data in practice

This page is written for real product evaluation: what is collected, how it's processed, where it lives, how long it's kept, and what you can control yourself.

Last updated September 17, 2026

Information we collect

  • Depending on how you sign in, we receive your email address plus, from Google or Microsoft, your name and (Google only) profile photo. If you create an account with an email and password instead, we store your email, your chosen display name, and a securely hashed version of your password — we never store your actual password.
  • The text you select or extract from a screenshot when you run an action, any custom prompt you write for a custom action, and the AI-generated output.
  • Basic usage details for each action you run — which action and AI model you used, and how many tokens/credits it cost — kept separately from the text itself so it survives even if you don't save history.
  • If you contact support, the subject and message content of your support tickets.
  • If you subscribe or buy credits, billing metadata such as your plan, purchase amount, and currency. We never receive or store your card number — Stripe collects that directly.

Text selection and screenshots

  • When you trigger an action on selected text, Gramext reads it through the operating system's accessibility features, or, when that isn't available, by briefly performing the same copy your Ctrl+C shortcut would and immediately restoring whatever was previously on your clipboard. This only happens at the moment you trigger an action — never continuously in the background.
  • Screenshots you capture for text extraction are processed by an offline OCR engine that runs entirely on your device. The image itself is never saved to disk or sent anywhere; only the extracted text is used, and only for the action you choose to run on it.
  • To avoid interfering with certain apps (like File Explorer or a terminal window), Gramext briefly checks the name of the app you're using at the moment you trigger it. That name is used only to make that decision and is never stored, logged, or sent anywhere, including to the AI provider.
  • A background listener detects when you've finished dragging a text selection by tracking mouse click position and timing only — it does not record keystrokes or any other input.

How AI actions work

  • The distributed desktop app never talks to OpenAI directly and never embeds an OpenAI key. Every action request goes through Gramext's own servers, which enforce your plan's credits and limits, then call OpenAI on your behalf using a key that stays on our servers.
  • What's sent to OpenAI for each request: the resolved instructions for the action (including your own wording, if it's a custom action), the text you selected or typed, and the model name. No screenshot image is ever sent to OpenAI — text extraction happens locally first, as described above.
  • Custom actions you create are saved to your account — locally, and, when you're signed in with cloud sync, on our servers too — so they stay available across your devices, visible only to you and never to other users. Their prompt is sent to OpenAI each time you use that action.
  • To save you credits, non-custom responses may be served from a response cache tied to your account, the exact input text, and the chosen action/model — no one else's device can ever read your cached responses. Turn on "Always generate fresh responses" in Settings to skip this cache.
  • Files or images an action generates (for example, through our image-generation model) are sent back to your device for you to save wherever you choose; we don't keep a copy on our servers. Unlike the rest of a generation, the file itself isn't saved to your Action History either — download it from the actions popup before closing it, since the file is lost once the popup closes. The input text that produced it is still saved to your history as usual.

Where your data is stored

  • On your device: your settings, custom actions, and — unless you turn off "Save history" — your generation history are cached in a local app database. On Windows (the platform Gramext currently ships for), cached selected text and AI responses in this local database are further protected using Windows' built-in per-account data protection.
  • In your account: to support cross-device sync, membership, and billing, the same categories of data are also stored in our server-side database. When field-level encryption is configured on our servers, saved history text and certain billing fields (like a saved payment method's label) are encrypted at rest using AES-256-GCM with a unique initialization vector for every entry, so no two encrypted values are ever identical even when the underlying text is.
  • Your browser's local storage is used only to cache your membership/plan status, so pages load instantly — never your history or generated content.
  • Staying signed in to the hosted web app relies on one strictly necessary, HttpOnly session cookie that page scripts can't read and that isn't used for tracking.

Data retention

  • Cloud-synced generation history is kept for a window based on your plan — 1 month on Free, 6 months on Starter, or 12 months on Pro. Once that window passes, it's hidden from your History page immediately and permanently deleted from our servers within a further 30 days. History cached only on your device isn't aged out automatically; it stays until you delete it or clear the app's local data.
  • We separately keep a lightweight usage record — which action and model you used, and its token/credit cost, but never the text itself — for the same plan-based window, for billing accuracy. This record isn't affected by turning off "Save history" or deleting specific history entries, since it's kept apart from your saved history.
  • Turning off "Save history" in Settings stops new generations from being cached or saved, and stops previously cached responses from being reused.

Your privacy controls

  • Save history (Settings → Workspace defaults): turn this off to stop new generations from being cached or saved to your history.
  • Always generate fresh responses (Settings → Workspace defaults): skip your cached responses entirely and always call OpenAI again.
  • History page: delete any single entry, or a bulk selection, at any time — deleting a synced entry also removes it from your other signed-in devices.
  • Danger zone (Settings): permanently delete your account and its data, described in full below.

Account deletion

  • Deleting your account from Settings → Danger zone deactivates it immediately — blocking access, signing out every desktop device connected to it, and cancelling any active subscription.
  • Your history, settings, custom actions, membership/credit records, and support tickets are kept for 30 days in case you change your mind — use "Undo deletion" in that window to restore everything — then permanently removed.
  • An admin can also deactivate an account this way, for example in response to a support request. The same 30-day window applies, though you'll need to contact support to restore an admin-deactivated account.
  • After that window, we keep only minimal transaction records (plan, amount, currency, and timestamps — never your card details) for our own accounting; they're no longer tied to an active account.

Account access and devices

  • You can sign in with Google, with Microsoft (when enabled), or with an email and password. Password sign-in requires verifying your email first, and your password is hashed with Argon2 before being stored — we never store or can see your actual password.
  • Each plan allows a limited number of connected desktop app installs at once (1 on Free, 2 on Starter, 4 on Pro). Signing in on a new device beyond that limit automatically signs out whichever connected device has been idle the longest. This "device" is a random identifier your install generates the first time you sign in, not anything derived from your hardware.
  • Separately, each synced history entry is tagged with a human-readable device label (your computer's hostname plus your OS's own machine identifier) so you can tell which device generated it when reviewing synced history. This is only a display label, not used to enforce device limits or for any other tracking.

Cookies and local storage

  • The hosted web app sets exactly one cookie: a signed, HttpOnly session cookie that keeps you signed in. It can't be read by page scripts and isn't used for advertising or tracking.
  • We don't use analytics, advertising, or tracking cookies or scripts of any kind.
  • Your browser's local storage caches your membership/plan status for faster page loads. This stays on your device and is only sent back to our servers when your browser needs to refresh it.

Third-party service providers

  • Google and Microsoft — sign-in, when you choose to use them.
  • OpenAI — generates the output for every AI action, as described above.
  • Stripe — processes all payments; we send only your email address to create a billing record, and Stripe never shares your card details with us.
  • Resend — sends transactional account emails only (email verification, password reset). We don't send marketing or newsletter emails.
  • GitHub — the desktop app checks a public GitHub repository for update availability and download links; this is a public, unauthenticated request that includes no personal information.
  • These providers are based in the United States, so information may be processed there.

Security and your responsibility

  • All traffic between the desktop app, the hosted web app, and our servers is encrypted in transit using TLS (HTTPS).
  • Passwords are hashed with Argon2 and never stored or logged in plain text. Email-verification and password-reset links are stored only as hashes, so they can't be reused even from a raw database copy.
  • Your saved history is only ever retrieved through your own authenticated account — every request is scoped to your account alone.
  • Gramext staff, including support and administrators, have no interface to view your custom action prompts or saved history content — support tools only surface account-level information (plan, email, activity timestamps), never your generated text.
  • Gramext doesn't log keystrokes. The background listener used to detect text selection tracks only mouse click position and timing, never key presses or window contents.
  • We do not use end-to-end encryption for AI actions: generating a response requires our servers, and the underlying AI model, to briefly read your text in plain text to process your request — the same way any hosted AI feature works. If you have content our systems should never see, don't submit it through an action, and review sensitive material against your own organization's confidentiality requirements.

Children's privacy

  • Gramext is intended for professional and business use and isn't directed at children. We don't knowingly collect personal information from children under 13.

Changes to this policy

  • We'll update this page whenever our data practices change meaningfully, and update the "Last updated" date above.
  • Questions about this policy or your data? Reach us at support@gramext.com.
Gramext
Gramext
Select text. Get instant AI help.

Built for fast writing support across desktop workflows, with a simple browser sign-in and workspace pages for history, settings, and membership.

© 2026 Gramext. All rights reserved.
Designed for quick, practical AI help where your text already lives.