demo · v141
Writing Quality Dashboard
Run three different document types — email, product description, support ticket — through the Proofreader API simultaneously. Each panel shows original vs corrected text side-by-side, issue severity badges, and per-category counts. Falls back to a heuristic proofreader when the API is unavailable.
Origin trial
Enable
chrome://flags/#proofreader-api-for-gemini-nano and download the on-device model via chrome://components. The heuristic fallback runs in all browsers — it catches passive voice, repeated words, and overly long sentences.
probing Proofreader API…
Email draft
ready
Original
Corrected
(press "Proofread all three" to see corrections)
Product description
ready
Original
Corrected
(press "Proofread all three" to see corrections)
Support ticket
ready
Original
Corrected
(press "Proofread all three" to see corrections)
the call
// Feature detection
const apiAvailable = 'Proofreader' in window ||
('ai' in window && 'proofreader' in window.ai);
// Create a reusable proofreader instance
const proof = await Proofreader.create({
expectedInputLanguages: ["en"],
correctionExplanationLanguage: "en",
});
// Proofread a document
const result = await proof.proofread(text);
console.log(result.correctedInput); // corrected full text
for (const c of result.corrections) {
// c.startIndex, c.endIndex — span in the original string
// c.correction — replacement text
// c.type — "spelling" | "grammar" | "style" | etc.
}
// Reuse the same instance across multiple calls —
// avoid re-creating it per keystroke (model warm-up cost)
see also
- Proofreader API — feature index
- ChromeStatus entry
- Explainer