> For the complete documentation index, see [llms.txt](https://docs.nvcl.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nvcl.ai/get-started/run.md).

# Start the server

`nvcl-ai` runs the installed model in the background as an OpenAI-compatible server. `nvcl-ai install` leaves it running; these commands start, stop and check it. In the menu, a model's page does the same (see [A model's page](/get-started/install.md#a-models-page)).

## Start, stop, status

```bash
nvcl-ai start                                 # the installed model, as you last set it up
nvcl-ai start qwen3.8-27b --format compact --port 8001
nvcl-ai start qwen3.8-27b --parallel dp2      # one copy per GPU on two GPUs (see GPU layout)
nvcl-ai status                                # ready, loading or failed, the address, the GPU layout and the account
nvcl-ai stop                                  # stop the model and free the GPU memory
nvcl-ai logs -f                               # follow the server log
```

* One model runs at a time.
* `nvcl-ai start` starts a model or format that is installed already; `nvcl-ai install` downloads new ones. Only downloads need your [NVCL AI account](/get-started/install.md#sign-in).
* The server listens on `127.0.0.1:8000` by default. Without `--port`, `nvcl-ai` uses the port you chose last, and without `--public` or `--local`, the network setting you chose last. If the port is taken, the start stops and says so: choose another with `--port`.
* Before it reports the model ready, `nvcl-ai` sends it one short test request. A model that loads but does not answer counts as a failed start and keeps running, so that `nvcl-ai logs` shows why (the last 50 lines; `-n 100` for the last 100).
* On NVIDIA GPUs, `nvcl-ai` uses the GPU with the most free memory, or for TP2 and DP2 two GPUs of the same kind ([GPU layout](/get-started/install.md#gpu-layout)). To choose the GPUs yourself, set `CUDA_VISIBLE_DEVICES` to their indices or UUIDs.
* The server runs as a background process. In a container, make `nvcl-ai serve` the container's command instead: it runs the server in the foreground and passes stop signals on to it.

## Chats at once and drafts

No server settings to tune. On NVIDIA GPUs, NVCL AI picks how many chats Qwen3.8-27B serves at once ([how](/concepts/why-fast.md#more-output-as-the-load-grows)); more requests wait in a queue. There `nvcl-ai` starts every Qwen3.8-27B tier with drafts ([speculative decoding](/concepts/speculative-decoding.md)) from MTP, a draft head, at every load, and with the model's own sampling defaults. On a Mac, Qwen3.8-27B runs with the settings of its Mac build: it drafts with MTP too, and on a Mac with 48 GB of memory or more it may also use a separate, publicly available draft model. The other models run with the settings their package sets.

## Open to the network

`--public` (on `nvcl-ai start` or `nvcl-ai install`, or `o` on the menu's API endpoint screen) listens on all interfaces and requires an API key, which `nvcl-ai` generates once and keeps in `~/.nvcl-ai/api-key`. When the model is up, `nvcl-ai` prints the key and the addresses where other machines can reach the server; `--local` goes back to this machine only.

{% hint style="warning" %}
The server speaks plain HTTP. When clients reach it over a network, put it behind a proxy that adds HTTPS.
{% endhint %}

## Start at boot

`--boot` (on `nvcl-ai start` or `nvcl-ai install`, or in the menu's install questions; Linux with systemd) starts the model again when the machine boots, on the GPUs the start chose, and restarts it after a failure. If your system does not let your user's services start at boot, `nvcl-ai` prints the command that does: `sudo loginctl enable-linger <user>`. `nvcl-ai stop`, or a start without `--boot`, turns it off. A Mac has no start at boot: after a restart, run `nvcl-ai start`.

Next: [First request](/get-started/first-request.md).
