westpoint-io/mimik

🪄 A browser extension that captures your workflow as you click and turns it into a step-by-step guide with annotated screenshots 📸

TypeScript

1,167

589 commits

updated Sep 22, 2026

See the code

README

Mimik mascot

Mimik

English · Español · Português (BR) · Français · 简体中文

Auto-capture any browser workflow into a step-by-step guide. No account, no cloud, no tracking.

Click record, do the thing, get a polished guide with annotated screenshots. Narrate it as you go, edit it after, then replay or export.

License Manifest V3 100% Local No Account
Stars Contributors Last Commit Issues

Table of contents

TOC


📺 Demo

Mimik demo

👋 Getting Started

Mimik turns any repetitive browser task into a documented, shareable guide in seconds. It runs entirely in your browser. No backend, no account, no telemetry, and nothing ever leaves your device.

Whether you're documenting internal tools, writing product tutorials, or onboarding a teammate, Mimik captures every click, keystroke, and navigation automatically so you can focus on the work.

Every meaningful action becomes a step: clicks on buttons and links, form inputs, keyboard shortcuts, clipboard actions, drag events, and page navigations. Rapid clicks on nearby elements are merged so guides stay clean, and clicks are intercepted before the page navigates away, so nothing is lost on SPAs or full page loads.

Each step gets a screenshot with the clicked element highlighted and zoomed in. No manual cropping, no annotation tools to learn.

Need the recording to look away for a moment? Pause stops capture without ending the recording, and Resume picks up where you left off. Entering Smart Blur pauses it the same way.

BrowserVersionInstall
ChromeChrome VersionChrome Web Store
FirefoxFirefox VersionFirefox Add-ons
EdgeEdge VersionMicrosoft Edge Add-ons

Available in English, Spanish, Brazilian Portuguese, French, German, and Simplified Chinese. The AI description language is set separately, so you can run Mimik in English and generate guides in Spanish, or any combination.

[!IMPORTANT]

⭐️ Star the repo if Mimik saves you time. It helps other people discover it!

Star Mimik on GitHub

Back to top

✨ Features

🔒 Smart Blur

Smart Blur is a mode you enter while recording, not an always-on filter. Click Blur and capture pauses, Mimik detects and masks sensitive data on the page — emails, phone numbers, SSNs, credit cards, IP addresses, MAC addresses — and screenshots of that page keep it hidden once you click Done. Toggle each category independently.

Need to blur something custom? The manual blur picker lets you select any DOM element and mask it across every screenshot where it appears.

What Smart Blur does not cover

Smart Blur works by scanning text nodes and input values in the page's top frame. That leaves real gaps, all structural. If you rely on this for GDPR or similar, check your screenshots rather than assuming a clean one is a safe one:

Not coveredWhy
Content inside iframesSkipped entirely; cross-origin frames are unreachable from the page
Shadow DOMThe scan walks the document and does not descend into shadow roots
Text painted on a <canvas>, and text inside imagesPixels, not text
CSS ::before / ::after contentNot a text node
<select> and <option> textExcluded from the scan
Values held only in attributes, such as title or altOnly text nodes and input values are scanned
Frames other than the top oneThe overlay and the scan run in the top frame only
Any tab but the one you entered the mode onOnly that tab is scanned; a second tab on the same app is not
Text that appears after you click DoneThe scan stops with the overlay, so an SPA re-render, the next page of a list, or a navigation is unmasked — re-enter Blur there

Two things worth knowing about what is handled: a match inside SVG <text> is removed from the render rather than blurred, because the mask is an HTML element that SVG will not draw — the data does not leak, but it disappears instead of blurring. And a matching <input> or <textarea> is blurred as a whole field, not just the matched substring.

Blur applies from the moment you enter the mode onward. Screenshots already captured before that are not masked retroactively — delete those steps in the editor instead.

Smart Blur

Back to top

🧠 AI descriptions (optional)

Bring your own API key (OpenAI or Anthropic) and Mimik generates human-readable step descriptions like "Click the Submit button to save changes" instead of the rule-based Click Submit.

Descriptions are generated from a lightweight DOM context (~50-100 tokens), not screenshots. Roughly 15-30x cheaper than vision models. Choose the language you want descriptions in (English, Spanish, Portuguese, French, German, Chinese).

AI descriptions

Back to top

▶️ Guide Me replay

Replay any guide live on a real page. Mimik highlights the next element to click, tracks your progress step by step, and advances automatically as you interact. Perfect for onboarding teammates or walking through a process yourself.

Guide Me replay

Back to top

🎙️ Voice narration (optional)

Talk through the workflow out loud while you record and Mimik turns what you said into the step descriptions. Audio is transcribed with your own key (OpenAI or Groq) and matched to the steps it belongs to, so you narrate once instead of writing every step by hand.

Voice narration

Back to top

✏️ Guide editor

Fix a guide after the fact without re-recording. Crop, annotate and redact any screenshot, rewrite a step with AI inline, drop headings and notes between steps, reorder or bulk-delete, and roll back through version history.

Guide editor

Back to top

📤 Multi-format export

Share guides in whatever format fits your workflow:

  • Video: narrated walkthrough, mp4/H.264, with the cursor moving to each target
  • GIF: short looping clip for a chat thread or an issue comment
  • PDF: print-ready, A4 portrait with auto page breaks
  • DOCX: open and keep editing in Word
  • HTML: self-contained, share anywhere, base64-embedded images
  • Markdown: paste into Notion, GitHub, internal docs, wikis
  • Mimik file: the only format that imports back — see Share a guide below

All exports are generated client-side. Nothing touches a server.

Multi-format export

Back to top

📦 Share a guide

Export a guide as a .mimik file and someone else can import it into their own Mimik — same steps, same screenshots, still editable, and still replayable with Guide Me. It's a plain zip: a manifest, the screenshots, and a README.md so the file still reads as a document to anyone without the extension.

It travels as a file, so sharing works the same way anything else does — email it, drop it in Slack, commit it to a repo. There's no account and no server involved.

Because a guide can hold more than you meant to send, an export decides what leaves:

  • Blurred areas are burnt into the pixels before the file is written, so the recipient has nothing to un-blur.
  • Text you typed into fields is removed from the step text, title and links, not just from the stored value.
  • Links are trimmed to the page address by default, dropping the query strings that carry session tokens.

Screenshots still show whatever was on screen when they were taken — use the blur tool for anything sensitive that the camera caught.

To import, open the dashboard and click Import, or drop a .mimik file onto your library. You'll see what the sender removed before anything is added.

Back to top

🔐 Privacy & storage

Guides, steps, and screenshots live on your device. There's no backend, no account, no telemetry. Your API keys (if you bring one) never leave your browser — they're stored locally and used to call the provider you chose directly.

If you are masking personal data before sharing a guide, read what Smart Blur does not cover first — it cannot reach iframes, shadow DOM, or text drawn into images.

Two things do leave the browser, both documented in the privacy policy: site icons are fetched from Google's favicon service, which sends that site's domain, and the optional AI and voice features send text or audio to the provider you configured.

Back to top

🤝 Contributing

Contributions of all kinds are welcome: bug reports, feature requests, PRs, and translations.

See CONTRIBUTING.md for development setup, project layout, and contributor guidelines.

Back to top

⭐ Star History

Star History Chart

Back to top

📜 License

MIT © Westpoint. See LICENSE for details.

Back to top

browser-extension
chrome-extension
documentation
firefox-extension
guide-generator
local-first
manifest-v3
privacy-first
productivity
react
screenshot
step-by-step-guide
tutorial
typescript
workflow
wxt

Contributors

KiryuuLight

543 commits

DavBio

22 commits

alvinlollo

9 commits

operfildoluiz

5 commits

westpoint-io/mimik

🪄 A browser extension that captures your workflow as you click and turns it into a step-by-step guide with annotated screenshots 📸

TypeScript

1,167

589 commits

updated Sep 22, 2026

See the code

README

Mimik mascot

Mimik

English · Español · Português (BR) · Français · 简体中文

Auto-capture any browser workflow into a step-by-step guide. No account, no cloud, no tracking.

Click record, do the thing, get a polished guide with annotated screenshots. Narrate it as you go, edit it after, then replay or export.

License Manifest V3 100% Local No Account
Stars Contributors Last Commit Issues

Table of contents

TOC


📺 Demo

Mimik demo

👋 Getting Started

Mimik turns any repetitive browser task into a documented, shareable guide in seconds. It runs entirely in your browser. No backend, no account, no telemetry, and nothing ever leaves your device.

Whether you're documenting internal tools, writing product tutorials, or onboarding a teammate, Mimik captures every click, keystroke, and navigation automatically so you can focus on the work.

Every meaningful action becomes a step: clicks on buttons and links, form inputs, keyboard shortcuts, clipboard actions, drag events, and page navigations. Rapid clicks on nearby elements are merged so guides stay clean, and clicks are intercepted before the page navigates away, so nothing is lost on SPAs or full page loads.

Each step gets a screenshot with the clicked element highlighted and zoomed in. No manual cropping, no annotation tools to learn.

Need the recording to look away for a moment? Pause stops capture without ending the recording, and Resume picks up where you left off. Entering Smart Blur pauses it the same way.

BrowserVersionInstall
ChromeChrome VersionChrome Web Store
FirefoxFirefox VersionFirefox Add-ons
EdgeEdge VersionMicrosoft Edge Add-ons

Available in English, Spanish, Brazilian Portuguese, French, German, and Simplified Chinese. The AI description language is set separately, so you can run Mimik in English and generate guides in Spanish, or any combination.

[!IMPORTANT]

⭐️ Star the repo if Mimik saves you time. It helps other people discover it!

Star Mimik on GitHub

Back to top

✨ Features

🔒 Smart Blur

Smart Blur is a mode you enter while recording, not an always-on filter. Click Blur and capture pauses, Mimik detects and masks sensitive data on the page — emails, phone numbers, SSNs, credit cards, IP addresses, MAC addresses — and screenshots of that page keep it hidden once you click Done. Toggle each category independently.

Need to blur something custom? The manual blur picker lets you select any DOM element and mask it across every screenshot where it appears.

What Smart Blur does not cover

Smart Blur works by scanning text nodes and input values in the page's top frame. That leaves real gaps, all structural. If you rely on this for GDPR or similar, check your screenshots rather than assuming a clean one is a safe one:

Not coveredWhy
Content inside iframesSkipped entirely; cross-origin frames are unreachable from the page
Shadow DOMThe scan walks the document and does not descend into shadow roots
Text painted on a <canvas>, and text inside imagesPixels, not text
CSS ::before / ::after contentNot a text node
<select> and <option> textExcluded from the scan
Values held only in attributes, such as title or altOnly text nodes and input values are scanned
Frames other than the top oneThe overlay and the scan run in the top frame only
Any tab but the one you entered the mode onOnly that tab is scanned; a second tab on the same app is not
Text that appears after you click DoneThe scan stops with the overlay, so an SPA re-render, the next page of a list, or a navigation is unmasked — re-enter Blur there

Two things worth knowing about what is handled: a match inside SVG <text> is removed from the render rather than blurred, because the mask is an HTML element that SVG will not draw — the data does not leak, but it disappears instead of blurring. And a matching <input> or <textarea> is blurred as a whole field, not just the matched substring.

Blur applies from the moment you enter the mode onward. Screenshots already captured before that are not masked retroactively — delete those steps in the editor instead.

Smart Blur

Back to top

🧠 AI descriptions (optional)

Bring your own API key (OpenAI or Anthropic) and Mimik generates human-readable step descriptions like "Click the Submit button to save changes" instead of the rule-based Click Submit.

Descriptions are generated from a lightweight DOM context (~50-100 tokens), not screenshots. Roughly 15-30x cheaper than vision models. Choose the language you want descriptions in (English, Spanish, Portuguese, French, German, Chinese).

AI descriptions

Back to top

▶️ Guide Me replay

Replay any guide live on a real page. Mimik highlights the next element to click, tracks your progress step by step, and advances automatically as you interact. Perfect for onboarding teammates or walking through a process yourself.

Guide Me replay

Back to top

🎙️ Voice narration (optional)

Talk through the workflow out loud while you record and Mimik turns what you said into the step descriptions. Audio is transcribed with your own key (OpenAI or Groq) and matched to the steps it belongs to, so you narrate once instead of writing every step by hand.

Voice narration

Back to top

✏️ Guide editor

Fix a guide after the fact without re-recording. Crop, annotate and redact any screenshot, rewrite a step with AI inline, drop headings and notes between steps, reorder or bulk-delete, and roll back through version history.

Guide editor

Back to top

📤 Multi-format export

Share guides in whatever format fits your workflow:

  • Video: narrated walkthrough, mp4/H.264, with the cursor moving to each target
  • GIF: short looping clip for a chat thread or an issue comment
  • PDF: print-ready, A4 portrait with auto page breaks
  • DOCX: open and keep editing in Word
  • HTML: self-contained, share anywhere, base64-embedded images
  • Markdown: paste into Notion, GitHub, internal docs, wikis
  • Mimik file: the only format that imports back — see Share a guide below

All exports are generated client-side. Nothing touches a server.

Multi-format export

Back to top

📦 Share a guide

Export a guide as a .mimik file and someone else can import it into their own Mimik — same steps, same screenshots, still editable, and still replayable with Guide Me. It's a plain zip: a manifest, the screenshots, and a README.md so the file still reads as a document to anyone without the extension.

It travels as a file, so sharing works the same way anything else does — email it, drop it in Slack, commit it to a repo. There's no account and no server involved.

Because a guide can hold more than you meant to send, an export decides what leaves:

  • Blurred areas are burnt into the pixels before the file is written, so the recipient has nothing to un-blur.
  • Text you typed into fields is removed from the step text, title and links, not just from the stored value.
  • Links are trimmed to the page address by default, dropping the query strings that carry session tokens.

Screenshots still show whatever was on screen when they were taken — use the blur tool for anything sensitive that the camera caught.

To import, open the dashboard and click Import, or drop a .mimik file onto your library. You'll see what the sender removed before anything is added.

Back to top

🔐 Privacy & storage

Guides, steps, and screenshots live on your device. There's no backend, no account, no telemetry. Your API keys (if you bring one) never leave your browser — they're stored locally and used to call the provider you chose directly.

If you are masking personal data before sharing a guide, read what Smart Blur does not cover first — it cannot reach iframes, shadow DOM, or text drawn into images.

Two things do leave the browser, both documented in the privacy policy: site icons are fetched from Google's favicon service, which sends that site's domain, and the optional AI and voice features send text or audio to the provider you configured.

Back to top

🤝 Contributing

Contributions of all kinds are welcome: bug reports, feature requests, PRs, and translations.

See CONTRIBUTING.md for development setup, project layout, and contributor guidelines.

Back to top

⭐ Star History

Star History Chart

Back to top

📜 License

MIT © Westpoint. See LICENSE for details.

Back to top

browser-extension
chrome-extension
documentation
firefox-extension
guide-generator
local-first
manifest-v3
privacy-first
productivity
react
screenshot
step-by-step-guide
tutorial
typescript
workflow
wxt

Contributors

KiryuuLight

543 commits

DavBio

22 commits

alvinlollo

9 commits

operfildoluiz

5 commits

Languages

TypeScript

99.7%