Skip to content
Desktop and phone

Connect an AI model

Point SILONotes at a model you control: Ollama, LM Studio, vLLM, or any OpenAI-compatible endpoint.

SILONotes has no AI built in and no AI service behind it. Every AI feature talks to a server address that you type in. Until you do, those features simply sit there switched off, and the app is complete without them.

Settings ▸ AI Servers. One address, one model, and you are done.

Which API does it speak?

The rule is simple and worth knowing, because it decides how the request is shaped:

  • A URL containing `/v1` is treated as OpenAI-compatible.
  • A URL without `/v1` is treated as Ollama-native.

Ollama

  1. 1Install Ollama and pull a model, for example ollama pull qwen3:4b.
  2. 2Open Settings ▸ AI Servers.
  3. 3Set Server URL to http://localhost:11434 if Ollama is on the same machine, or http://192.168.1.x:11434 if it is on another box on your network.
  4. 4Leave the API key blank.
  5. 5Click Test connection. The model list fills in.
  6. 6Pick your model under Active model.

LM Studio

  1. 1Load a model in LM Studio and start its local server.
  2. 2Set Server URL to http://localhost:1234/v1. The /v1 matters.
  3. 3Leave the API key blank.
  4. 4Click Test connection, then pick your model.

vLLM, llama.cpp, and other OpenAI-compatible servers

Give the base URL including /v1, for example http://localhost:8000/v1, and an API key if your server wants one. If the server sits behind a proxy or a custom domain and detection guesses wrong, set Provider explicitly rather than relying on the URL.

Connecting from the phone

The phone needs an address it can actually reach. localhost on a phone means the phone itself, not your computer, so use your machine's LAN address, for example http://192.168.1.42:11434.

Plain HTTP to a private address prompts a confirmation. That is expected for a server on your own network.
Connected, with the model list fetched from the server.

Settings worth knowing

Request timeout (seconds)
What it does: How long to wait before giving up. The default suits a hosted model. A small model on CPU can easily take longer, so raise this if requests abort partway.
Max tokens
What it does: The longest answer the model may produce. Input is budgeted separately.
Provider
What it does: Leave on Detect automatically unless your server is behind a proxy.
Reasoning effort
What it does: Low, medium or high, for models that support it. Ignored otherwise.
Context window override
What it does: Leave at 0 to detect it. Setting it too high causes silent truncation.
Temperature
What it does: Separate values for polish and for insights, because tidying wants a colder setting than thinking does.
Thinking mode
What it does: Ask a reasoning model to think before answering. Slower and deeper.
On the phone, in the Android Keystore. On the desktop, encrypted with the OS keyring. If no keyring is available, which happens on Linux without GNOME Keyring or KWallet unlocked, the app falls back to a plaintext file and tells you so in a banner on the Data screen. Keys are always stripped from backups.