Privacy Policy
Peeksolve is offered in two modes. You decide which you use.
Two modes, two privacy models
- Free / BYO-Key mode (the default if you don’t sign in): you bring your own AI provider API key. Your data goes directly from your browser to the provider you chose. Peeksolve servers see nothing. This was the only mode in versions before May 2026 and is documented further down.
- Pro mode (signed-in, $6.49/month or a $2.50 Day Pass): your requests go through Peeksolve’s backend (
api.peeksolve.com) which uses our API key to call OpenRouter on your behalf. This mode requires an account and Stripe payment; we store some data to make it work.
What we store when you use Pro mode
The following lives in a SQLite database on our server in Switzerland:
- Your email address (used for sign-in, magic-link delivery, and Stripe billing)
- Your Stripe customer ID (linking your account to your subscription)
- Subscription status & period (when you renewed, when it expires, whether you cancelled)
- A per-user OpenRouter API key auto-provisioned with a monthly credit limit. This key is generated by us, used to call OpenRouter on your behalf, and is never shared with anyone else. It is rotated on cancellation.
- Usage logs per request: endpoint (text / image / mixed / summary / agentic), model used (Llama / Gemini / Claude), cost in USD, timestamp. We do not store the content of your prompts or responses unless you opt in to history (see below).
- Auth sessions: a 30-day JWT, the user agent of the device that signed in, and a revocation flag.
- Conversation history (opt-in only): if you turn on the “Save history” toggle in the extension popup or at peeksolve.com/history.html, we store up to the last 20 of your prompts and their AI-generated answers. Default is OFF — no history is stored unless you explicitly opt in. Screenshots are never stored; image-mode requests log only a “[Screenshot]” marker plus any typed text. You can delete individual entries or clear the whole list at any time from the history page.
This data is necessary to operate the subscription, enforce credit limits, and provide the service.
Third parties we share data with (Pro mode)
- Stripe (payment processor) — receives your email, billing address (if you provide one), payment method details (which we never see), and the fact that you subscribed to Peeksolve Pro. Stripe’s privacy policy applies.
- Resend (transactional email) — receives your email address to deliver magic-link sign-in emails. Resend’s privacy policy applies.
- OpenRouter (AI gateway) — receives the text or image you submit via Cmd+Shift+L/K, plus the contents of your selected AI model’s output. We send these requests using a per-user API key. OpenRouter’s privacy policy applies. OpenRouter in turn forwards the request to the LLM provider you select (Meta Llama, Google Gemini, Anthropic Claude); each has its own data-handling policy.
- Google (only if you sign in with Google OAuth) — receives a sign-in request and returns your basic profile (email, name, profile picture URL). We don’t request anything else.
- Cloudflare (network) — all traffic to
api.peeksolve.comandpeeksolve.compasses through Cloudflare. They see request metadata (IP, user-agent, URL) but not request body. Cloudflare’s privacy policy applies.
Your rights under DSGVO / GDPR
You can request:
- Access — a copy of all data we have on you. Email [email protected]; we’ll respond within 30 days.
- Correction — update your email or other stored info.
- Deletion — remove your account entirely. Note: per Swiss accounting law we must retain billing records (invoices, payment timestamps) for 10 years, so the email associated with billing records is kept anonymised after deletion.
- Portability — export of your data in JSON.
- Withdrawal of consent — cancel anytime via the Stripe customer portal accessible from
peeksolve.com/account.html.
What the extension stores locally (both modes)
The following lives in Chrome’s built-in storage.sync on your device (and, if Chrome Sync is enabled, on your own Google account’s sync storage):
- Your Peeksolve JWT (if signed in to Pro)
- Your cached email (display only)
- BYO-Key data: your chosen AI provider, the corresponding API key, and a flag indicating whether to use it instead of the backend
- Model preference for Pro mode
- UI preferences: theme, colors, font size, custom shortcuts, last box geometry
What gets sent over the network (Free / BYO-Key mode)
If you don’t sign in and use BYO mode, requests go directly from your browser to whichever provider you configured:
- Groq:
api.groq.com - OpenRouter:
openrouter.ai - Google Gemini:
generativelanguage.googleapis.com - Anthropic Claude:
api.anthropic.com - OpenAI:
api.openai.com
None of these requests pass through Peeksolve infrastructure.
What gets sent over the network (Pro mode)
When signed in to Pro, requests go from your browser to api.peeksolve.com (the Peeksolve backend), which forwards them to OpenRouter using your per-user API key. The backend logs metadata (endpoint, model, cost, timestamp) but does not persist prompt text or response content.
Update check
When you click “Check for Update” in the popup, the extension makes a single HTTPS request to https://peeksolve.com/version.json to read the latest published version number. No identifiers, cookies, fingerprints or query parameters that could identify you are sent — just a plain GET request that any browser could make to a public file.
No tracking, no analytics, no ads
We do not use any third-party analytics SDK, tracking pixels, advertising network, fingerprinting, or behavioural profiling. The extension source is inspectable in the unpacked ZIP you install.
Cookies
Peeksolve does not set cookies. We use localStorage on peeksolve.com to remember your JWT between page loads, which is technically required for the service to function (transactional storage, not tracking).
Extension permissions and why
activeTab— needed to capture the currently active tab when you press the shortcut.storage— needed to remember your JWT, API key, and UI preferences.scripting— needed to inject the floating box into the page.host_permissions: <all_urls>— needed so the floating box can appear on any website you use, and so the content script can bridge sign-in events from peeksolve.com to the extension.
Children
Peeksolve is not directed at children under 13 and we don’t knowingly create Pro accounts for them.
Changes
If we update this policy, we’ll update the “Last updated” date and (for substantive changes) email signed-in users.
Contact
Operator location: Switzerland.
Questions, deletion requests, or anything else: [email protected].