Simon Willison releases llm-chat-completions-server 0.1a0, a plugin that runs a local OpenAI Chat Completions-compatible server backed by any installed LLM models, using content-addressable logs for efficient conversation state.
# Release: llm-chat-completions-server 0.1a0
Source: [https://simonwillison.net/2026/Jul/30/llm-chat-completions-server/](https://simonwillison.net/2026/Jul/30/llm-chat-completions-server/)
A key goal of the new content\-addressable logs[in LLM 0\.32rc1](https://simonwillison.net/2026/Jul/30/llm-rc1/)was being able to support OpenAI Chat Completion style requests where each incoming message extends the previous conversation, like this:
```
curl http://localhost:8002/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-4b",
"messages": [
{"role": "user", "content": "Capital of France?"},
{"role": "assistant", "content": "Paris."},
{"role": "user", "content": "Germany?"}
]
}'
```
Here the conversation state is tracked by the client, so each of these requests gets longer and longer\. The new schema design in LLM is designed to de\-duplicate these using hashes of the individual message parts\.
To test that out, I built this plugin:
```
uv tool install llm --pre
llm install llm-chat-completions-server
llm chat-completions-server -p 9001
```
Running this starts a localhost server on port 9001 that exposes your full collection of LLM models \(from any plugins you have installed\) using a ChatGPT Completions compatible endpoint\.
GPT\-5\.6 Sol[wrote the whole thing](https://gist.github.com/simonw/53be513c1bd4a29a7aa480d9bde9b4a5)\- it turns out it knows the OpenAI Chat Completions API shape really well\.
Built a Tauri v2 desktop chat shell for local LLMs that can connect to Ollama, llama.cpp, or any OpenAI-compatible endpoint. The project is MIT licensed and produces a ~12 MB binary.
Llampart 1.0.0 is a standalone local web UI for llama-server with translations, extended settings, and a polished conversation sidebar, released under MIT license.