Open source · MIT license

The observatory at the edge of your AI universe —
nothing escapes undetected.

A lightweight proxy that sits between your app and any LLM provider. Every request scored, every hallucination flagged, every cost tracked — in real time, with zero changes to your model calls.

# clone and start in under 60 seconds
$ git clone https://github.com/VigneshReddy-afk/ajah
$ cd ajah
$ cp .env.example .env && docker-compose up -d
 
# point your app at the gateway
$ OPENAI_BASE_URL=http://localhost:8080/openai/v1

Everything your AI stack needs to ship safely

Drop-in proxy, no SDK changes. Plug in once, observe everything.

Gateway proxy

OpenAI-compatible endpoint. Route any provider — OpenAI, Anthropic, Groq, Gemini, Grok, Mistral, Together, NVIDIA, Cohere — through a single base URL.

RAG verification

Automatically compares every response against your source documents. Flags contradictions, unsupported claims, and grounding failures before they reach users.

Hallucination flagging

ML scorer evaluates every response for hallucination risk and grounding quality. Cross-model verification adds a second opinion from a configurable secondary LLM.

Agent session tracing

Track multi-turn agent sessions end-to-end. Group traces by session ID, visualise decision chains, and replay any request on the dashboard.

Cost attribution

Token usage and USD cost broken down per feature, per model, per day. Set per-feature alert thresholds and receive webhook notifications when budgets are exceeded.

PII masking

Detect and redact personally identifiable information in prompts before they leave your infrastructure. Configurable per feature, zero latency overhead.

Three steps, zero friction

1

Point your app at Ajah

Change OPENAI_BASE_URL to localhost:8080. The gateway forwards every request to the real provider — your existing code is untouched.

2

Ajah scores in the background

Every response is asynchronously evaluated: hallucination risk, RAG grounding, PII detection, cross-model agreement. No added latency on the hot path.

3

Observe on the dashboard

Open localhost:3000 to see traces, warnings, costs, and session replays. Configure thresholds and webhook alerts per feature.

One line to wire it up

Set the base URL and send your first request. Works with any OpenAI-compatible client — Python, Node, Go, curl. Pass X-Feature-Name to enable per-feature controls.

openai/v1 anthropic groq/openai/v1 together nvidia/v1 cohere/v1
example.py
from openai import OpenAI

# only change: point base_url at ajah
client = OpenAI(
    api_key="your-openai-key",
    base_url="http://localhost:8080/openai/v1",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{
        "role": "user",
        "content": "What is the capital of France?",
    }],
    extra_headers={
        "X-Feature-Name": "fact-check",
        "X-Session-ID": "user-session-42",
    },
)

# response is identical — ajah scores async
print(response.choices[0].message.content)

Works with every major provider

OpenAI Anthropic Groq Google Gemini xAI Grok Mistral Together AI NVIDIA NIM Cohere

Your AI infrastructure.
Under your control.

Open source, self-hosted, MIT licensed. No data leaves your network.