---
title: "LLM Chat Completions Server 0.1a0 Released: Local OpenAI-Compatible API"
source: "Simon Willison 博客（Atom）"
source_tier: "t2"
url: "https://simonwillison.net/2026/Jul/30/llm-chat-completions-server/#atom-everything"
permalink: "https://feed.astralor.com/items/itm_5e0ecb7c875865030acfaff9"
published: "2026-07-30T15:43:16.000Z"
score: 75
channel: "tech"
tags: ["Chat Completions API","GPT-5.6 Sol","LLM","llm-chat-completions-server","OpenAI","content-addressable logs"]
---

# LLM Chat Completions Server 0.1a0 Released: Local OpenAI-Compatible API

## AI commentary

> This article is valuable for developers who want to use open-source models while maintaining compatibility with the OpenAI API ecosystem. It demonstrates the practical capability of AI-generated tools and the elegance of content-addressable logs in conversation management. For engineers building local inference services, this plugin can directly reduce integration complexity.

## At a glance

Simon Willison released llm-chat-completions-server 0.1a0, a plugin for the LLM CLI tool that exposes local models via an OpenAI Chat Completions-compatible API. It leverages the content-addressable logs in LLM 0.32rc1 to deduplicate message parts by hashing, supporting long-running conversations where the client tracks state. The entire plugin was written by GPT-5.6 Sol, demonstrating AI's ability to generate practical tools.

## Key points

- Plugin exposes local LLM models as standard OpenAI Chat Completions API endpoints.
- Uses content-addressable logs for message deduplication, enabling client-side conversation continuity.
- Code generated by GPT-5.6 Sol, showcasing AI's potential in tool development.
- Easy installation: via pip or uv, start server with a single command.

## Full text

Release: llm-chat-completions-server 0.1a0 A key goal of the new content-addressable logs in LLM 0.32rc1 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 - it turns out it knows the OpenAI Chat Completions API shape really well. Tags: projects, openai, llm

---

Verify against the original before citing; curated by Astral Feed: https://feed.astralor.com/items/itm_5e0ecb7c875865030acfaff9
