Privacy Policy Terms of Service
Legal

Privacy Policy

Effective 2026-07-13 · applies to the Fugal website and chat demo

The short version

No analytics, no ads, no trackers, nothing sold. Signed-out chats are stored only in your browser. Signed-in chats are stored in your account so they sync across your devices — only you can read them. In Answer mode your question goes to third-party language models to generate the reply (see §5); Route mode stays on our server. Your chats are never used for training unless you switch the opt-in on (it's off by default). You can export or delete everything from Settings.

1. Who we are

Fugal is an open-source research project demonstrating cost-aware LLM routing. The source code is public at github.com/jtdoherty/openfugu-v1. For any privacy question or request, open a GitHub issue.

2. What we collect

  • Account info — if you sign in, we receive your email and, from your OAuth provider (Google/GitHub), your name and avatar. That's the whole profile.
  • Chats (signed in) — your conversations are stored in our database so they follow you across devices. Access is enforced by row-level security: each account can only ever read or modify its own rows.
  • Chats (signed out) — stored only in your browser's local storage. Messages you send are processed transiently to produce the routing result or answer, but are not kept in any database.
  • Local preferences — theme, sidebar state, and similar settings stay in your browser's local storage.
  • Nothing else — no analytics scripts, no advertising or cross-site trackers, no fingerprinting. Ordinary short-lived server logs (IP, request path) may exist for debugging and abuse prevention, as on any web server.

3. How we use it

  • To run the service — authentication, syncing your chats, and showing you your own history.
  • To improve the router — only with your opt-in. In Settings → Data & privacy there is a toggle, "Help improve the router." It is off by default. Only if you turn it on may your chats be used to train the routing model. You can turn it off at any time.
  • We do not sell, rent, or share your data with advertisers — ever.

4. Cookies & storage

We use only strictly necessary storage: an authentication session token (so you stay signed in) and browser local storage for your chats and preferences. There are no advertising, analytics, or third-party tracking cookies, which is why you don't see a cookie consent banner. If we ever add non-essential cookies, we will ask first.

5. Who processes your data

  • Supabase — hosts authentication and the database that stores signed-in profiles and chats.
  • Your OAuth provider (Google or GitHub) — handles the sign-in itself under its own privacy policy; we only receive the basic profile described above.
  • Model providers (Answer mode only)Route mode never sends your message to any third party: the router runs on our own server. When you use Answer mode, your question and the recent messages in that chat are sent through OpenRouter (an API broker) to the language model chosen for your query. The models we currently use come from OpenAI, Anthropic, Google, Alibaba (Qwen), DeepSeek, Z.ai, Moonshot AI, Mistral, MiniMax, and Meta (Llama); a verifier and fallback model (DeepSeek and Qwen) may also see the exchange. These providers process your prompt under their own API terms; we send them no account information — only the message text needed to answer.

6. Your rights & controls

  • Export — download all of your chats as JSON from Settings → Danger zone.
  • Delete — delete your account and all synced data from Settings; deletion is immediate and permanent.
  • Opt out of training — the Settings toggle, off by default.
  • Ask — for access, correction, or anything this page doesn't cover, open a GitHub issue.

7. Retention

Signed-in chats and profile data are kept until you delete them (per-chat, or the whole account from Settings). Deleting your account removes your profile and all synced chats via database cascade. Local-storage data lives in your browser until you clear it.

8. Changes

If this policy changes in a way that matters — new data collected, new processors, or a change to the training rules — we'll update the effective date above and note the change plainly. Material history is preserved in the public repository.