Scribble

Privacy Policy

Last updated: August 2026

Scribble is a small, independently run AI playground. This page explains what data the app touches, where it goes, and what choices you have. It's written in plain language rather than formal legalese — if you need something more formal for a commercial deployment, have a lawyer review it.

What's stored, and where

What happens when you send a message

Your message (and any attachment) is sent to Scribble's own Cloudflare Worker, which forwards it to whichever AI model provider you selected and streams the reply back. Depending on the model, that provider is xKiro, Mistral, Google Gemini, or OpenRouter for chat, Cloudflare Workers AI or xKiro for image generation and editing, and xKiro for text to speech. (A "Puter.js" model, if you pick one, is the exception — those requests go straight from your browser to Puter under its own sign-in and never touch Scribble's Worker.) The Worker doesn't write your conversations to a log or database of its own; it's a pass-through, and once a response finishes streaming it holds nothing.

The model provider you picked does receive your message content to generate a response, the same way it would through their own product. How long they retain it, and whether it's used to improve their models, is governed by that provider's own privacy policy, not this one — check theirs if that matters to you.

A few small helper calls also go out with a chat, all to Groq: the first message of a new chat is sent there to generate a short sidebar title, and — when web search or memory is active — the message is sent there for a quick yes/no classification of whether it needs a live lookup or a stored fact. This happens regardless of which model you picked for the conversation.

Web search

When automatic web search is on (it's a per-turn "search only if it would help" mode, on by default), a message the classifier decides needs current information is rewritten into a search query and sent to SerpApi, which runs the search and returns results that are folded into the model's context. Turns that don't need a lookup never reach SerpApi.

Approximate location

If you allow it (Scribble asks once, and you can change it anytime in Settings), each chat request includes a rough city-level location. It's estimated from your IP address via ipapi.co — never the browser's GPS, and never anything more precise than city / region / country. Your local date, time, and timezone are always sent, since reading the system clock reveals nothing sensitive. Decline, and no location is looked up or sent.

Memory

Memory is off by default. If you turn it on, Scribble will save short facts you ask it to remember (or that it judges worth keeping) and send them back as context in later chats. Those facts are stored with your account in the same Firebase database as your synced chats, and are cleared when you delete a memory, turn memory off, or delete your account.

Analytics

Scribble uses Google Analytics to see aggregate, non-identifying usage — page views, which modes get used, roughly where visitors are. It loads when a page opens and may set cookies or read local identifiers in your browser. Scribble never sends your chat content, messages, or account email to Google, and there are no ads or advertising trackers on the site. You can block the analytics script with a content blocker — Scribble still works with it blocked.

What Scribble doesn't do

Your choices

Children

Scribble isn't directed at children under 13 and isn't designed to collect data from them.

Changes

This page may be updated as the app changes. Meaningful changes will be reflected here with an updated date at the top.

Contact

Questions about this policy: hi@scribbleai.dev.

This is a template written for a small independent project, not formal legal advice. It describes the app's actual behavior as of the date above, based on its source code — if you self-host or fork Scribble, review and adjust it to match your own deployment before relying on it.