MathVoice for Chrome

One extension. Voice-controlled LaTeX editing in Overleaf, Notion, Roam Research, Desmos, and Google Docs — wherever you write math.

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:

Platform capabilities

MathVoice works on five platforms. Four support direct write-back (inserting equations at the cursor or into the expression list) and a manual Load equation button that re-loads whatever you last selected or clicked. Google Docs renders the page as a canvas, so it operates in clipboard mode — and is the one surface without a Load button, because there is no DOM equation input to read back.

PlatformRead equationManual LoadWrite backHow it works
Overleaf✅ Editor selection✅ DirectInserts LaTeX at the cursor in CodeMirror 6 via execCommand('insertText'). Overleaf's preview recompiles automatically.
Notion✅ KaTeX annotation✅ DirectClick a math block to load its LaTeX. Apply opens Notion's equation popup and injects the edited LaTeX.
Roam Research✅ MathJax + textarea✅ DirectClick a $$ block to load. Apply replaces the math in the block textarea and dispatches Roam's change events.
Desmos✅ Calc expression list✅ DirectClick 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).
Google Docs❌ Canvas-rendered📋 Clipboard onlyGoogle 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.
Why is Google Docs different? Notion, Overleaf, and Roam render equations as DOM elements (KaTeX/MathJax) that a content script can read and modify. Google Docs paints everything to a canvas — there's no DOM to interact with. This is a fundamental platform limitation, not a MathVoice bug. The extension renders your equation to a PNG and places it on your clipboard — one paste, no typing. The Apps Script add-on bypasses this by running inside Google's own scripting layer with document-edit privileges.

Coming in the next update

The following capabilities are built and pending Chrome Web Store review:

How it works

  1. Install MathVoice from the Chrome Web Store
  2. Open Overleaf, Notion, Roam, Desmos, or Google Docs
  3. Click the MathVoice icon to open the sidebar
  4. Click the microphone in Studio and speak, or type directly
  5. On Overleaf/Notion/Roam/Desmos: click Apply to insert directly, or Load equation to pull the current one back into Studio
  6. 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

PermissionScopePurpose
sidePanelBrowser side panelOpens the MathVoice Studio editor in Chrome's side panel.
activeTab + scriptingSupported sites onlyInjects a content script into Overleaf, Notion, Roam, and Desmos pages to detect math selections and write edited equations back. The script runs only on those four domains. Google Docs has no content script — it operates in clipboard mode from the sidebar without page access.
clipboardWriteClipboardUsed 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.comPage accessLimits the content script to the four write-back sites. No access to other websites.
Microphone (browser)Side panelUsed 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.appStudio + intent APILoads Studio in the sidebar and sends LaTeX to the intent API for processing. Formula data is not stored beyond the request.
The extension only runs on supported sites. It cannot access other websites, browser history, passwords, or personal data. It interacts only with math blocks you explicitly select or click. See our Privacy Policy for full details.

Requirements