Open source · runs on 127.0.0.1

Tell Mivra what you want to learn. It interviews you, writes a syllabus, and teaches each topic with traces, diagrams and checks you can step through, graded by code on your own machine.

Bring one API key: OpenRouter, Anthropic or OpenAI.

Algorithms · Lesson 3 Binary search

Find 31 in a sorted array

3 0
8 1
12 2
17 3
21 4
26 5
31 6
38 7
44 8
52 9

A real algorithm_trace artifact. Use the arrows or your keyboard.

How a course works

A finite plan, rewritten by evidence.

Chat tutors never stop teaching. Mivra gives every goal a syllabus with an end, and lets your answers, not the model's mood, decide what changes.

  1. i.

    Placement interview

    A few questions about what you know and why you're here. Your goals and earlier practice carry over.

  2. ii.

    A syllabus with an end

    An ordered list of topics, one lesson each. Reaching the last one is what finishing means.

  3. iii.

    Lessons, just in time

    Each lesson is written when you reach it, section by section, so it can use what you just did.

  4. iv.

    Mistakes shape what's next

    Missed checks open the next lesson and can add a topic, always with the reason and an undo.

Syllabus · Neural networks from scratch

  1. Vectors and dot products
  2. Derivatives
  3. Chain rule refresher added
  4. Backpropagation
  5. Training a tiny MLP

Why it changed

“Added Chain rule refresher before Backpropagation: you missed 3 of 4 checks on derivatives.”

Six ways to see an idea

The model draws with tools, not adjectives.

Every artifact is a validated schema. Whatever is private, like a check's answer, stays on the server until you've answered.

Algorithm trace

Step through code one state at a time. Pointers move, cells change, every step is narrated.

algorithm_trace

Set diagram

Venn diagrams of up to three sets, with every region computed as its exact shape.

set_diagram

Graph

Trees and networks laid out by the browser, never by the model, so nothing jumps while you step.

graph

Check

Questions graded by code on your machine. One attempt, with feedback that explains the miss.

multiple_choice

Table

Truth tables and relation matrices as real tables. Changed cells persist as you step.

table

Worked steps

Proofs revealed line by line, so you can try the next step before you see it.

worked_steps

Try a check

In the worst case, how many comparisons does binary search need on 1,024 sorted items?

Local-first

Your notes, your mistakes, your machine.

Mivra is a small server and a web UI that live on your computer. The only thing that leaves is the conversation sent to the model you picked.

One SQLite file
Sessions, courses, attempts and memories live in ~/.mivra/mivra.db.
Loopback only
Binds to 127.0.0.1, needs a bearer token and refuses unknown hosts.
Memory you can edit
Goals and misconceptions the tutor saves show up in a panel. Change or delete any of them.
Documents stay home
PDFs and slides are read locally in a sandboxed process. Only relevant excerpts reach the model.

Questions

Good to know.

What does it cost?

Mivra is free and open source. You pay your model provider for what you use, through your own API key.

Does it run the AI model on my computer?

No. The server, your data and the grading run locally; replies come from OpenRouter, Anthropic or OpenAI. Local-first is about where your learning lives, so you don't need a GPU.

Which model does it use?

Out of the box, GPT-6 Luna at high effort, or Claude Sonnet 5.5 if you only have an Anthropic key. A picker under the message box switches to any model that can call tools, and sets the reasoning effort.

What can I learn with it?

Anything you can state as a goal. The interactive artifacts shine in computer science and maths: algorithms, sets, graphs, logic and proofs. You can also attach your own PDF or PowerPoint course material.

Can I use it from my phone?

Yes, through a private proxy such as tailscale serve. The server itself never listens beyond 127.0.0.1.

What do I need to install it?

Node.js 22.14 or newer and pnpm 10. SQLite ships prebuilt for Linux, macOS and Windows, so there's nothing to compile.

Get started

Four commands and a key.

Needs Node 22.14+ and pnpm 10. Open http://127.0.0.1:4096 when it's up.

git clone https://github.com/okhay-p/mivra && cd mivra
pnpm install
cp .env.example .env # add OPENROUTER_API_KEY
pnpm build && pnpm start