Ollama, LM Studio, Groq and Friends: OpenAI-compatible Servers in AICoven
A surprising amount of the AI world has agreed on one thing: the shape of OpenAI's chat API. Ollama speaks it, as do LM Studio, a bare llama.cpp server, vLLM, Groq and DeepSeek. Until now AICoven had no honest place for them. Mac Detect used to save LM Studio and Ollama as Hermes, which they are not, and their turns failed waiting for an agent run that was never coming. They now have their own provider type: OpenAI-compatible server.
The routing post covers where turns go. This one covers connecting these servers, what "local" means for them, and what they cost.
Available in AICoven 3.1.0, out next week.
One row, many servers
In Add AI Connection…, the picker has a single row, "OpenAI-compatible server". These servers are one transport with different addresses, and a row per vendor would mostly be a row per default port.
The form opens on a Server menu of presets: Ollama, LM Studio, llama.cpp, vLLM and LiteLLM on your own hardware; Groq, DeepSeek, xAI, Together AI and Fireworks AI hosted; or Other. Picking one fills the Address, which you can still change. The API key is optional for a local server, because Ollama doesn't ask for one, and required for the hosted presets, because Groq very much does.
There is also a Tool calling switch, on by default, with the most practical footer in the form: "Turn this off if the server writes tool calls into its replies instead of running them. Agents on it then answer without tools."
Finding the one already on your Mac
On a Mac, the Add sheet has a section called "Local servers on this Mac". Detect checks a short list of known ports on 127.0.0.1, which includes LM Studio on 1234 and Ollama on 11434. Connect on a card pre-fills the form, and AICoven checks the server before saving.
Detect doesn't scan every port; that would be a port scan with better manners. If your server runs elsewhere, say llama.cpp on 8080, type it into the Server field, choose Check, name it, and pick what to Connect as. "OpenAI-compatible server" is the default. Detect is Mac-only; on iPhone and iPad you type the address into the form.
Local is decided by the address
Locality is decided per account, from its address: Ollama on your laptop and Groq in a data centre are the same provider type. A loopback or private address is reached through the AICoven app on your Mac. A public one is reached directly, and has to be https.
A local server gets at least three minutes for its first token, because a cold model loads from disk before it says anything. A local account shows a live status in AI connections, such as "Mac offline", "Server not running" or "Model unloaded". And agents can only use models the server's own /v1/models lists.
What it costs
Usage from a local server is recorded as local, with no provider charge, and Usage labels it "Local runtime". The electricity is between you and your utility company.
Groq and DeepSeek do bill you, but one provider type covers all of them and AICoven has no price list per endpoint, so their usage is recorded with an unknown cost and Usage shows "Cost unavailable". I would rather show that than a confident number borrowed from somebody else's model. With Stop new requests on for this provider in Budgets, AICoven can't verify the cap once hosted usage exists that month, so it stops those turns rather than guess. Local usage doesn't block it.
OpenRouter is not one of these
OpenRouter speaks the same API, and it is not in that Server menu. It has its own row in the picker, because it is a hosted service with its own sign-in and its own catalogue. Choose Sign in with OpenRouter, which creates a key on your OpenRouter account and connects it, or paste a key you already have. AICoven lists only the OpenRouter models that accept tools, since every AICoven turn carries them.
When you remove it, the confirmation says the part people forget: "AICoven deletes its copy of the key; the key stays active in your OpenRouter account until you delete it there."
If yours was saved as Hermes
Nothing retypes an old account behind your back. Open it, and under Server type choose "This Is an OpenAI-compatible Server…". AICoven reads the server's models first and changes nothing unless the server answers. The address and key stay, and the way back is in the same place.
What this does not mean
- "Local" means your hardware serves the model, not that the turn stays on your Mac. It still goes through AICoven's API for threading, memory, tools and continuity, with your content encrypted, as in the middleman post. From your iPhone, a server on your Mac answers only while the Mac app is connected.
- It isn't an agent runtime. AICoven runs the agent loop around these servers, as it does for a cloud provider. There are no agent runs or approvals on the server's side; that is still Hermes and OpenClaw.
- Small local models and tools don't always get along. Some write a tool call into the reply as text instead of making it. That is what the switch is for, and an agent with tools off can't reach memory or connected apps. A small model on a laptop is a fine thing to own, and not a frontier model.
- Voice transcription doesn't run on these connections, or on OpenRouter.
Related posts
One Coven per Client: Keeping Accounts, Subscriptions and Repos Apart
My agent opened feature branches in repos that had nothing to do with the feature. With several clients, that's one mistake in three places: whose AI account pays, whose apps get touched, and whose repos get written to. Here's how one coven per client keeps them apart.
Read →A Quieter AICoven, and a Shelf for the Work
The app has been redone around eight plain jobs, and each coven now has an Asset Library: the files, datasets, and images your agents and you make, reviewed, approved, and sent where they need to go.
Read →
About the Author
I'm Andreea, the creator of AICoven. I build local-first tools for developers who care about architecture, privacy, and prompt economics.
See more of my work at papillonmakes.tech →