
AnythingLLM turns folders of documents into workspaces you can question, with agents and a vector database behind them. Privatemode provides both the chat model and the embedding model behind those workspaces, so your documents stay encrypted in memory even while they are processed.

AnythingLLM answers a question by searching your documents and sending the matching passages to the model together with your question. In a workspace built from contracts, records, or personnel files, those passages are the sensitive part. With a conventional AI provider, they are processed in plaintext on the provider's servers, and so is every document while it is indexed.
AnythingLLM lets you choose the chat model and the embedding model separately, and both can point at the Privatemode proxy running on your machine or server. That covers the whole pipeline, indexing your documents as well as answering questions about them. Leaving the embedder on a conventional provider would send every document there at indexing time.
If you don't have a Privatemode API key yet, you can generate one for free here.
The proxy verifies the integrity of the Privatemode service using confidential computing-based remote attestation. The proxy also encrypts all data before sending and decrypts data it receives.
Download AnythingLLM from the official website and open the application on your computer.
Open Settings, then AI Providers, then LLM, and choose OpenAI (Generic). Set the Base URL to http://localhost:8080/v1, any placeholder as the API Key, glm-latest as the Chat Model Name, and 1048576 as the Token context window. AnythingLLM does not fetch the model list for this provider, so the model name and context window are typed in by hand.
The chat model and the embedder are configured separately. Open Settings, then AI Providers, then Embedder, select Generic OpenAI, and set the Base URL to http://localhost:8080/v1, any placeholder as the API Key, and qwen3-embedding-4b as the Embedding Model. Without this step every document would be sent through a conventional embedding API at ingestion time. Changing the embedder means re-embedding existing workspaces.
No. AnythingLLM supports custom OpenAI-compatible endpoints natively via its OpenAI (Generic) provider. You set the Base URL to your Privatemode proxy endpoint and type in the model name and context window. Chat and document retrieval work as before.
Your agent remembers everything. Your model provider shouldn't see it.
Your gateway routes every team's prompts. Your model provider shouldn't read them.

Want to look for yourself?
