Privacy and consent
The built-in chat is designed so you always know what leaves your machine. This page is precise about it: where traffic goes, what travels with each message, what never does, and how your keys are handled.
Your key, your provider, no middleman
The chat is bring-your-own-key only. Every request goes straight from the app to the provider you chose, using your own API key or your local Claude Code CLI. Nothing routes through Brilliant's servers, and there is no hosted Brilliant AI. You pay your provider directly, and your prompts reach only that provider.
Where your keys live
Keys are stored locally in your OS credential store (macOS Keychain, Windows Credential Manager) and are sent only to that provider's own API endpoint. Brilliant also reads provider environment variables as a fallback (ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY, OPENROUTER_API_KEY).
A key you paste never appears in a chat transcript, in the conversation history, or in your prompt drafts. When you set one up from inside the chat, the pasted key is stashed straight into the credential store and is not echoed into the conversation.
Explicit consent, by default
Outbound chat traffic is explicit-consent only. Brilliant does not quietly attach a screenshot of your screen, your system info, your app version, your recent files, telemetry, or any other ambient context. Beyond your prompt and the first-message canvas context described below, the default is to send nothing extra.
What travels with a message
There are exactly three things that can go out with a message, and you control all three.
1. First-message canvas context (text)
When you send the first message of a session, Brilliant includes a text snapshot of the canvas so the model can see the work in progress: a structural outline of the elements (Brilliant's Blueprint), the design-system state, the component catalog, and the element count and current selection. This is text, not an image. No screenshot of the canvas or your screen is captured for it.
Later messages send only changed state. To send a prompt with no canvas context at all, start the chat in an empty workspace.
2. Attachments you add (opt-in)
Anything you attach is something you chose to attach, and each shows as a chip above the input with an X to remove it before sending:
An element attachment (via
@mention or paste) sends that element's Blueprint plus a PNG render of just that element.An image or file attachment sends exactly what you added.

3. Automatic self-review screenshot (after edits)
After the agent applies a block of changes, Brilliant renders a screenshot of those changed elements and sends it back to the model so it can check its own work (spacing, contrast, alignment, clipping). This is a render of the design content only, never your screen or other apps. Text-only models never receive it, and it is suppressed for the rest of a session once an endpoint rejects image input.
What is never sent
Brilliant never attaches, on its own:
A screenshot of your screen, desktop, or other applications.
System information, hardware details, or the app version.
A list of your recent files or your file system.
Telemetry or usage analytics riding along with your prompt.
Your API keys, in any transcript, history, or draft.
Playground mode sends nothing
With no provider connected, the chat runs in Playground mode, which replays bundled demo conversations locally. There is no network call and no model request at all while a demo is the active path.
A note on Quiver
AI vector generation and image vectorization use a separate Quiver key, set up the same bring-your-own-key way. It follows the same rule: traffic goes to Quiver's own endpoint using your key, and nothing routes through Brilliant.
Next
See what the agent does with all this: What the AI can do.
Manage your keys and providers: Providers and models.