Server and Model Inventory
One background service, several clients
Ollama is a tool built specifically to download, store, and run language models on your own machine. When it starts, it launches a background program called a daemon - a process that keeps running quietly, waiting to handle requests, rather than doing one task and exiting. That daemon exposes a local Hypertext Transfer Protocol (HTTP) service, meaning any program that can speak plain HTTP can talk to it. The ollama command-line interface (CLI) you type into the terminal, the general-purpose curl web-request tool, and a Python program you write are all just different clients of that same underlying daemon - none of them contain the model logic themselves.
$ ollama list
NAME ID SIZE MODIFIED
qwen2.5:0.5b a8b5f2c1d3e4 397 MB 2 weeks ago
smollm2:135m 6f1a9c0b2d77 92 MB 2 weeks ago
$ ollama ps
NAME ID SIZE PROCESSOR UNTIL
qwen2.5:0.5b a8b5f2c1d3e4 612 MB 100% CPU 4 minutes from now
ollama list shows what's installed on disk right now - useful for checking that the model your code expects actually exists before you try to use it. ollama show MODEL prints descriptive details about one model, called its metadata: parameter count, quantization format, and more. ollama ps shows which models are currently loaded into memory and actively able to answer requests - note that a model can appear in list without appearing in ps, because Ollama loads a model into memory only when it's actually asked to do something, and can unload it again after a period of inactivity.
For a quick interactive chat, ollama run qwen2.5:0.5b drops you into a back-and-forth conversation in the terminal. For automation, though, the one-shot form is far more useful because it's a single command you can call from a script and immediately capture the output of: ollama run qwen2.5:0.5b 'Return only the word READY'.
Note: The lab image already contains its models pre-installed - do not runollama pullinside a session. These lab containers have no internet access at all, so apullwould simply fail; and even where it might work, downloading a multi-hundred-megabyte model at session start would make every lab slow to start and inconsistent between runs.