Install PAIR on each desktop system that will join the cluster. Download the appropriate package from the PAIR releases page.
Open a terminal in the directory that contains the downloaded package, then run:
sudo apt install "./NVPAIR-Setup-VERSION-ARCH.deb"
Replace VERSION and ARCH with the values in the downloaded filename. Then
open NVIDIA Personal AI Router from the desktop application menu.
.dmg.PAIR opens when the installation is complete.
When you first open PAIR, it shows the engines that it can install. Ollama is selected by default when it is available for the platform.
The first start can take longer while PAIR starts its background services. If Overview still shows Loading... after one or two minutes, open Settings → Service, then use the Troubleshooting tab.
You can return to engine settings by selecting a node in Overview. Use Settings → Cluster to pair systems at any time.
Start PAIR on each system. Confirm that the systems are on the same trusted local network.
The peer appears as a connected node when pairing is complete.
Repeat these steps on every system that should serve the model:
A system can serve a request when it is online, the engine is running, and the requested model is available there. To route requests across several systems, add the same model to each system that should serve it.
Applications connect to PAIR on the system where they run. They do not connect directly to an engine or to the system that will run the request.
http://127.0.0.1:<port> URL.If the window says No engines are running, return to step 4 and start an engine. The endpoint appears when that engine is running on any system in the cluster, including a remote system.
IMPORTANT
Copy the URL from Endpoints. PAIR puts a proxy on the engine's usual port and moves the engine to the next available port.
Replace <PAIR_BASE_URL> with the endpoint from step 5. Replace
<MODEL_NAME> with the exact model name from step 4.
PAIR passes each request to the selected engine without rewriting it.
| Endpoint | OpenAI /v1/chat/completions | Ollama /api/chat |
|---|---|---|
| Ollama | Works | Works |
| LM Studio | Works | Not available |
If you are unsure, use the OpenAI-style request. It works with either engine.
curl <PAIR_BASE_URL>/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "<MODEL_NAME>",
"messages": [
{
"role": "user",
"content": "Tell me a short story about a dog who learns to skateboard."
}
]
}'
Use this request only with an Ollama endpoint. The -N option shows the
response as it streams.
curl -N <PAIR_BASE_URL>/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "<MODEL_NAME>",
"messages": [
{
"role": "user",
"content": "Tell me a short story about a dog who learns to skateboard."
}
]
}'
Open Overview, select the Jobs filter, and read Ran on or Running on on the job card. A response and a job card show that PAIR routed the request.
Set the application's base URL to the endpoint from step 5. Select a model that you added in step 4.
PAIR accepts requests only from the system where it is running. The proxy uses
plaintext HTTP on loopback. A network request to an address such as
http://some-node:11434 returns 403.
Install PAIR on the system where you use the application. Join that system to the cluster, then use its local endpoint. The system does not need a GPU or an engine when another cluster system can serve the request.
PAIR does not provide a network-reachable inference endpoint. Configuring an engine to listen on the network is outside PAIR and creates security exposure that you must manage separately.
PAIR's proxy uses the port that an engine normally uses. PAIR moves the engine to the next available port.
| Service | Default port |
|---|---|
| Ollama-compatible proxy | 11434 |
| Ollama engine behind PAIR | 11435 and upward |
| LM Studio / OpenAI-compatible proxy | 1234 |
| LM Studio engine behind PAIR | 1235 and upward |
If OLLAMA_HOST names a different local loopback address, PAIR also serves
that address when the port is free. PAIR does not use a remote or HTTPS
OLLAMA_HOST value.
PAIR uses these ports to communicate between cluster systems:
| Port | Purpose |
|---|---|
5353/udp | Local-network discovery through mDNS |
14318 | Node hardware and model inventory |
14319 | Service-error synchronization |
14320 | Workload propagation |
14321 | Pairing and cluster membership |
14322 | Model list served to cluster peers |
14323 | Cluster-scoped remote engine control |
The Windows installer adds the firewall rules. If a Linux firewall is restrictive, allow these ports between trusted cluster systems.
PAIR applies the change as one operation and restores the new values when it next starts. You can change ports only on the local system. Remote system cards show them as read-only. If you change a proxy port, update the application's base URL. Endpoints always shows the current URL.
If another application uses a port that PAIR does not manage, choose a different port in PAIR or stop the other application. Then restart the service from Settings → Service.
PAIR-installed engines are normal installations, but their binaries are not in
PATH and their server ports differ from the usual defaults.
Ollama locations:
| Platform | Path |
|---|---|
| Windows | %LOCALAPPDATA%\Nvidia Corporation\Personal AI Router\engine-bin\ollama\ollama.exe |
| Linux | ~/.config/Nvidia Corporation/Personal AI Router/engine-bin/ollama/bin/ollama |
| macOS | ~/Library/Application Support/Nvidia Corporation/Personal AI Router/engine-bin/ollama/Ollama.app/Contents/Resources/ollama |
Linux example:
ENGINE="$HOME/.config/Nvidia Corporation/Personal AI Router/engine-bin/ollama"
LD_LIBRARY_PATH="$ENGINE/lib/ollama" OLLAMA_HOST=127.0.0.1:11435 "$ENGINE/bin/ollama" list
Windows PowerShell example:
$ollama = "$env:LOCALAPPDATA\Nvidia Corporation\Personal AI Router\engine-bin\ollama\ollama.exe"
$env:OLLAMA_HOST = "127.0.0.1:11435"
& $ollama list
LM Studio installs to its standard location:
~/.lmstudio/bin/lms status
On Windows, the executable is %USERPROFILE%\.lmstudio\bin\lms.exe.
Set OLLAMA_HOST to the engine's Server value when you want to inspect the
local engine. Otherwise, the CLI uses proxy port 11434 and returns the
cluster-wide view. The proxy shows what the cluster can serve. The server port
shows what is on that system.