Data stays home
Prompts, documents and answers never leave your machines. Run it on a laptop, a GPU box or a cluster — or with no internet at all.
Your own private AI server: chat, vision, speech and embedding models on your own hardware, behind the API your software already speaks. Nothing leaves your network.
from openai import OpenAI
client = OpenAI(
base_url="https://ai.example.internal:12443/v1",
api_key="ofai_sk_…",
)
reply = client.chat.completions.create(
model="ollama/qwen2.5/7b",
messages=[{"role": "user",
"content": "Summarise this contract."}],
)
print(reply.choices[0].message.content)
One program that serves every kind of model through the API your tools already use, with the controls a business needs — on a laptop, a GPU box, a cluster, or a network with no internet at all.
Prompts, documents and answers never leave your machines. Run it on a laptop, a GPU box or a cluster — or with no internet at all.
OpenAI's API by default, plus Ollama's and Anthropic's. Existing tools, SDKs and apps work by changing one URL.
A built-in library of open-weight models, any GGUF file and Ollama models; NVIDIA GPUs through CUDA, any GPU through Vulkan, or plain CPU — one worker per GPU.
API keys and quotas, single sign-on, a signed audit log, metrics and traces, a Windows service and Linux packages.
Each capability runs in its own supervised worker process: a crash restarts the worker, not the server, and requests in flight are accounted for exactly.
Streaming chat with tool calls, JSON and JSON-schema output, log-probabilities and several choices per request; the Responses API with stored conversations and background runs.
Send photos, receipts and screenshots with your prompt. Images are decoded on the server itself, and the server never fetches a URL on a caller's behalf.
Vectors for search and retrieval, and rerankers that put the right documents first — the building blocks of private document search.
Transcription and translation with timestamps, streamed results, and live transcription over a WebSocket with voice-activity detection and live captions.
Natural voices streamed as they are spoken, in WAV, FLAC or raw PCM.
Guard models (Llama Guard 3, IBM Granite Guardian) score text — and a vision model screens images — in OpenAI's moderation format.
OpenAI's Batch API for large jobs: durable across restarts, every line answered once.
Several GPUs in one machine, or other machines joined as remote workers over mutual TLS. Requests go where the model is already loaded.
About a hundred open-weight models in the console, each with its size, licence and source. Filter by what fits your GPU and download with one click — it works offline.
OfflinAI Server speaks OpenAI's API as its default contract, so OpenAI's SDKs and the tools built on them work by pointing them at your server. It also answers Ollama's API and Anthropic's Messages API, exports traces over OpenTelemetry, and joins the caller's W3C trace.
/v1/chat/completions /v1/responses /v1/embeddings/v1/audio/transcriptions /v1/audio/speech/v1/moderations /v1/rerank /v1/batches/api/* Ollama /v1/messages Anthropiccurl https://ai.example.internal:12443/v1/audio/transcriptions \
-H "Authorization: Bearer $OAS_KEY" \
-F file=@meeting.m4a -F model=whisper-1 \
-F response_format=verbose_json
curl https://ai.example.internal:12443/v1/embeddings \
-H "Authorization: Bearer $OAS_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"nomic-embed-text","input":["first","second"]}'
A web console in 17 languages, and every control your security team will ask about.
API keys scoped to endpoints and models, with request and token limits, daily and monthly quotas, network restrictions and budgets per project. Exact usage from the engines' own counts.
Organisations, projects and users with roles; sign-in with Microsoft Entra ID, Google, Okta or any OpenID provider.
Every administrative action in a signed, hash-chained log you can verify, forwarded as it happens to your SIEM over syslog or HTTPS.
Mask or block personal data — emails, phone numbers, card numbers, IBANs and your own patterns — in requests and replies, and have a guard model read them.
HTTPS for other machines with a built-in certificate authority, your own certificates or automatic ones (ACME), and client certificates for mutual TLS.
Prometheus metrics, OpenTelemetry request traces, daily log files and a live console view of what every worker is doing.
Activate online, or carry a licence request to a connected machine and back: the server never needs to call home.
Generated speech carries metadata that says it is AI-generated, and every generated answer says so in a response header — as the EU AI Act asks.
A 64-bit Intel or AMD (x86-64) Windows or Linux machine is all it needs. Memory decides which models fit: small models run on a laptop, large ones want a GPU with plenty of memory, or several.
A Windows service that starts with the machine, or a tray app for one person.
Debian and RPM packages with hardened systemd units.
The image offlinai/offlinai-server on Docker Hub.
A Helm chart for Kubernetes clusters, and private registries welcome.
OfflinAI Server is coming to the Microsoft Store as a free download for Windows.
It is in Microsoft Store certification now. We will link it here when it is published.
Coming soon to the Microsoft Store
Notepad, Docs, Sheets, Slides, Chat, Translate, Dictation, Mail, Tasks and more: small Windows apps that get their AI from OfflinAI Server on the same PC.
Plans differ in what the server does around the models: serving other machines, keys and users, single sign-on, policies and audit. Prices are per server, not per seat.
Every licensed server carries the complete administrator and developer guide for its own version, in the web console under Guide, in the console's language.
Evaluating for your organisation? Request early access and we will share the guide with your team.
The Free plan runs from the image on Docker Hub. With Docker on Windows, macOS or Linux, it serves programs on that computer.
Image: offlinai/offlinai-server. Serving other machines over HTTPS (port 12443) needs a licence that includes it. Using it means accepting the OfflinAI Server Licence.
Want a chat page for your office on top? Follow the OfflinAI Server + Open WebUI recipe: a private ChatGPT with document questions in about 15 minutes.
# Start the server (models and settings live in the volume)
docker run -d --name oas -p 127.0.0.1:12436:12436 \
-v oas-data:/data offlinai/offlinai-server
# Set the console's password in your browser
http://127.0.0.1:12436/console/
# Any OpenAI client: base URL http://127.0.0.1:12436/v1
No. Once your models are downloaded the server runs entirely offline. Licences can be activated online, or offline for air-gapped sites: you carry a small request file to any connected machine and bring the signed licence back.
Any GGUF model, the models of an existing Ollama store, and the server's built-in library of about a hundred open-weight models, which works offline, with a search of Hugging Face for the rest — chat and vision models, embedding models, rerankers, guard models, Whisper speech models and text-to-speech models. Every plan runs any model.
A 64-bit Intel or AMD (x86-64) Windows or Linux machine; Windows on ARM and ARM Linux aren't supported yet. NVIDIA GPUs run through CUDA and other GPUs through Vulkan; without a GPU the server runs on the CPU. Memory decides which models fit: small models run on a laptop, large ones want a GPU with plenty of memory or several GPUs.
Yes — set the SDK's base URL to your server and use one of its API keys. The differences from OpenAI's own service are listed in the documentation: for example, speech comes back as WAV, FLAC or PCM rather than MP3.
Never your prompts, documents or outputs. The Free plan sends nothing. A paid plan activates and refreshes its licence with our licence service, sending the licence key, a pseudonymous identifier of the machine, its host name, its operating system and the server's version; a server without internet access uses an offline licence file instead.
In Docker Desktop, yes: the Free plan's container runs on a Mac and serves programs on it, on the CPU (containers on a Mac can't use its GPU; on Apple silicon Docker runs the image through emulation, so it is slower). There is no native macOS version yet: for a GPU, run the server on Windows or Linux.
OfflinAI Server is in early access. Tell us where you'd like to run it and we'll be in touch with a licence and the packages for your platform.
Where would you like to run OfflinAI Server, and for what? We will be in touch by email.