Models and providers
latentPresence ships no models. You point it at a language model, and you decide where her voice, hearing and memory run. Everything here is under Settings, and in setup the first time.
Connect a language model
- Open Settings → Language model and choose an endpoint.
- Check the address, and enter an API key if the provider needs one.
- Press Test connection. If it cannot reach the server, it says why, and for a server that refuses web pages it shows the steps for your system.
- Choose a model, then press Send a test message. This is the real test: on NVIDIA and OpenRouter a model list comes back even with a wrong key, so only a message proves the key.
Keys are kept in Windows Credential Manager in the app, or encrypted in your browser on the web. They go only to the service they belong to.
On your own computer
A local model needs no key, and what you say stays on your machine. In the Windows app, Ollama and LM Studio work with no extra setup. On the website, your browser first asks whether app.latentpresence.com may reach apps on your device: choose Allow. The server may also need to allow the site, as below.
Ollama
Address: http://127.0.0.1:11434/v1. Get it from ollama.com.
From the website only, Ollama must be told to allow it. Set the environment variable OLLAMA_ORIGINS to https://app.latentpresence.com:
- Windows
- Quit Ollama from the taskbar. Search Settings for “environment variables”, choose Edit environment variables for your account, and add
OLLAMA_ORIGINS. Then start Ollama from the Start menu. - macOS
- Run
launchctl setenv OLLAMA_ORIGINS "https://app.latentpresence.com", then restart the Ollama app. - Linux
- Run
systemctl edit ollama.serviceand addEnvironment="OLLAMA_ORIGINS=https://app.latentpresence.com"under[Service]. Then runsystemctl daemon-reload && systemctl restart ollama.
LM Studio
Address: http://127.0.0.1:1234/v1. Get it from lmstudio.ai.
From the website only, turn on Enable CORS in its server settings, or start the server with lms server start --cors.
llama.cpp
Address: http://localhost:8080/v1. llama-server allows every origin unless --cors-origins, --tools or --agent narrowed it. If it did, restart it with --cors-origins set to the page you use.
vLLM
Address: http://localhost:8000/v1. vLLM allows every origin unless it was started with --allowed-origins. If it was, restart it without that flag or with the page you use in the list.
In the cloud, with your own key
A cloud provider handles what you say, what she remembers that bears on it, and what her tools read, under its own terms. Each provider’s key comes from your account with it.
- OpenRouter
https://openrouter.ai/api/v1- DeepSeek
https://api.deepseek.com/v1- Kimi (Moonshot)
https://api.moonshot.cn/v1- Anthropic
- No address to enter.
- No address to enter.
- NVIDIA NIM
https://integrate.api.nvidia.com/v1, with a key from build.nvidia.com. It does not answer web pages, so see below.- Ollama Cloud
https://ollama.com/v1, with a key from ollama.com/settings/keys. It does not answer web pages, so see below.
NVIDIA and Ollama Cloud go through the companion on your computer. The Windows app includes it, so they just work there. On the website, start the companion first.
Anything else
Custom (OpenAI-compatible) takes the address of any server with an OpenAI-compatible API, usually ending in /v1, and an optional key. If Test connection says the server refuses this page, allow the page’s address in that server’s CORS settings.
Her voice
Settings → Voice.
- Browser (Kokoro)
- The default. It runs on your computer’s GPU and downloads the first time a call starts, once you agree.
- OpenAI-compatible server
- A speech server of your own. The sentences she is about to say go to it.
Her hearing
Settings → Hearing.
- Moonshine (browser)
- The default, in Tiny or Base. It runs on your computer and downloads once you agree.
- Whisper (browser)
- Tiny (English) or Base. The same.
- OpenAI-compatible server
- A speech server of your own. Your recorded speech goes to it. Leave Language blank to detect it.
Every model the app can download is listed with its size, licence and source on the app’s privacy page. To remove them, use Settings → Downloaded models.
A memory database
Memory works with no database, in your browser or app. To keep it in your own, run MariaDB 11.8 or newer and give the companion its address. In the Windows app that is the memory step of setup, or Settings. From source, it is DATABASE_URL in .env.
If you run the database yourself, raise mhnsw_max_cache_size. It defaults to 16 MB, which made vector search about five times slower at 100,000 vectors when we measured it, and it can only be set globally.