Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>LAITA - Local AI Text AssistantNew to Visual Studio Code? Get it now.
LAITA - Local AI Text Assistant

LAITA - Local AI Text Assistant

Antonello Lobianco

|
1 install
| (0) | Free
Proofread and rewrite text with a language model running locally in Ollama. Nothing leaves your machine.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LAITA — Local AI Text Assistant

Proofread and rewrite prose with a language model running locally in Ollama. Nothing leaves your machine.

Built for Markdown, LaTeX, AsciiDoc, reStructuredText and plain text — the files where you write prose rather than code.

What it does

Proofreads. Mistakes appear as ordinary VS Code diagnostics: squiggles in the editor, entries in the Problems panel, and a quick fix (Ctrl+.) that applies the suggestion.

Default severity Category Meaning
Warning error Objectively wrong: spelling, agreement, punctuation
Information style Wordy, redundant, needlessly passive
Information rephrase A better word or a more natural formulation

Change any of them with laita.severity.error, .style and .rephrase. Avoid hint unless you want suggestions to be nearly invisible: VS Code draws a hint as three dots at the start of the phrase rather than underlining it, so a suggestion covering several words looks like it covers one letter.

On the lightbulb (Ctrl+.) every LAITA action is named, because that menu pools suggestions from every extension that has an opinion — VS Code's own View Problem, and any AI assistant offering to fix it. Ours are:

Action What it does
LAITA: change to "…" applies the suggestion. Preferred, so Ctrl+. then Enter does it
LAITA: add "…" to the dictionary the word is never flagged again, anywhere
LAITA: never make this suggestion again that exact suggestion is dropped for good
LAITA: dismiss this one for this session hides it until the next check

Managing the dictionary

Run LAITA: Show the personal dictionary from the command palette (Ctrl+Shift+P). It lists every word you have added; the bin icon beside a word removes it, and the first entry adds one.

Both lists are ordinary settings, so you can also see and edit them under Settings → Extensions → LAITA, or directly in settings.json:

"laita.dictionary": ["Lobianco", "Ollama", "quarto"],
"laita.ignored": ["a1b2c3d4"]          // fingerprints, not readable by design

They are written to your user settings rather than the workspace, because a personal dictionary follows you rather than the project, and they sync with Settings Sync. LAITA: Forget suggestions I told it never to make empties the second list.

Rewrites a selection. Select text, press Alt+Shift+T, and type what you want done — polish, translate to French, shorten it, turn into bullet points. The result can replace the selection or be inserted after it.

Code fences are treated as opaque and never sent to the model.

Installing

Search for LAITA in the Extensions panel, or from a terminal:

code --install-extension sylvaticus.laita

Requirements

Ollama running locally with a model pulled:

ollama pull qwen3.5:9b

Unlike the browser extension, no OLLAMA_ORIGINS setting is needed: requests come from Node and carry no Origin header, so Ollama does not refuse them.

Commands

Command Keybinding
Proofread the paragraph at the cursor Alt+Shift+C
Proofread the whole document —
Transform the selection… Alt+Shift+T
Clear suggestions —

Checking is automatic, shortly after you stop typing, for the file types in laita.languages — Markdown, LaTeX, AsciiDoc, reStructuredText, plain text. It looks at the part of the paragraph you are working in, not the whole file. A paragraph longer than laita.chunkMaxChars is split on sentence boundaries and only the piece holding the cursor is sent, because the model's latency grows faster than the text it is given - 419 characters took 4.4 seconds on the development machine, 1119 took 19.4. Opening a document checks its first real paragraph, skipping the title.

Turn that off with laita.checkOnType and use the commands instead, or set laita.checkOnSave to sweep the whole document when you save.

Which file types, and what those names are

laita.languages holds VS Code language identifiers, not file extensions or the names shown in menus:

Your file Status bar shows The identifier is
notes.md Markdown markdown
paper.tex LaTeX latex
readme.txt Plain Text plaintext
report.qmd Quarto quarto

The identifier is assigned by VS Code from the file extension, or by whichever extension handles that language, and you can override it per file with files.associations.

The easy way to find one: open the file and run LAITA: Also check this file. It tells you the identifier and offers either "just this file, this session" or "always check these files", which adds it to the setting for you — so you never have to look it up. Clicking the language name at the right of the status bar also shows it, and there is an official list.

For a one-off file whose type is not in the list — a .txt opened as something else, a config file with a long prose comment — run LAITA: Also check this file. That lasts for the session. To make it permanent, add the language id to laita.languages.

Settings

Three ways in, whichever you reach for first:

  • Click LAITA in the status bar (bottom right) → Settings
  • Ctrl+Shift+P → LAITA: Settings
  • Ctrl+, and type laita

The status bar item also opens everything else: proofread, transform, the dictionary, clear suggestions.

Settings are grouped into Ollama connection (endpoint, model, context window, timeout, keep-alive), When to check (as you type, on save, which file types, size caps) and What to suggest (language, categories, dictionary, house rules).

All are under laita. — endpoint, model, language, temperature, context window, timeout, which categories to report, a personal dictionary, and house style rules appended to the prompt. See the Settings UI for the full list.

Two worth knowing:

  • laita.numCtx defaults to 0, meaning "follow Ollama's own setting". Naming a different context size makes Ollama unload whatever model another application has loaded and start a second copy.
  • laita.maxChars caps how much one check or transform may send, not how long a file may be. Proofreading a paragraph is far below it however long the document is.

Part of LAITA

The same tool exists as a Firefox and Chrome extension: https://github.com/sylvaticus/laita. The prompts and the anchoring logic are shared code; the interface is native to each host.

MIT licensed.

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