ChatGPT Desktop¶
Outcome: ChatGPT Desktop uses daari via the Ollama-compatible facade (Ollama v0.34+ can point local model traffic at a custom Ollama host).
Fast path: daari configure chatgpt-desktop (prints the Ollama host and a verify curl; see also daari setup chatgpt-desktop). Does not edit ChatGPT Desktop preferences.
Prerequisites¶
daari serverunning- ChatGPT Desktop with Ollama integration available (Ollama macOS app / v0.34+ local-model path)
Steps¶
daari serve(listens onhttp://127.0.0.1:11435by default).- Keep native Ollama on 11434 if you still use it directly — daari proxies local tiers through Ollama; they are different ports.
- In ChatGPT Desktop / the Ollama host setting for local models, set the
Ollama base URL to
http://127.0.0.1:11435(daari root — no/v1). - Pick model daari (or any L3/L4/L5 name listed by
GET /api/tags).
/api/tags and /api/show advertise Ollama-shaped capabilities derived from
the mapped tier (completion, plus tools / vision / thinking when the
catalog supports them), so Desktop does not disable tools/vision UI against the
facade. When thinking is in capabilities, /api/show also returns a
thinking controls object (values: low / medium / high, default:
medium) so clients can discover allowed think levels. Same note:
JetBrains.
Optional: send X-Daari-Client-Id: chatgpt-desktop when the client allows
custom headers so daari report attributes traffic correctly.
What works¶
| Surface | Notes |
|---|---|
Chat (/api/chat) |
Streaming NDJSON and non-stream JSON through cache, tiers, budgets; honors top-level think, format, keep_alive, logprobs, top_logprobs, tool_search, and response_compaction like native Ollama (local Ollama hops forward tool_search / response_compaction; cache and non-Ollama tiers surface them via dropped-params) |
Generate (/api/generate) |
Same router path; prompt (+ optional system / images); same think / format / keep_alive / logprobs / top_logprobs / tool_search / response_compaction knobs |
Embed (/api/embed, /api/embeddings) |
Mapped to daari's embedding model (L1 / nomic-embed-text) |
| Tags / show / version / ps | Virtual model cards so the client can discover daari |
Ollama 0.34 OpenAI-compat extras (tool search, response compaction, and other unknown fields) are ignored gracefully — they must not 4xx/5xx.
Limitations¶
- The facade does not run Ollama's native model pull/create APIs; install
models with
ollama pullas usual, then route through daari. - Streaming responses use Ollama NDJSON token fields (
prompt_eval_count/eval_count);daari_metais attached on non-stream JSON only. - ChatGPT Desktop UI labels may still say "Ollama" — that is expected; the host URL is what sends traffic through daari.
Troubleshoot¶
| Problem | Fix |
|---|---|
| Empty model list | Daemon down, or URL still points at 11434 / includes /v1 |
| No cache / budget effect | Confirm the host is 11435 (daari), not bare Ollama |
| Embed 400 unknown model | Use daari or the configured cache.l1.embedding_model |