• Home
  • News
  • Blog
  • Releases
  • LLM history
  • Compare LLMs
  • Library
  • About
⌘K
Sign in

A blog and notes on development. The easiest way to reach me is via the social links below.

Contacts
talalaev.misha@gmail.com
Documents
Personal data processing policyPersonal data processing consent

CORS Chat turns the browser into a console for local LLMs

Sh0ny
Sh0ny
16 августа 2026
  1. Home
  2. Blog
  3. CORS Chat turns the browser into a console for local LLMs
2 min read

In short

CORS Chat lets you connect from the browser to compatible OpenAI Responses APIs, including local servers in LM Studio. Its main advantage is quickly testing different models without a separate interface — but only if the endpoint allows CORS.

The most useful thing about CORS Chat is not another window for talking to a model but the ability to test local and third-party LLMs straight from the browser. No separate backend is needed for such a test: an endpoint compatible with the OpenAI Responses API and configured for CORS is enough.

Simon Willison built the tool to run Qwen 3.8 27B in LM Studio on an M5 MacBook Pro and an NVIDIA DGX Spark. He tested the pairing with LM Studio through the --cors option, and with OpenRouter as well — both worked.

In the interface you can set your own headers and save several chats with different models and reasoning settings. History stays in the browser, and a conversation can be exported as JSON with an ordinary copy. For a developer that is more convenient than writing a throwaway script each time or wiring up a heavy UI.

There is a small but telling detail: if the model generates SVG, CORS Chat renders it progressively while the tokens are still arriving. That captures the tool's idea nicely: it is needed not only for the final answer but for watching how an endpoint behaves during streaming.

But the filter here is strict. The endpoint has to support the OpenAI Responses-compatible format specifically and to permit requests from the browser through CORS. If a server does not return the required headers or uses an incompatible API, CORS Chat will not get round the problem. Besides, conversations are stored locally in the browser, so they do not move between devices automatically — exporting JSON by hand is what remains.

For local models this looks like a good compromise: minimal infrastructure, quick access to different settings and the ability to compare endpoints in practice. But CORS turns from a convenient setting into the main criterion of compatibility: is your server ready to talk to a browser directly at all?

Source: Simon Willison's Weblog

новостиaillmразработка
More AI-tool write-ups on the Telegram channel — short and to the point
Subscribe on Telegram

Comments

(0)
​