ogentic-router
Privacy-aware LLM routing. Sensitive content stays local; redacted content may go to cloud. Pairs with ogentic-shield for classification and ogentic-audit (coming) for tamper-evident evidence.
⚠️ Pre-alpha. The repo is scaffolded; v0.1 build is in flight. Track progress on the Linear project.
Thesis
Every "AI control plane" today (Merge Gateway, OpenRouter, Helicone, Portkey, LiteLLM proxy) routes on cost / latency / quality. None routes on content sensitivity. Result: the routing decision is made after the content has already left the user's machine — which structurally disqualifies these products for regulated content (legal privilege, PHI, MNPI).
ogentic-router inverts the architecture: the routing decision happens on the user's device, before the content leaves. The Shield classifier decides sensitivity → the router picks a backend → only the cleared payload crosses the network. Pairs with ogentic-audit to produce a court-defensible record of every routing decision.
This is the v0.1 promise. The library, not the service.
Architecture
┌──────────────────────────┐
│ Application code │ uses standard OpenAI / Anthropic SDK
└──────────────┬───────────┘
│ endpoint swap (drop-in)
▼
┌──────────────────────────┐
│ ogentic-router (local) │
│ 1. Shield.analyze │ classify input
│ 2. Policy engine │ sensitivity + intent → backend choice
│ 3. Adapter │ call the picked backend
│ 4. Audit emit │ ogentic-audit decision row
└──────────────┬───────────┘
│
┌───────────┼─────────────────┐
▼ ▼ ▼
Local LLM Cloud (cleared) Cloud (redacted)
Key invariant: Shield + Policy + Audit run in-process on the user's machine. The router is a library, not a hosted service. There is no Ogentic infrastructure that ever sees user content.
How it differs from SaaS gateways
| Dimension | OpenRouter / Merge Gateway / Portkey | ogentic-router |
|---|---|---|
| Architecture | SaaS reverse proxy | Local library |
| Routing axis | Cost / latency / quality | Sensitivity + cost / latency |
| Where the routing decision runs | Vendor servers | User's machine |
| Sensitive content path | Transits vendor + chosen provider | Never leaves user's device (local backend) |
| Audit log | Vendor-controlled | HMAC-chained, user-controlled, court-defensible |
| Local LLM support | Not first-class | First-class (llama.cpp / Ollama / MLX) |
| Trust model | Trust the vendor | Open source — verify the privacy claim |
v0.1 scope
- Pluggable Shield classifier (default:
ogentic-shield). - Pluggable backend adapters: OpenAI, Anthropic, Ollama, llama.cpp.
- Declarative policy:
if sensitivity ≥ N OR group ∈ {PRIVILEGE, PHI, MNPI} → local; else → cloud (with optional Shield.redact prefilter). - Endpoint-swap server:
localhost:NNNN/v1/chat/completions, drop-in for existing OpenAI/Anthropic SDKs. - Decision logging into
ogentic-audit. - Streaming + non-streaming.
- Python library + CLI + MCP tool surface.
Install (pre-alpha)
pip install ogentic-router # not yet published; coming with v0.1
For now, install from source:
git clone https://github.com/OgenticAI/ogentic-router
cd ogentic-router
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
Status
v0.1 milestone target: 2026-08-31. See the Linear project for tickets and progress.
License
Apache-2.0. See LICENSE.
Ecosystem
| Project | Purpose | Status |
|---|---|---|
ogentic-shield |
Privilege / PHI / MNPI detection | v0.2 shipped |
ogentic-audit |
HMAC-chained audit log | In flight |
ogentic-router |
Privacy-aware routing | Pre-alpha (this repo) |
sotto-desktop |
Privilege-protected desktop AI for regulated pros | v1 in flight |
Release files for ogentic-router 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ogentic_router-0.1.0.tar.gz | 157.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ogentic_router-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 215.8 kB
Release files / ogentic_router-0.1.0.tar.gz
| Download URL | ogentic_router-0.1.0.tar.gz |
|---|---|
| Size | 157.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d6bb656c9da13e12dcd57b4d35e3938c3a45fd5e9eee6e1ddc79031f900b377
|
|
BLAKE2b-256 checksum How to use checksums |
15549157885e32249bc9bacb67b9c5b7112e75cfd279b2f651a1c42f64a0987e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / ogentic_router-0.1.0-py3-none-any.whl
| Download URL | ogentic_router-0.1.0-py3-none-any.whl |
|---|---|
| Size | 58.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de02e18a7f356a257e64f4de3b794eb060b6ba14165eafeb3c235253f5688b50
|
|
BLAKE2b-256 checksum How to use checksums |
9ef91346461aada4503a444a1bd4e84548b11db80ba8408864df6fd94bd5b4a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|