Learn English with a little light.

An open-source tutor for A1 to C2. It runs on your own computer, and your voice never leaves it.

What Lumingo does

  1. Four skills, not one

    Every unit trains all four, and each gets its own estimate. A single score would hide which one is holding you back.

    • Listening62

    • Speaking48

    • Reading71

    • Writing55

  2. Your voice stays here

    One Rust program owns the microphone, the speakers and the models, and serves the interface on the loopback address. There is no account and no analytics.

    Stays here

    • Mic
    • Recordings
    • Models

    Leaves

    • Text
  3. Text is the only thing that leaves

    And only to the AI provider you choose, with your own key. Bring any OpenAI- or Anthropic-compatible endpoint, or point it at a model on the same machine.

    Endpoint
    https://api.anthropic.com/v1
    Key
    stored locally
  4. Estimates, not a verdict

    Levels are computed here, from work you actually did, and always labelled as estimates — with a confidence and the evidence behind them.

    EstimateB1

    Confidence: medium · 12 attempts

The screens

Frames from the project's own demo video, not live screenshots.

  • The assessment screen: A1 to C2 level chips above listening, speaking, reading and writing, each with an empty meter, an "Estimate" badge and a note that there is not enough evidence yet.
    The assessment screen
  • An activity: the prompt "At 8 p.m., to your teacher: ___" with three answers below it, "Good evening." selected, under a strip showing the streak, the gems, the glow rank and the rest days.
    A fill-in-the-blank activity
  • A checklist headed "What stays on your machine": three ticked items — your voice stays on your device; your name, device information and usage statistics never leave this computer; and it runs on your own computer and opens in your browser.
    The privacy checklist

Questions

  • What does it cost?

    Nothing to buy: the code is Apache-2.0, and there is no project backend, no account and no analytics. Text goes to your own provider, on your own key.

  • Does it need an internet connection?

    Not for the app itself: there is no project backend, no analytics and no update check. Tutor replies come from your provider, so those need one unless it is a model on the same machine.

  • What hardware does it need?

    8 GB of RAM, 4 threads, CPU only, no GPU. That is a stated floor, not a benchmark: nothing in the repository has been measured yet.

  • Which AI providers does it work with?

    Any OpenAI-compatible or Anthropic-compatible endpoint; you supply the base URL, model and key. cargo run -p tutor-cli -- probe checks auth, streaming and structured output.

  • Does it run on Windows, Linux and macOS?

    Windows 11 is the development and release target, and the repository also builds on Linux, where the audio and speech pieces cannot be tested. macOS is not claimed anywhere.

  • Is my voice recorded or uploaded?

    No. Audio never reaches the browser or the network, and raw audio is kept only if you switch recordings on in Settings. Text is the only thing that leaves.

  • Is it finished?

    No. Home, setup, progress and settings are routed; the quest map, chat, reading and writing exist as components and are not routed yet, and no speech model can be downloaded yet.

Get started

Early development

Rust 1.97.0, pnpm with Node 22 or newer, and 8 GB of RAM with 4 threads — CPU only, no GPU.

  1. 1Provider

    cp .env.example .env

    Fill in the four values. On Windows, use Copy-Item .env.example .env.

  2. 2Build

    pnpm --dir apps/web install
    pnpm --dir apps/web build
    cargo build --release -p tutor-server

    The interface first: the server embeds it.

  3. 3Run

    cargo run --release -p tutor-server

    It opens http://127.0.0.1:8765; the first run is a setup wizard.

Lumingo

Open source, offline, about 8 GB of RAM.