Skip to content

About

A local-first learning app. The tutor won't give you the answer until you've tried.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

457 Commits

Folders and files

Adaptive Academy

License: Apache 2.0

A learning app you run on your own machine. Give it something to learn and it finds sources and builds a study plan. Then it tutors you and keeps track of what you actually know.

The tutor won't give you the answer until you've tried. The code blocks the answer until then, so asking a different way doesn't help.

It runs on your own Anthropic API key, or an OpenRouter key. Your learning records stay on your computer, but each AI request is still sent to the model's provider.

See it

A one-minute walk through the demo: the dashboard, today's plan, a tutor session where the full answer only comes after an attempt, and the concept graph

This is the built-in demo topic. You can load it from the empty home page without an API key. Your first hour walks you through it. Click the animation for a sharper video.

The dashboard of the demo topic: progress, concepts, cards due, and each concept's signals and verdict, beside a calibration plot Today's session: review, build, probe the weakest concept, teach it back
Dashboard: one topic at a glance. Today: what to do next, based on where you are.
A tutor conversation where the tutor asks questions until the learner makes an attempt The concept graph, with stars coloured by how well each concept is known
Tutor: hints and questions until you press Submit attempt, then the worked solution. (This one is a saved demo conversation. Browsing your past sessions is planned.) Constellation: your concepts as a graph.
The knowledge map, showing why one concept is shaky and another is solid The Usage page: spend by day, feature, and model, with a daily limit
Why this verdict: what each concept's rating is based on, and what would raise it. Usage: what each feature costs. The demo makes no AI calls, so these numbers are based on a real test run.

There's also a phone layout.

What it does

  • Builds a study plan for a topic, or for a longer goal split into milestones.
  • Tutors you with questions and hints until you submit an attempt of your own (the app checks that it has some reasoning in it).
  • Checks what you know in several ways: explaining it in your own words, recalling it days later, how sure you were, teaching it back, and things you build. A concept counts as solid only when these agree.
  • Lets you practise under pressure: defend your ideas to a generated persona (a skeptical buyer, a thesis committee), or answer questions about a real paper.
  • Tracks your momentum without punishing breaks.
  • Reads your Obsidian notes and writes notes back, including a notebook per concept: your own notes, attempts, graded explanations, and worked solutions.
  • Remembers what you've read and what it already explained, so it doesn't repeat itself.
  • Shows what each agent did and what each call cost.

How good is the grading?

Grades decide what the app thinks you know, so they are tested. A set of 55 hand-written answers about gradient descent, backpropagation, Bayes' theorem, maximum likelihood, and L2 regularization covers correct answers in other wording, answers missing a key idea, common misconceptions, confident wrong answers, and answers that try to talk the grader into a high score.

With the default model and settings, no weak answer was graded as mastered (0 of 34), and 1 good answer of 52 was marked as missing something it had. You can make the grader more or less strict with AA_GRADING_STRICTNESS. The numbers for each level, and how to run the test yourself, are in evals/grading.

Get started

With Docker

You need Docker or OrbStack, and just.

cp .env.example .env   # then set ANTHROPIC_API_KEY=sk-ant-... in .env
just up

Open http://localhost:8000. just logs shows the logs and just down stops it.

Without Docker

You need uv, Node.js 22.12+ (or 20.19+), and just.

just setup   # installs everything and creates .env; then set your key in .env
just dev     # starts the app; Ctrl-C stops it

Open http://localhost:5173.

To use an OpenRouter key instead, set AA_LLM_BACKEND=openrouter and OPENROUTER_API_KEY in .env. Claude models are the default there. Other models, such as DeepSeek, work but are marked experimental.

Either way, Your first hour is a good place to start. For everything else (OpenRouter, vault setup, Linux file ownership, ports, models, offline use), see docs/SETUP.md.

Cost and privacy

Several agents work together, so it uses more tokens than a single chatbot. In measured runs, starting a new topic (research, curriculum, a few tutor turns, a grade) cost about a dollar on Claude Sonnet 5.5 and about 20 cents on DeepSeek V4.1 Flash through OpenRouter. Most of that is the web research. A tutor turn costs about a cent. A busy day can reach a few dollars.

The Usage page shows what you've spent each day, and on which features and models. To set a daily limit, add AA_DAILY_BUDGET_USD=5 to .env. Details and limits of that cap are in docs/COSTS.md.

Your records are stored on your machine. There's no account and no telemetry. The content of each AI request does go to Anthropic's API, or through OpenRouter to the model's provider if you use OpenRouter. On OpenRouter the app asks only for providers that don't train on your prompts; that isn't the same as not storing them. The app also fetches the web pages and papers you give it.

Back up and restore your data

Everything is one SQLite file. Open Your data in the sidebar to download a backup, or run just backup. Restoring is covered in docs/BACKUP.md.

How it's built

The back end is Python and FastAPI, with SQLite for storage and the Anthropic SDK for model calls. The front end is SvelteKit.

Each feature started as a written design and a step-by-step plan before any code. Those documents are in the repo, and they explain the reasoning better than the code does:

Contributing

It's early (pre-1.0), so expect rough edges. Issues and pull requests are welcome. See CONTRIBUTING.md for how to run the tests, and ROADMAP.md for what's planned. Please read the Code of Conduct and the security policy too.

License

Apache 2.0 © 2026 Thomas Sullivan

About

A local-first learning app. The tutor won't give you the answer until you've tried.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages