MathVoice for Chrome
One extension. Voice-controlled LaTeX editing in Overleaf, Notion, Roam Research, Desmos, Word Online, OneNote and Google Docs — and any other site you enable.
What this extension does
MathVoice for Chrome is a single Chrome extension that adds a sidebar panel with the MathVoice Studio editor. It automatically detects which supported site you're on and adapts its behaviour:
- Speak equations — the microphone works right in the side panel (grant the mic permission once); no separate tab needed
- Type equations — full LaTeX editing with live KaTeX preview
- Insert equations — write edited LaTeX directly into the page on supported platforms
- Edit existing equations — select or click a math block to load it into the editor
Platform capabilities
MathVoice works on seven platforms. Five support direct write-back (inserting equations at the cursor, into the expression list, or as a native Word equation) plus a manual Load equation button that re-loads whatever you last selected or clicked. The two exceptions are read-only surfaces: OneNote on the web has no equation API, so equations go in as LaTeX text via a synthetic paste, and Google Docs renders the page as a canvas, so it operates in clipboard mode. Neither offers a Load button, because neither exposes an equation to read back.
| Platform | Read equation | Manual Load | Write back | How it works |
|---|---|---|---|---|
| Overleaf | ✅ Editor selection | ✅ | ✅ Direct | Inserts LaTeX at the cursor in CodeMirror 6 via execCommand('insertText'). Overleaf's preview recompiles automatically. |
| Notion | ✅ KaTeX annotation | ✅ | ✅ Direct | Click a math block to load its LaTeX. Apply opens Notion's equation popup and injects the edited LaTeX. |
| Roam Research | ✅ MathJax + textarea | ✅ | ✅ Direct | Click a $$ block to load. Apply replaces the math in the block textarea and dispatches Roam's change events. |
| Desmos | ✅ Calc expression list | ✅ | ✅ Direct | Click an expression to load it. Apply writes the edited LaTeX back with Calc.setExpression() through a script injected into the page's own JS world (or appends a new expression if none is selected). |
| Word Online | ✅ OMML equation | ✅ | ✅ Direct (native) | Inserts a native Word equation two ways — straight into the document, or by typing linear format into Word's own equation editor. MathVoice auto-detects which route fits the current cursor. |
| OneNote (web) | ❌ No equation objects | ❌ | ⌨️ Synthetic paste | OneNote's web canvas exposes no equation API. MathVoice focuses the page canvas and dispatches a paste carrying your LaTeX; if OneNote declines it, the LaTeX stays on your clipboard for a manual Ctrl/⌘+V. Equations land as LaTeX text, not native OneNote equations, and cannot be read back. |
| Google Docs | ❌ Canvas-rendered | ❌ | 📋 Clipboard only | Google Docs renders the entire page as a <canvas> — no content script can read or write equations. MathVoice copies a rendered equation image to the clipboard; press Ctrl/⌘+V to paste it into your doc, falling back to LaTeX text if the renderer is unreachable. For true one-click insertion, use the Google Docs Apps Script add-on instead. |
Works on any website
Beyond the seven platforms above, MathVoice can be enabled per site. Click Enable on this site in the side panel and MathVoice grants itself access to that one origin — no extra install-time permissions. It then detects LaTeX you highlight (Load selected / auto-load) and inserts at the cursor in editors it recognises. The universal actions — dictate, KaTeX preview, and copy as LaTeX, MathML or UnicodeMath — are always available, on every site.
How it works
- Install MathVoice from the Chrome Web Store
- Open Overleaf, Notion, Roam, Desmos, Word Online, OneNote or Google Docs
- Click the MathVoice icon to open the sidebar
- Click the microphone in Studio and speak, or type directly
- On Overleaf/Notion/Roam/Desmos/Word Online: click Apply to insert directly, or Load equation to pull the current one back into Studio
- On OneNote: click Apply — the LaTeX is pasted into the page canvas, with your clipboard as the fallback
- On Google Docs: click Copy equation image and press Ctrl/⌘+V in your document — the equation pastes as a rendered image
Data and permissions — full transparency
| Permission | Scope | Purpose |
|---|---|---|
sidePanel | Browser side panel | Opens the MathVoice Studio editor in Chrome's side panel. |
activeTab + scripting | Supported sites, plus any site you explicitly enable | Injects a content script into Overleaf, Notion, Roam, Desmos, Word Online and OneNote pages to detect math selections and write edited equations back. Beyond those, the script runs only on origins you enable yourself from the side panel, one at a time — nothing is scanned or enabled automatically. Google Docs has no content script at all; it operates in clipboard mode from the sidebar without page access. |
clipboardWrite | Clipboard | Used as the write mechanism on Google Docs (clipboard mode) and as a fallback if direct insertion fails on any platform. |
| Host: overleaf.com, notion.so, roamresearch.com, desmos.com | Page access | Limits the content script to the four write-back sites. No access to other websites. |
| Microphone (browser) | Side panel | Used by Studio in the side panel for speech recognition (granted once, on first use). Audio is processed by the browser's speech engine. Audio never goes to MathVoice servers. |
| Network to mathvoice.app | Studio + intent API | Loads Studio in the sidebar and sends LaTeX to the intent API for processing. Formula data is not stored beyond the request. |
Requirements
- Google Chrome or any Chromium browser (Edge, Brave, Arc)
- An account on at least one supported platform
- Microphone (for voice input; keyboard input always works)