LearnHarness is a free, open-source AI tutor app that measures what you know, plans a lesson, teaches it, and drills you, backed by a persistent knowledge graph.
Vamsi Tallapudi
Manager, Architect Technology at Cognizant
LearnHarness is a free, open-source desktop app that points an AI agent at exactly one job: figuring out what you don't understand, then teaching you that specific gap instead of a generic lesson. It's built by a Finnish developer who goes by Amos Blomqvist (real name Eero Alvar) on GitHub, and it picked up roughly 1,500 stars in its first nine days after launching on October 17, 2026. That's a fast climb for a learning tool, and it's worth asking whether the hype matches what's actually in the repo.
I pulled it down, ran it through the standard setup, and poked at the knowledge graph it builds. Here's what it is, how to get it running, and where I think it's genuinely useful versus where it's still rough.
LearnHarness is an Electron-style desktop app (macOS Apple Silicon, Windows x64, Linux x64) that wraps an LLM in a four-step teaching loop instead of just answering your questions. You don't chat with it the way you'd chat with ChatGPT. You tell it what you want to learn, and it runs a structured process: measure what you already know, plan a path to the goal, teach that path one step at a time, then drill you on it later with fresh problems.
The project is AGPL-3.0 licensed, so the code is fully open and any hosted fork has to share its changes back. You bring your own API key from whichever provider you want, LearnHarness doesn't charge a subscription or mark up usage. The app ships with a live cost meter so you can watch exactly what each session is costing you in provider fees.
This is the part that separates LearnHarness from a flashcard app or a "explain this to me" chatbot prompt. The cycle has four distinct stages:
The "thinking fields" are the other piece that makes this different. Instead of multiple choice or a single right-answer box, you type or dictate your actual reasoning. The agent reads that reasoning and builds a model of your thought process, not just a tally of correct and incorrect answers.
Most AI study tools lose everything between sessions, you close the tab and whatever context existed is gone. LearnHarness keeps a persistent knowledge graph that stores propositions and reasoning chains, linked back to the sessions where you demonstrated them. The next time you open a related topic, the teaching and practice agents pull from that graph instead of starting cold.
In practice this means the system can notice that you already nailed the chain rule three weeks ago while studying calculus, and skip straight past it when a new lesson on backpropagation depends on it. That's a meaningfully different approach than storing a performance percentage per topic, which is what most spaced-repetition tools do.
Setup is refreshingly simple if you're used to wrangling Docker files for self-hosted tools:
git clone https://github.com/amosblomqvist/learnharness.git
cd learnharness
npm install
npm run dev # starts the dev server at localhost:3000
There's also npm test for a deterministic test suite that runs without hitting any LLM, which is a nice touch if you're forking the project and don't want to burn API credits just to check your changes didn't break anything.
Once it's running, you plug in an API key from whichever provider you want. The project claims support for 30+ provider options including OpenAI, Anthropic, Google, DeepSeek, and OpenRouter, and recent releases have added ChatGPT and GitHub Copilot sign-in without requiring a raw API key at all. Everything, your keys and your learning records, stays on your machine. Nothing routes through a LearnHarness-run server, though your prompts obviously still travel to whichever provider you picked.
The release cadence has been fast. It went from a 0.3.0 initial release on October 17 to 0.4.0 by October 29, shipping Claude Code integration, custom OpenAI-compatible endpoints, and drag-and-drop file references in under two weeks. That's either a sign of a motivated solo maintainer or a sign the 0.3.x line needed a lot of patching, and honestly it's probably both.
| LearnHarness | Generic chatbot ("teach me X") | Spaced-repetition flashcards | |
|---|---|---|---|
| Diagnoses your actual gaps | Yes, before teaching starts | No, assumes you asked the right question | No, just tracks recall accuracy |
| Builds on prior sessions | Persistent knowledge graph | No memory across chats by default | Tracks scores, not reasoning |
| Checks reasoning, not just answers | Yes, via thinking fields | Only if you prompt it to | No |
| Cost | Your provider's API rate, no markup | Your subscription or API rate | Usually free or one-time purchase |
| Setup effort | Clone repo, npm install, add a key | None | None |
The honest comparison is that LearnHarness isn't competing with flashcard apps on convenience, it's competing with the fifteen minutes you'd spend hand-writing a good tutoring prompt for Claude or GPT, except it does the measuring and planning for you and remembers it next time.
The measure-before-teach ordering is the best idea in the project. Most AI tutoring setups, including the ones I've hacked together with a system prompt, just start explaining. LearnHarness forces a diagnostic step first, and that alone fixes the most common failure mode of AI teaching: over-explaining things you already know while glossing over the one gap that actually matters.
The thinking fields are the second good idea. Typing out your reasoning instead of picking an answer is slower, and that's the point. It surfaces exactly where your logic breaks, which a four-option quiz never will.
And the fact that it's bring-your-own-key with a visible cost meter and editable system prompts means you're not locked into a black box. If you don't trust the default prompts, you can read and change them.
There are no published studies showing this actually improves retention better than, say, Anki plus a weekly tutoring session with a human. The marketing language around "adaptive teaching" is a claim, not a result, and I'd treat it that way until someone runs a real comparison.
Quality is also entirely dependent on which model you point it at. A diagnostic-then-teach loop is only as good as the model's ability to correctly judge whether your written reasoning is actually sound, and smaller or cheaper models will occasionally misjudge your understanding and either skip something you don't know or re-teach something you do.
Costs can add up faster than people expect, since every session involves multiple round trips (measure, then teach, then practice) rather than one prompt and one answer. The built-in cost meter helps you see this happening, but it won't stop it.
If you're learning something with clear prerequisite chains, calculus, a new programming language, electronics, this is a genuinely better structure than opening a chat window and typing "explain X to me." The four-stage loop and the persistent graph solve real problems with how people currently use LLMs to study.
I wouldn't trust it yet as a replacement for a real curriculum on something high-stakes, and I'd keep an eye on your provider bill for the first week to see what a typical session actually costs you. But for a side project you're teaching yourself on weekends, it's worth the ten minutes it takes to clone it and plug in a key.
If you're comparing it against other open-source agent projects, our breakdowns of Muse Spark and the top AI tools of 2026 cover similar bring-your-own-key tooling. And if the per-session cost meter has you wondering how this stacks up against paying for a hosted assistant, see our piece on Claude Code usage limits and cost.
New AI tools, automation workflows, and course drops — straight to your inbox. Join 2,400+ builders.
Apple blocked eMudhra's hacked CA certs in Safari on Oct 19, but git, curl and python3 on macOS still trust them. Here's how to check and fix it yourself.
Gemini 4 Carbon tops benchmarks at 59 on Artificial Analysis, costs $2/$10 per 1M tokens, but is locked to Google's Fairwind cyber-defender program. Here's what it means for coding.
Ghostty 1.4 cuts terminal memory up to 90%, adds full Kitty graphics with animation, a built-in ghostty +ssh wrapper, and better Claude Code support.
Comments