A clear choice, before you connect
Try the sauce.
Keep control of your key.
You don’t need to hand over a provider key to try Sauce. If you choose website chats with your own key, you should know where it goes and what you’re trusting.
No provider key needed
Try a free first roast ↗
One reply with text or screenshots, paid for by Sauce through OpenAI. Availability and abuse limits apply.
Keep your provider key out of Sauce
Use MCP or the skill ↗
Your assistant fetches public mentor research and generates the answer. Sauce receives the research topic, not your provider credentials. Your assistant’s plan and policies apply.
If you connect a key on the website
This is a server-proxied connection. Sauce’s server can access the key while handling a request. HTTPS protects transport; it does not hide the key from Sauce.
01 →
Your browser
Saves the key in this browser’s storage until you remove it, so reloads and new tabs stay connected. It is kept apart from saved settings and chat history.
02 →
Sauce’s server
Receives the key over HTTPS and uses it to authenticate requests to the selected provider. Our application does not save the raw key or deliberately log request contents.
03
Your AI provider
Receives the request and bills your account. Provider retention, usage and access policies apply. Sauce does not set or guarantee your spending cap.
Connecting checks available models. Later requests can include mentor replies, matching mentors, automatic titles, web lookup and sound reviews. Each mentor produces a separate reply. Removing the key from Settings deletes it from this browser and stops future use; revoke it with the provider to disable the credential itself.
Reduce what a key can access or spend
- Create a dedicated key. Keep production keys and sensitive production resources separate. Restrict permissions and model access where your provider supports it.
- Choose an enforced limit, not just an alert. Check your provider’s current controls and watch usage. An email notification does not stop requests. Even enforced limits can have a reporting or enforcement delay.
- Revoke the key when finished. Removing it from Sauce or closing the tab clears local access; it does not delete the key at your provider or reverse incurred charges.
OpenAI: project/organization spend alerts and hard limits are different controls. Enable the hard-limit option if you want enforcement; recorded spend can slightly exceed it. Official spend controls ↗
Claude: use a dedicated workspace-scoped key and configure its spend limits. Check which controls your workspace supports. Official workspace controls ↗
Application review · October 30, 2026
What the implementation checks
This is Sauce’s own code review with automated checks using synthetic credentials. It is not an independent security audit or proof of the hosting provider’s behavior.
- Separate key storage
- Keys are saved in their own browser storage entry, never in cookies, chat history or the preferences record. Saved settings keep provider/model preferences with empty credential fields. Old saved credentials are discarded. Closing an unfinished connection check cancels it.
- Fixed provider destinations
- Provider calls use explicit HTTPS API hosts. The transport rejects other origins and redirects, so SDK endpoint environment overrides cannot reroute a key.
- Separate credentials and prompts
- Keys travel in authentication headers, not request URLs or model prompts. Provider SDK logging is disabled. Public errors use generic messages rather than raw provider errors.
- Bounded browser requests
- Website key endpoints reject cross-origin browser requests. Responses are marked no-store, including model-check errors. Request sizes and model choices are bounded.
Technical scope of the checks
The regression suite exercises model validation across all five providers, destination restrictions, disabled SDK logging, safe error responses, cancellation, storage exclusions, cross-origin rejection and the credential-free MCP path. Transport checks use mocked provider responses; they do not spend on an API account.
Website endpoints reviewed: model checks, chat, chat titles, mentor matching, web lookup and audio review. Supported provider hosts: api.openai.com, api.anthropic.com, api.deepseek.com, generativelanguage.googleapis.com and api.x.ai.
A request’s key is not part of the mentor prompt. This does not protect a secret that you type into a chat yourself. Provider-side storage settings do not override the provider’s retention policies. Browser extensions, compromised devices, deployment changes and infrastructure logging remain outside these tests.
Checks you can make in your browser
- Inspect the connection request. In Developer Tools → Network, connecting calls
/api/models. The key is an Authorization header, not a URL parameter or a JSON field. A model check does not generate a chat answer. - Inspect saved settings. In Application → Local Storage,
sauce.settings.v1saves preferences with emptykeysandsearchAccessobjects. The actual key should not be in Local Storage, Session Storage or cookies. - Reload. The provider must be connected again. You can also remove its key in Settings, then inspect usage and revoke it in the provider’s dashboard.
Network headers contain your key: don’t share a HAR export or an unredacted screenshot. These checks verify browser behavior. They cannot independently prove what happens on a remote server. Use MCP or the skill if you prefer not to send Sauce a provider key.
Other data that matters
- Voice calls and cloned voices
- Local mode transcribes microphone speech on your device with Whisper and Silero. Speech model files download from Hugging Face; microphone audio is not sent there. Optional Fast mode streams microphone audio through Sauce to Fish transcribe-stream-1. Fast transcription is billed by connected time, including silence and mute. Generated call audio is streamed in memory, not saved as MP3 files by Sauce. Transcript text goes to your selected AI provider and mentor reply text goes through Sauce to Fish Audio. Instant cloning sends a selected reference clip and its transcript to Fish with each spoken request; uploaded clips stay in tab memory, and prepared samples are served by Sauce. Fish keys are saved in this browser until you disconnect them. Prepared voice selections and existing Fish voice IDs are saved on your device; uploaded samples clear on reload. Call transcripts use normal chat history. Closing the tab, hanging up or leaving the call in a background tab for 10 minutes stops microphone tracks, Fish streaming connections and pending local playback. Already-submitted provider requests may still incur charges. Fish’s processing and retention policies apply.
- Provider keys
- This browser’s storage, until you remove the key, and request-processing memory. Anyone using this browser profile can use a saved key, so remove it on a shared computer. Not written to cookies, the application database or application logs. Removing a key here does not revoke it at the provider. Already-sent requests may finish.
- Chats, drafts and product profiles
- Saved in your browser profile. Relevant selected context is sent to your provider when used. Anyone with access to this browser profile may see it. Deleting local history does not erase provider-side records.
- Images and video
- Media is prepared in memory. Pictures, sampled frames and transcripts are sent for review; OpenAI/Gemini sound review also sends derived audio. The original video is processed locally. Attachment names and replies that discuss the content can remain in saved history.
- Visuals in mentor replies
- Diagrams and charts render locally without another model call. YouTube preview thumbnails load from YouTube; clicking Play loads its privacy-enhanced player and sends the Sauce site origin. External image references display automatically from their source host when they approach the viewport, without sending a referrer. These hosts receive normal browser connection data, not your provider key. Their policies apply.
- Mentor research search
- When enabled, a short excerpt of current/recent questions goes to OpenAI using Sauce’s key, even when chat uses another provider. Uploads and saved profile fields are excluded. Query vectors may be reused in server memory. Switch to keyword search in Settings to avoid this request.
- Web lookup and chat titles
- Web lookup sends relevant question text and selected public app identifiers to a connected search provider. Titles use a short conversation excerpt. These can incur API charges. Web lookup can be switched off.
- Usage counts
- DataFast counts website visits in real time in cookieless mode. It records the first text or voice message in each new chat as a chat start, with the host mentor’s public profile name. When you start a sponsor checkout, we pass the available DataFast visitor and session IDs to Stripe so a payment can be linked to the visit that brought you here. Page URLs include the path and any utm_ campaign tags. Vercel Web Analytics counts page views and named product events without cookies, including which persona and mode received a message, free roasts, connected providers, mentor matches, MCP tool names, skill downloads and sponsor cards shown or opened. Sponsored footers returned through MCP/HTTP are counted separately as delivered to the host, by public campaign ID and transport. Sauce cannot confirm whether another assistant displayed them. The public stats page shows aggregate website text chat starts, mentor usage, modes, team sizes, mentor pairings and 24-hour follow-ups. Your browser remembers which pairs and follow-ups it has counted in each chat. Sauce excludes message text, keys, uploads, app names and chat IDs from these counts.
- Bot traffic
- When a recognized crawler requests a page, Sauce sends DataFast the page path, crawler user agent and source IP so DataFast can verify the crawler. Query strings, referrers and cookies are excluded.
- Abuse controls and infrastructure
- Free-roast and research-search counters persist keyed hashes derived from network/key identifiers, not raw provider keys or message text. Hosting and bot-protection services process operational data. Their configuration and retention are outside this application-code review.
Voice dictation uses your browser’s speech service, which may process audio remotely. Video transcription runs locally after downloading a model on first use. The promises here concern API keys entered in Settings and the application paths reviewed; they do not cover a key pasted into ordinary chat text.
Built by David Attias
Questions about a request or something that looks wrong? Contact @david_attisaas ↗. Send the request path and time, with credentials and private content removed.
