Privoo reference
Download Source Discord

Privoo Desktop: Privoo AI

From the Privoo reference. This article covers version 5.0.5.

Main article: Privoo Desktop. For the separate AI coding IDE, see Privoo Coder.

Privoo AI is the assistant built into Privoo Desktop. It is enabled by default and reachable from a toolbar button, a side panel, or its own window at privoo://ai. It is not a hosted service: Privoo operates no model and no inference infrastructure. The assistant runs against an API key the user supplies, or entirely locally through Ollama, in which case no data leaves the machine at all.

This design follows from the same constraint as the rest of the browser. A browser with no accounts and no servers cannot offer a hosted assistant without contradicting itself, so it offers the plumbing and lets the user choose who, if anyone, sees their conversations.

Interface

Privoo AI is presented in three places, backed by the same conversation store:

Where the assistant appears
SurfaceDescription
Toolbar buttonOpens the assistant. Controlled by Settings → Features, where it can be hidden. Enabled by default.
Side panelThe assistant beside the page, for use while reading.
Full pageprivoo://ai, a two-pane workspace: a chat-history sidebar and the chat column.
Separate windowA frameless window with its own minimise and close controls, so the assistant can sit beside other applications rather than inside the browser.

Chat history

Conversations are saved and listed as Recent chats in a sidebar, which can be shown or hidden. History is stored in the browser's own local storage under the key privoo-ai-chats-v1, and is shared between the AI window and the full-page view, so a conversation started in one is available in the other.

As with everything else in Privoo Desktop, that store is on the local disk. There is no account holding conversations and no synchronisation between devices.

Providers and models

Five backends are supported. Four are hosted services requiring the user's own API key; one runs locally and requires none.

Supported providers and their default models
ProviderDefault modelKey requiredData destination
Anthropicclaude-sonnet-4-6YesAnthropic, under the user's key
OpenAIgpt-4o-miniYesOpenAI, under the user's key
Google Geminigemini-2.0-flashYesGoogle, under the user's key
DeepSeekdeepseek-chatYesDeepSeek, under the user's key
Ollamallama3.2NoNowhere. Stays on the machine.

Anthropic is the default provider. The model is configurable per provider rather than fixed to the defaults above. Privoo maintains a small mapping of retired model identifiers to their replacements, so a model name saved in settings that a provider has since withdrawn is silently migrated instead of failing.

If a hosted provider is selected but no key has been saved for it, the assistant reports that the key is missing rather than failing opaquely. Ollama is always treated as available, because there is no key to check.

API keys and storage

Keys are entered in the assistant's configuration and stored encrypted, using the same approach as the browser's password vault:

A key is transmitted only to the provider it belongs to, on requests the user initiates. Keys are never sent to Privoo, because there is no Privoo endpoint to send them to.

Bringing your own key

This model has a real trade-off, and it is worth stating rather than glossing. The benefit is that no intermediary sits between the user and the provider, and the user's usage is billed and governed by their own account. The cost is that the user needs an account with a provider to use the hosted options at all. Ollama exists precisely so that the feature is usable without one.

Running locally with Ollama

Ollama runs a language model on the user's own machine. Selecting it as the provider means the assistant works with no API key, no account, no per-token cost, and no network transmission of the conversation.

Privoo detects a running Ollama instance and the models installed in it. The default is llama3.2, and any model pulled locally can be selected.

Ollama is used elsewhere in the browser for the same reason. The identity autofill feature calls a local model to interpret unusual form-field labels that direct matching does not recognise, so that the user's saved personal details are never sent to a remote service to be understood.

Network path

Requests to Ollama go directly to 127.0.0.1:11434 using Node's own HTTP client, deliberately bypassing Electron's networking stack. This is a considered decision rather than an oversight, and it has a visible consequence:

Ollama traffic does not go through Tor or your proxy

Electron's network stack applies the browser's proxy settings, including Tor when enabled, along with Chromium's origin checks. Routing a request for a service on the user's own machine through a Tor circuit or an external proxy would be incoherent, and in practice would break it. Local traffic to 127.0.0.1 therefore takes the direct path.

Hosted providers behave the opposite way: those requests use Electron's network stack, so they do respect the browser's proxy configuration and system certificates. If Tor is enabled, traffic to Anthropic, OpenAI, Gemini or DeepSeek goes through it.

How requests are made

Hosted providers are called at their standard public endpoints, with the user's key, from the main process:

Endpoints
ProviderEndpoint
Anthropicapi.anthropic.com/v1/messages
OpenAIapi.openai.com/v1/chat/completions
DeepSeekapi.deepseek.com/chat/completions
Google GeminiThe Gemini generative language endpoint
Ollama127.0.0.1:11434/api/chat

Each conversation is sent with a system prompt, which defaults to a short instruction identifying the assistant as running inside the Privoo web browser and asking it to be concise and accurate. Responses can be streamed, so output appears as it is produced rather than after the full reply is complete.

Privacy model

The position is narrower and more honest than "private AI", a phrase this reference avoids because it is usually meaningless:

Relationship to Privoo Coder

Privoo AI and Privoo Coder are distinct products that share a design principle. Both decline to host a model and both operate against a user-supplied key or a local Ollama instance, keeping keys on the machine.

Privoo AI compared with Privoo Coder
AspectPrivoo AIPrivoo Coder
Part ofPrivoo DesktopA separate application
PurposeAssistant while browsingCoding IDE with an agent
SourceMIT, publicClosed source
ProvidersAnthropic, OpenAI, Gemini, DeepSeek, OllamaAnthropic, OpenAI, Ollama
Acts on filesNoYes, in agent mode
AccountNoneDiscord sign-in
AvailabilityIncluded, enabled by defaultContributor role required

Limitations

See also

References

  1. ai.js, provider configuration, key encryption and request handling. Project repository, version 5.0.5.
  2. renderer/internal/ai.html, assistant interface and chat history store. Project repository, version 5.0.5.