Privacy-aware LLM routing: sensitive content stays local; redacted content may go to cloud.
Project description
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 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ogentic_router-0.1.0.tar.gz.
File metadata
- Download URL: ogentic_router-0.1.0.tar.gz
- Upload date:
- Size: 157.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d6bb656c9da13e12dcd57b4d35e3938c3a45fd5e9eee6e1ddc79031f900b377
|
|
| MD5 |
f1e515bc5b89b7fada7fe25a7fc8a63a
|
|
| BLAKE2b-256 |
15549157885e32249bc9bacb67b9c5b7112e75cfd279b2f651a1c42f64a0987e
|
File details
Details for the file ogentic_router-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ogentic_router-0.1.0-py3-none-any.whl
- Upload date:
- Size: 58.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de02e18a7f356a257e64f4de3b794eb060b6ba14165eafeb3c235253f5688b50
|
|
| MD5 |
3fc82a7cb6de673e18956553f199874b
|
|
| BLAKE2b-256 |
9ef91346461aada4503a444a1bd4e84548b11db80ba8408864df6fd94bd5b4a0
|