Privacy Policy
Last updated · May 6, 2026
Short version: we collect the minimum needed to run the product — a GitHub OAuth identity so generation works, an aggregate run record for quality work, and subscription state from our payment provider. That’s it.
What we collect
- Your GitHub identity — when you sign in, GitHub sends us your numeric ID, login, public profile name, avatar URL, and email if you’ve granted that scope. We store these in our database to know who you are across sessions.
- A GitHub OAuth access token — issued by GitHub when you sign in, used server-side to fetch the repos you ask us to read. Stored in our database, never exposed to the browser, never logged. You can revoke it any time from your GitHub settings, which signs you out and stops our access.
- Subscription state — when you buy Pro, our payment provider (Lemon Squeezy) sends us a webhook with the subscription status, variant, and renewal/end date. We store that against your account so we know what to unlock. Lemon Squeezy holds the actual billing data — see their privacy policy.
- Anonymous output telemetry — when a generation completes we record an aggregate row: repo size, file count, output format, line count, prompt version, model, tier (free/pro), and your user id (so we can show you your own history later). Public-repo runs include the public URL; private and local-folder runs are reduced to a one-way hash so we can’t reverse-engineer which repository it was.
What we don’t collect
- Your Anthropic API key — we run inference on our own Anthropic key, server-side. We never ask for yours.
- Your GitHub password — sign-in is OAuth; we never see it.
- Personal Access Tokens — the OAuth token issued at sign-in covers public and private repos, so we never ask you to paste a PAT.
- Your repo contents long-term — the curated slice we send to Anthropic to generate your rules file is not retained beyond the request itself. The output text is stored alongside the run row so you can come back to it.
- Tracking cookies or third-party analytics pixels. Auth.js sets a session cookie for you to stay signed in; that’s the only cookie we use.
Where your data goes
- Anthropic — your repo slice and prompt are sent to Anthropic’s API on our key for the duration of the request. Their data handling governs that relationship.
- GitHub — sign-in goes through GitHub OAuth; repo fetches use the access token they issued us. Public repos are accessed the same way.
- Lemon Squeezy — handles all payments, refunds, and subscription state. We receive only webhook updates about your subscription status.
- Vercel — hosts the app and runs request logs.
- Neon Postgres — hosts users, OAuth tokens, subscriptions, and run telemetry.
- Upstash Redis — holds rate-limit counters keyed on your user id. Counts only, no content.
Server logs
Our hosting provider (Vercel) records request-level logs (IP address, timestamp, route, status code) to operate the service. These are retained per Vercel’s default and accessible only to administrators.
Local browser storage
We use localStorage for small UI preferences only — e.g. odoylerules:formats remembers which output formats you’ve selected as a Pro user. No credentials, no tokens, no PII. Clearing site data deletes all of it.
Children
The service is not intended for users under 18. We do not knowingly collect data from minors.
Your rights
Email hello@odoylerules.ai from the GitHub-associated email and we’ll delete your account, OAuth token, subscription record, and runs. You can also revoke our GitHub OAuth grant directly in your GitHub settings, which immediately stops our repo access; the account record stays until you ask us to delete it.
Changes
We may update this policy. The “Last updated” date at the top reflects the current version. Material changes will be summarized on the homepage for at least a week.
Contact
Privacy questions: hello@odoylerules.ai.