Markup AI Lint for VS Code — Integration Guide

Integration Guide

Use Markup AI Lint to check your content the way you check your code. The extension runs as a native linter inside Visual Studio Code — issues are underlined right in the editor, hover any one of them for the explanation, and apply the suggested fix with a click or the quick-fix lightbulb.

There’s no panel to open and no Check button to press. Open a supported file and it’s checked; the status bar keeps a running summary of the current document. When you want more than one file at a time, the Folder Scanner checks a whole folder and collects every finding in one place.

Markup AI ships two extensions for VS Code, and you can install either or both. Prefer Markup AI Lint when you want checks to feel like linting — inline, automatic, keyboard-driven. Prefer the Markup AI sidebar when you want a review panel with issue cards, scores per agent, and grouped triage.


What you need

  • Visual Studio Code Desktop. Content checking doesn’t work in VS Code for the Web (vscode.dev, github.dev), where browser CORS rules block the API.
  • A Markup AI account — create one at console.markup.ai.
  • Permission to install VS Code extensions. If your editor is managed by your organization, an admin may need to allow it first.

Which agents are supported

  • Style Agent

What Markup AI Lint does for you in VS Code

  • Check as you open: Supported files are checked automatically when you open them — no command to run.
  • Inline diagnostics: Every issue is underlined in the editor and listed in the Problems panel, with high / medium / low risk mapped to VS Code’s error / warning / info levels.
  • Hover for the explanation: Hover any flagged phrase to see the category, the guideline behind it, the risk level, and the suggested replacement.
  • One-click fixes: Click Apply Fix in the hover, or use the quick-fix lightbulb (⌘. / Ctrl+.) to rewrite the text in place.
  • Status bar summary: A running risk summary — or a quality score, for organizations that have numeric scoring enabled — for the document you’re in.
  • Findings panel: A tree of every issue found, filterable by severity and category, scoped to the current file or across all checked files.
  • Folder Scanner: Check every supported file in a folder, or just the ones you pick, and review the results together.

Installing the extension

The extension is published to the Visual Studio Marketplace as Markup AI Lint (publisher: markupai).

1

Open the Extensions view

In VS Code, select the Extensions icon in the activity bar (or press ⇧⌘X / Ctrl+Shift+X).

2

Search for Markup AI Lint

Type Markup AI Lint in the search box and select the listing published by markupai.

3

Install

Click Install. The extension activates on the next window load — no restart needed. A Markup AI Lint entry appears in the status bar, and a Markup AI Lint icon appears in the activity bar for the Folder Scanner.

The Extensions view in VS Code with mark typed in the search box, the Markup AI Lint listing from the publisher Markup AI selected at the top of the results, and the extension details page open alongside it describing native content linting with inline diagnostics, quick fixes, a findings panel, and batch folder checking.
The Markup AI Lint listing in the Extensions view.

Signing in

  1. Click Markup AI: Sign in in the status bar — or run Markup AI Lint: Sign In from the Command Palette (⇧⌘P / Ctrl+Shift+P).
  2. Choose Sign in with browser. Your default browser opens to the Markup AI sign-in page — sign in with your Google or Microsoft account, or your credentials, then return to VS Code. The extension picks up the completed sign-in automatically and checks the active document.
  3. Your session is remembered — tokens are stored in VS Code’s Secret Storage and refreshed in the background, so you normally won’t sign in again on the same machine unless you sign out. To end the session, run Markup AI Lint: Sign Out.
The MarkupAI Sign In quick pick in VS Code offering two options: Sign in with browser, which opens markup.ai in your browser, and Paste access token or API key for tokens obtained elsewhere.
Choose how to sign in — the browser flow is the one you want; pasting a token is there for CI and scripted setups.

Paste access token or API key is the fallback path — use it when you already hold a token (a JWT or a mat_… API key) from somewhere else, such as a CI environment. For everyday use, sign in with the browser.


Checking a document

Open any supported file — Markdown, plain text, HTML, or DITA/XML — and Markup AI Lint checks it for you. When the check finishes:

  • Every issue is underlined in the editor, colored by risk level, and mirrored into the Problems panel.
  • The status bar shows the result for the active document.
  • A notification summarizes the check, with View Details and Show Findings actions.

Re-check the current document at any time with Markup AI Lint: MarkupAI - Check Content from the Command Palette or the editor right-click menu.

VS Code with a Markdown file open, writing issues underlined in red throughout the text, the Markup AI Lint panel at the bottom grouping findings under each checked file with their categories and line numbers, a MarkupAI Check Complete notification reading Good, Score 77, 13 issues found with View Details and Show Findings buttons, and MarkupAI 77 in the status bar.
A checked Markdown document — issues underlined inline, the full list in the Markup AI Lint panel, the score in the status bar, and the check-complete notification.

Reading the status bar

The status bar entry always reflects the active editor, and clicking it opens the content assessment for that document.

The right-hand end of the VS Code status bar showing a yellow dot followed by MarkupAI: 70, next to the usual line and column, encoding, and language mode indicators.
The status bar entry for the active document — click it for the full risk breakdown and the style guide in use.

What you’ll see there depends on your organization’s settings and the state of the check:

Status barWhat it means
MarkupAI: Sign inYou’re signed out. Click to sign in.
MarkupAI: Checking...A check is in flight.
MarkupAI: 70The document’s quality score (0–100), for organizations with numeric scoring enabled.
MarkupAI: 2H 3M 11LThe risk summary — 2 high, 3 medium, 11 low — when scoring isn’t enabled.
MarkupAI: No issuesThe check came back clean.
MarkupAI: DisabledChecking is turned off. Click to turn it back on.

Click the entry (or run Markup AI Lint: Show Content Scores) to open the MarkupAI Content Assessment — the quality score, the count of high, medium, and low risk issues, and the style guide the check ran against. You can switch the style guide from there.


Reviewing and resolving issues

Hover an issue

Hover any underlined phrase to see what Markup AI flagged and why:

  • The explanation of the issue, in plain language.
  • The category (Clarity, Spelling and grammar, Tone, and so on).
  • The guideline behind the finding.
  • The risk level — 🔴 High, 🟡 Medium, or 🔵 Low.
A hover card over a flagged sentence in a Markdown file, reading 'Could you avoid double negation? Don't write two negatives to make a positive. It can make your content unclear.' with a Clarity heading, a Guideline line, and Risk: High, above the underlined phrase in the editor.
Hovering a flagged phrase shows the explanation, the category, the guideline, and the risk level.

Apply the fix

When Markup AI has a suggested replacement, the hover shows it under Suggestion with an Apply Fix link. Click it and the text is rewritten in place.

A hover card showing 'Should this verb be singular or plural? It looks like the verb doesn't match the subject.' with a Spelling and grammar heading, a Suggestion of 'we were', an Apply Fix link, the guideline, and Risk: High.
A suggestion with a one-click Apply Fix — the replacement is written straight into the document.

You have three other ways to act on the same finding:

  • Quick fix — put the cursor in the flagged text and press ⌘. / Ctrl+. for the lightbulb menu. Fix: Replace ”…” with ”…” applies the suggestion.
  • Hide a whole category — the same lightbulb menu offers Disable Category Issues, which hides every finding in that category. Bring them back with Markup AI Lint: MarkupAI - Enable Category.
  • Edit manually — fix the text yourself and re-run the check to re-score.

Applied fixes are ordinary document edits, so ⌘Z / Ctrl+Z undoes them. Remaining issues keep their positions as the text around them shifts, so you can work down the list without re-checking after every fix.


The Findings panel

The Markup AI Lint panel (next to Problems and Terminal) lists findings grouped by file, each with its message, category, and line number. Click any finding to jump to the exact text in the editor.

The panel’s toolbar gives you:

  • Filter by Severity — scope the list to High, Medium, or Low.
  • Filter by Category — scope it to Clarity, Tone, Spelling and grammar, and so on.
  • Clear Filters — drop both filters.
  • Show Current File Only / Show All Files — toggle between the active document and every file you’ve checked this session.
  • Refresh Findings — rebuild the list.

The panel title carries the total count, and any active filters, so you always know what you’re looking at.

VS Code showing the Markup AI Lint panel at the bottom, with the findings for sample-markdown-file-1.md expanded into 27 entries — each a plain-language message tagged with a category such as Consistency, Tone, Clarity, or Spelling and grammar, and the line it was found on — and the panel toolbar for refreshing, filtering, and clearing filters at the top right.
The Findings panel — every issue listed under its file, with its category and line number. Click a finding to select the matching text in the editor.

Checking a whole folder

The Folder Scanner — the Markup AI Lint icon in the activity bar — lists every supported file in your workspace so you can check them in a batch.

An animation of the Markup AI Lint Folder Scanner in the VS Code sidebar: the workspace's supported files are listed under their DITA, HTML, markdown, and text folders; files are ticked and checked in batches; a score badge appears beside each one as its check finishes; a MarkupAI Check Complete notification offers View Details and Show Findings; and the run ends with the Findings panel grouping the four checked files and their issue counts.
Pick the files you want, run the check, and each one picks up its score in the tree — then open the whole batch in the Findings panel.
  1. Open the Markup AI Lint view from the activity bar. It loads your workspace folder automatically; use Change Folder in the view toolbar to point it somewhere else.
  2. Check the files:
    • Check All Files runs against every supported file in the folder, recursively.
    • Check Selected Files runs against just the files you’ve ticked. Click a file’s inline check icon to select or deselect it.
  3. Progress shows in a notification as each file is checked. When the batch finishes, click View Findings to open the results in the Findings panel.

Each file in the tree picks up its result beside the name — the quality score, or the risk summary — so you can see at a glance which documents need attention.

The scanner skips hidden folders (anything starting with .) along with node_modules, dist, and build. Files are checked one at a time against the API, so a large folder takes a while; the progress notification tells you where it’s up to.


Settings

All settings live under Markup AI Lint in the Settings editor (⌘, / Ctrl+,).

SettingDefaultWhat it does
markupai-lint.enabledtrueTurns checking on or off. Also available as Toggle Enable/Disable in the Command Palette and as MarkupAI - Disable Issues in the editor right-click menu.
markupai-lint.checkOnOpentrueChecks a document automatically when you open it.
markupai-lint.checkOnChangefalseRe-checks as you type. Turn this on for live score updates while editing; leave it off to save API calls.
markupai-lint.checkDelay2000Milliseconds to wait after you stop typing before re-checking. Only applies when checkOnChange is on.
markupai-lint.styleGuide(empty)The style guide to check against. Empty means your organization’s default.

Choosing a style guide

Run Markup AI Lint: Select Style Guide from the Command Palette (or click Style Guide in the content assessment dialog) to pick from the style guides your organization has configured — the current selection is marked, and your organization’s default is labelled. The choice is saved to your user settings and applies to every document until you change it.

Your brand standards themselves — style guides, terminology, tone — are managed in the Markup AI console; the extension checks against whatever your organization has configured there.


FAQ

  • Which files can I check? Markdown (.md), plain text (.txt), HTML (.html, .htm), and DITA/XML (.dita, .xml). Markdown, HTML, and DITA/XML are checked with format awareness. Unsaved (untitled) files work too.
  • Do I have to run a command to check a file? No. Files are checked when you open them. Use MarkupAI - Check Content when you want to re-check after editing, or turn on checkOnChange to have it re-check as you type.
  • Can I check just a selection? No — Markup AI Lint checks the whole document. To check a passage on its own, use the Markup AI sidebar extension, which supports selection checks.
  • Will the extension change my document without asking? No. It only edits when you apply a fix — from the hover, the quick-fix lightbulb, or the Findings panel. ⌘Z / Ctrl+Z undoes any change.
  • Where do the underlines come from? They’re standard VS Code diagnostics, so findings also appear in the Problems panel and follow your editor’s error/warning/info styling. High risk maps to error, medium to warning, low to info.
  • Can I run both Markup AI extensions at once? Yes. They’re separate extensions with separate commands and settings, and they don’t conflict — Lint owns the inline diagnostics, and the sidebar owns the review panel.
  • Does it work in VS Code for the Web? The extension loads, but content checking doesn’t work there: the browser blocks the API calls (CORS). Use VS Code Desktop.
  • Do I need to update the extension? No. VS Code updates extensions automatically — you’ll always be on the latest version.
  • Nothing is being checked — what should I look at? In order: the status bar (are you signed out, or is checking disabled?), the file type (is it one of the supported extensions?), and your organization’s settings (the extension warns if the Style Agent isn’t enabled for your org).

Known limitations

  • VS Code Desktop only. VS Code for the Web (vscode.dev, github.dev) can’t reach the API from the browser.
  • Whole documents only. There’s no selection check — the full document is submitted every time.
  • Very large documents aren’t checked. The Style Agent rejects documents above roughly 100,000 characters. Split long files to check them.
  • Findings are per session. Results live in memory, so they clear when you close a document or restart VS Code. Re-open the file and it’s checked again.
  • Folder checks run file by file. Large folders take proportionally longer, and the batch can’t be cancelled once it’s running.
  • Text content only. Images and other non-text elements aren’t analyzed.