Mati surfaces the load-bearing concepts inside your code and teaches them in place: dotted underlines on the exact constructs worth understanding, a hover card for why this matters here, and a streamed, four-section explanation in the sidebar when you want the full picture.
Mati is not a linter and not a fixer. It does not flag problems or rewrite your code. It teaches the concepts your code is already built on, so you understand the "why," not just the "what."

What it does
- Open a Python, JavaScript, or TypeScript file.
- Mati sends the file (and, when useful, the files it directly imports) to the Mati engine for analysis and underlines the concepts worth knowing.
- Hover an underline for a short "why now" card.
- Choose "Learn this" to stream a full explanation into the Mati sidebar.
Mati reads a file when you settle on it, not on every keystroke: the file has to be the one you are looking at, your edits have to pause for a few seconds, and the content has to have actually changed. Reads are capped at roughly one per file per 90 seconds, with an immediate read when you paste or an agent writes five or more lines into the file you are viewing. Whitespace and comment-only edits reuse the existing analysis for free, and "Mati: Read This File Now" forces a read whenever you want one.
Thin client for the Mati engine at mati.zonivan.com. The extraction prompt and concept catalog never ship in this extension; they stay server-side.
Supported languages
Python, JavaScript, and TypeScript (including JSX/TSX).
Signing in
Run "Mati: Sign In" from the command palette. Your browser opens mati.zonivan.com, which bounces straight back into VS Code and stores a token securely (VS Code SecretStorage). "Mati: Sign Out" clears it.
Known v1 limitation: the browser-to-VS-Code handoff needs the desktop app. On Remote-SSH or web IDEs, the deep link cannot reach the extension; get a token from your Mati account and use "Mati: Set Access Token" instead. A device-code flow is planned.
Settings
mati.apiBaseUrl: base URL of the Mati engine. Defaults tohttps://mati.zonivan.com. Point it athttp://localhost:3000to use a local Mati dev server instead.mati.analysisTrigger: when Mati re-reads a file. Defaults toattention, the settle-based policy described above: read the file once you settle on it, bounded to about one read per file per 90 seconds. Set it tolivefor the launch-era behavior, a 900ms keystroke debounce that reads as you type; this matches the Mati web app but costs more and reads half-finished code. The setting takes effect immediately, with no reload.
Privacy
While you're signed in, the open file and any files it directly imports are sent to Mati's engine for analysis. Nothing is stored server-side. Explanations you open are cached on your machine (per workspace), so reopening one is instant and free. The extraction prompt and the concept catalog that make Mati's teaching possible never leave the server; this extension is a thin client and never contains them.
Full details: Privacy Policy and Terms.
About
Mati is built by Zonivan. The same engine powers the Mati web editor at mati.zonivan.com, where you can try the teaching in your browser without installing anything.