Two Settings types cover local inference: You can add multiple Local / network rows. Each gets a nickname (Local, Local 2, …). Duplicate host URLs are refused.

Ollama on this machine

1

Install and pull a model

Default in the catalog is qwen3:30b-a3b. Pin Llama or another tag on the seat if you prefer.
2

Connect Ollama in Settings

Settings → Providers → Add provider → Ollama.
  • Base URL — leave blank for http://127.0.0.1:11434/v1, or set a remote Ollama (http://100.x.x.x:11434/v1).
  • Key — leave blank. Click Save.
3

Add an agent

Add agent → Ollama. porto probes /api/tags and fills the model list from that host.
First token on a cold load can take minutes. porto waits 300 seconds for Ollama and Local / network so a Qwen pull does not die at 30s.

Any OpenAI-compatible host

Use this for vLLM, LM Studio, llama.cpp, or a machine on Tailscale that is not “Ollama-the-product”.
1

Start the host so it serves `/v1/chat/completions`

Examples of base URLs porto expects:
2

Add Local / network

Settings → Providers → Add provider → Local / network.
  • Nickname — auto-filled (Local, then Local 2).
  • Host URL — required. Paste the /v1 base.
  • API key — only if that host requires one.
3

Refresh models, then add an agent

After Save, porto lists models from that host. Add agent and pick the Local row (not a cloud provider).
Pick Local / network for a non-Ollama OpenAI-compat server. The Ollama type probes Ollama’s own /api/tags. A vLLM box will fail that probe.

Remote Ollama (LAN / AWS)

Same Ollama card. Set Base URL to the remote host’s OpenAI-compat root (http://host:11434/v1). porto still uses that host’s /api/tags for the live list.

If the model list is empty

127.0.0.1 means the machine running uvicorn, not your laptop, if the API is in Docker. Point the URL at a host the backend can route to, or run the from-source API on the same machine as Ollama.
Local / network wants an OpenAI-compatible root. http://127.0.0.1:11434 without /v1 is the wrong shape for that type. Use the Ollama type, or add /v1.
ollama list should show at least one model. Pull one, then re-save the provider so the list refreshes.