Choose an app for the job

An inference engine, model server, desktop app, browser workspace, and document platform are not substitutes for one another. Start with the layer you actually need.

Choose by job

Do not compare an engine with a desktop app as though they solve the same problem.

Pick the layer you actually need: a graphical first setup, a local API, a browser interface, a document workspace, or a lower-level inference engine.

Ollama or LM Studio?

Graphical desktop apps

Best when you want model discovery, loading, and chat without assembling a stack.

Desktop app

LM Studio

The easiest first choice for a graphical desktop setup, model discovery, and local chat.

Use it when
desktop model application, local API server, headless service
Avoid it when
you need a headless service, multi-user browser workspace, or highly customized backend.
Data flow
Map downloads, providers, web tools, sync, telemetry, and remote access for the configuration you actually use.
Version in this record
0.4.21
See setup decision

Desktop app

Jan

A desktop alternative when you want local chat plus optional provider connections in one app.

Use it when
desktop model application, local API server, optional provider client
Avoid it when
you need a headless service, multi-user browser workspace, or highly customized backend.
Data flow
Map downloads, providers, web tools, sync, telemetry, and remote access for the configuration you actually use.
See setup decision

Desktop app

GPT4All

Consider it for a desktop chat and LocalDocs workflow, but compare the current product state against newer alternatives first.

Use it when
desktop model application, LocalDocs document workflow
Avoid it when
you need a headless service, multi-user browser workspace, or highly customized backend.
Data flow
Map downloads, providers, web tools, sync, telemetry, and remote access for the configuration you actually use.
See setup decision

Model runners and local APIs

Best when another app or your own code needs a local model service.

Model runner or API

Ollama

The clearest first choice for a lightweight local model runner, command-line workflow, or API used by other apps.

Use it when
model runner, CLI, local API server
Avoid it when
you only want a polished graphical chat app and do not need an API.
Data flow
Map downloads, providers, web tools, sync, telemetry, and remote access for the configuration you actually use.
Version in this record
0.33.0
See setup decision

Browser interfaces and shared workspaces

Best when you want a web interface over one or more model providers.

Browser workspace

Open WebUI

Use it as a browser interface after the underlying model provider already works.

Use it when
multi-user web application, provider orchestration, RAG workspace
Avoid it when
the underlying model runner is not working yet or you want the fewest moving parts.
Data flow
Map downloads, providers, web tools, sync, telemetry, and remote access for the configuration you actually use.
See setup decision

Document and retrieval workspaces

Best when ingestion, embeddings, retrieval, and document organization are part of the job.

Documents and RAG

AnythingLLM

Use it when the main job is organizing documents and retrieval, not merely opening a chat window.

Use it when
document workspace, RAG application, agent workspace
Avoid it when
you only need simple chat and do not want an ingestion and retrieval layer.
Data flow
Map downloads, providers, web tools, sync, telemetry, and remote access for the configuration you actually use.
Version in this record
1.15.0 snapshot
See setup decision

Inference engines

Best when you need backend control and are comfortable assembling the surrounding workflow.

Inference engine

llama.cpp

Use it when you need low-level control over GGUF inference, backends, command-line options, or an embeddable server.

Use it when
inference engine, CLI, local server
Avoid it when
you want a beginner desktop experience rather than backend control.
Data flow
Map downloads, providers, web tools, sync, telemetry, and remote access for the configuration you actually use.
Version in this record
rolling repository
See setup decision