Skip to content

Repository files navigation

bodhirax

A local-first studio for testing and comparing LLM prompts — free, runs on your machine.

demo

Why

You change a prompt or swap a model and behavior shifts. The usual way to check is running it a few times and eyeballing the output. bodhirax makes "did this get better or worse?" a repeatable, visual answer, without sending your prompts or API keys to anyone.

How it's different

Code-first (Promptfoo, DeepEval) SaaS (Confident AI, Braintrust) bodhirax
Visual UI No Yes Yes
Runs locally Partial No Yes
Free Yes No Yes
Data stays on your machine Yes No Yes
Works with local models Partial Partial Yes

Quickstart

Linux / macOS

git clone https://github.com/Kunal-Somani/bodhirax
cd bodhirax/backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app

In a second terminal:

cd bodhirax/frontend
npm install && npm run dev

Open http://localhost:3000

Windows (WSL)

Same as Linux / macOS — run inside a WSL terminal.

Docker

git clone https://github.com/Kunal-Somani/bodhirax
cd bodhirax
docker compose up

With local Ollama models: docker compose --profile ollama up

Open http://localhost:3000

Verified: Linux. macOS expected to work. Windows via WSL or Docker.

Architecture

graph LR
    U[You] --> UI[bodhirax UI]
    UI --> API[Local server]
    API --> ENG[Eval orchestrator]
    ENG --> LOCAL[Ollama · local models]
    ENG --> CLOUD[OpenAI / Anthropic / Groq / HF]
    ENG --> M[Metric engine]
    API --> DB[(SQLite · on your machine)]
Loading

Full internal architecture, data model, and route list: docs/architecture.md.

Metrics

  • exact — does the output match the expected string, after normalizing case and whitespace.
  • fuzzy — Levenshtein similarity, tolerates small wording differences.
  • embedding — local sentence-embedding cosine similarity, for "means the same thing."
  • llm_judge — a model scores the output 1–5 against a rubric. The only metric that costs inference.

Full methodology and the LLM-judge bias notes: docs/metrics.md.

Providers

Ollama (free, local), OpenAI, Anthropic, Groq. Keys are stored locally and never logged or returned by the API.

Hugging Face (experimental — classic Inference API; verify model availability)

Setup for each: docs/providers.md.

Contributing

CONTRIBUTING.md covers dev setup, code rules, and how to add a provider or metric — both are deliberately one file each.

Security

Local-first by design: the backend binds to 127.0.0.1, and nothing leaves your machine except a request to the specific provider you configured. Details and how to report a vulnerability: SECURITY.md.

License

MIT

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages