Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>diff-tutorNew to Visual Studio Code? Get it now.
diff-tutor

diff-tutor

kitcat-lab

|
3 installs
| (0) | Free
A cat teaches you to code by quizzing you on your own changes while you still remember making them. One click, four answers, instant feedback.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

diff-tutor for VS Code

A cat who teaches you to code by asking about the changes you just made, while you still remember making them.

diff-tutor updated interface: chat, quiz and planner

Three things it does

Quiz (Ctrl+Shift+Q). A few seconds after you change something, a panel asks what the change does, with four answers as buttons. One click, and it tells you whether you were right and why. The changed lines appear zoomed in right below the question, and the full diff sits underneath.

Quiz panel with the cat asking about a code change

Chat (Ctrl+Alt+M). An open conversation with the cat about whatever is on your mind. It carries context from the file you have open, so the questions can be about the code on screen. The cat answers in character.

Choose whether to attach selected code, the whole file, or no code. The chat also keeps each tutor and subject conversation separate, and gives you clear, cancel, and model-setup controls right in the panel.

Chat panel with Mochi

Plan (command palette). Design a project architecture by dropping components into layers, then ask the cat what it thinks. It gives an honest review: what works, what is risky, and what is missing. Press "Build it" to generate a starter project. Instead of dumping all the files at once, the cat walks you through each one with a question about its role in the architecture, so you understand the project before you start working in it.

Plans stay as separate drafts for each subject. Generated files are validated first and are only created in an empty destination, so existing work is never overwritten.

Plan panel with coding components

Plan panel with data science components

Two cats

Mochi is a calico with glasses who teaches in English. She is patient, encouraging, and occasionally purrs.

Manu is a tuxedo who teaches in European Portuguese. He is mellow, easily distracted by cozy things, and his code is always precise despite the sunbeam he is planning to nap in.

Switch between them in the Chat or Plan panels, or in the settings.

What it needs

Git, and a repository open in the window. That is the whole hard requirement.

It also needs a model, and it looks for one in this order:

  1. The editor's own, such as a GitHub Copilot subscription. Nothing to configure and nothing extra to pay for. If you have Copilot, you are done.
  2. A key of your own, kept by the editor in the operating system's credential store rather than in a file. Set it with the command diff-tutor: Set the API key, and point diff-tutor.baseUrl and diff-tutor.model at whichever provider it belongs to.
  3. A local runner such as Ollama, which needs no key at all. Point the base URL at it and the key is skipped.

With none of those, the extension says so and offers the way in, rather than sending a request that can only fail.

What the quiz does not do

It never shows a list. If you missed the last twenty questions, those are gone, not waiting. A checkpoint older than an hour is never asked about, because by then the reason you made the change has left your head.

It also stays quiet about changes smaller than four lines. A one-line tweak carries no lesson, and asking about one teaches you that these notifications are noise.

Settings

Setting What it does
diff-tutor.tutor mochi teaches in English, manu in European Portuguese.
diff-tutor.subject code for general programming, data for data science and analytics.
diff-tutor.useEditorModel Try the editor's model first. On by default.
diff-tutor.baseUrl The endpoint to use when the editor has no model to lend.
diff-tutor.model The model name at that endpoint.
diff-tutor.autoQuiz Turn automatic quiz prompts on or off.
diff-tutor.quizIntervalSeconds Minimum time between automatic quiz prompts.
diff-tutor.chatContext Attach selected code, the current file, or no code to chat.

Building it

npm install
npm run build

esbuild bundles everything into out/extension.js, including the prompt, the reply parser and the provider call, which are imported from the app's server/ folder rather than copied. Those three are where a second implementation would quietly drift: a prompt worded slightly differently produces worse wrong answers, and a parser that reads one format less loses the quiz without a word.

Then press F5 in VS Code with this folder open to launch a window with the extension loaded, or copy the folder into ~/.vscode/extensions.

Checking it works

npm run typecheck
node smoke.cjs

The tests cover the decisions; smoke.cjs covers the wiring, by loading the built bundle with a stand-in for the editor and activating it against this repository.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft