llama.cpp and MLX
Metal-accelerated inference built into the app. No Python, no terminal, no second app to install.
Free on the App Store · Download for Mac
Chat with OpenAI, Claude, Gemini, Mistral, Groq and 19 more providers using API keys that never leave your Keychain — or download a model and keep chatting with the network switched off.
24 ways to connect
Cloud providers, a server on your own network, or a model running on the device in your hand. Switch between them inside a single conversation.
Bring your own keys
Use the API key you already have. It goes straight into the iOS or macOS Keychain, and every request goes from your device to the provider you picked. There is no account to create and no server of ours in the path — because we do not run one.
On-device
Search Hugging Face from inside the app, download a GGUF file, and chat with it in airplane mode. Nothing is sent anywhere, and there is nothing to pay per token.
Every GGUF file in the browser carries an estimated memory footprint for your device and a plain verdict: fits, tight, or too large. Big models split across several files are shown as one download and re-joined for you.
Context length is yours to choose, from 2K up to 256K tokens — capped automatically at whatever the model was actually trained for.
See what runs on your device →
Metal-accelerated inference built into the app. No Python, no terminal, no second app to install.
On a device that supports it, Apple's own on-device model shows up as one more provider in the list.
Ollama, LM Studio or a llama.cpp server on the same Wi-Fi — plain HTTP, no key, no round trip to the internet.
Beautiful answers
Headings, tables, lists, quotes and links appear live, in the same view the finished reply stays in. Code blocks come highlighted in about 190 languages with a copy button on top.
iPhone · iPad · Mac
One free download covers all three. Conversations move between them with a JSON export — there is no account to sync them for you, and that is the point.
Made for the Mac, not ported to it
A native split-view window, a quick chat in the menu bar, and an HTML preview panel that renders a generated page next to the conversation. Then the part developers keep asking for.
The Mac app can expose every provider you have configured — cloud, LAN or
on-device — behind an OpenAI-compatible /v1/chat/completions endpoint
and an Anthropic-compatible /v1/messages endpoint. Which means
Claude Code can talk to it directly:
# Settings → Server → start, then copy your access key export ANTHROPIC_BASE_URL=http://your-mac.local:42817 export ANTHROPIC_AUTH_TOKEN=lili-sk-… claude
The server never starts without an access key, only the key's SHA-256 digest is stored, and it listens on loopback unless you deliberately share it with your local network.
A signed, notarised .dmg for macOS 14 or later on Apple silicon. Open it and drag lili AI Router into Applications.
Privacy, stated plainly
There is no lili account, no lili backend and no sync service. Here is exactly where everything lives.
API keys are stored by the operating system, unlocked on this device only, never in a file we write.
Conversations are stored locally. Delete the app and they are gone — nothing is left behind on a server.
Export every session as plain JSON and import it back, on any of your devices. No lock-in.
The iPhone and iPad app is free and ad-supported, so Google's ad SDK is present there. The Mac app has no ads. The apps run no analytics; this website counts visits with Google Analytics.
The full detail, provider by provider, is in the privacy policy.
Why not just a subscription?
| lili AI Router | A typical AI chat subscription | |
|---|---|---|
| What you pay | The provider's API price, per token | A flat monthly fee whether you use it or not |
| Choice of model | 24 providers, switchable mid-chat | Whatever that vendor ships |
| Works offline | Yes — download a model and turn off Wi-Fi | No |
| Account required | None | Email, password, often a phone number |
| Where chats live | On your device | On the vendor's servers |
| Getting your data out | JSON export, any time | Varies, often partial |
Getting started
Free on the App Store for iPhone and iPad, or download the .dmg for your Mac.
Paste an API key into any provider's form, or skip that entirely and download an on-device model from Hugging Face.
Pick a model from the picker and type. Change your mind halfway through and hand the thread to a different one.
FAQ
Not necessarily. Cloud providers need their own key, which you get from them directly. But on-device models and servers on your own network (Ollama, LM Studio, llama.cpp) need no key at all, and Apple Intelligence needs nothing but a supported device.
Yes. The iPhone and iPad app is free and supported by ads. The Mac app has no ads. You pay your AI providers directly for what you use — we never sit between you and them.
Into the system Keychain on the device, marked as accessible only when the device is unlocked and never synced by us. Requests go straight from your device to the provider's endpoint.
Yes — that is the point of the on-device provider. Download a GGUF file from Hugging Face inside the app, then turn on airplane mode and keep chatting. Inference runs through llama.cpp and MLX with Metal acceleration.
It depends on how much memory your device has. Our model fit tool runs the same estimate the app uses and shows you what is comfortable, what is tight and what will not load.
Download the .dmg from the download page, open it, and drag lili AI Router into your Applications folder. It needs macOS 14 or later on an Apple silicon Mac (M1 or newer).
On the Mac, yes. Settings → Server starts an OpenAI-compatible and Anthropic-compatible HTTP server on port 42817, protected by an access key you generate. Set ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN and Claude Code talks to whichever model you selected — including one running locally on that Mac.
On your device, yes — with search, renaming, and titles generated automatically after the first exchange. Chain-of-thought from reasoning models is shown while it streams but never written to disk.
Export the sessions you choose as a single JSON file through the Files app, then import it elsewhere. Importing merges rather than overwriting.
iOS 17 or later on iPhone, iPadOS 17 or later on iPad, and macOS 14 or later on an Apple silicon Mac. Running models on-device wants as much memory as you can give it.
Yes. The custom provider takes any OpenAI-compatible base URL, with custom headers if your gateway needs them. Remote endpoints must be HTTPS; plain HTTP is allowed only for addresses on your local network.
No. It is written in SwiftUI for Apple platforms, which is what lets it use the Keychain, Metal and Apple Intelligence directly.
Free on iPhone and iPad from the App Store, and a direct download for your Mac.