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 ๐ธ
About westpoint-io/mimik
westpoint-io/mimik is an open-source project on GitHub, mainly written in TypeScript. ๐ช A browser extension that captures your workflow as you click and turns it into a step-by-step guide with annotated screenshots ๐ธ It currently holds 1,192 stars and 160 forks with 12 open issues, and was last pushed on 2026-09-23 (repository created 2026-03-20).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #39 with 96 new stars today.
GitHub Repository Details
README
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][license-shield]][license-link]
[![Manifest V3][mv3-shield]][mv3-link]
[![100% Local][local-shield]][local-link]
[![No Account][no-account-shield]][no-account-link]
[![Stars][star-shield]][star-link]
[![Contributors][contributors-shield]][contributors-link]
![Last Commit][last-commit-shield]
[![Issues][issues-shield]][issues-link]
Table of contents
TOC
- ๐บ Demo
- ๐ Getting Started
- โจ Features
- ๐ Smart Blur
- ๐ง AI descriptions (optional)
- โถ๏ธ Guide Me replay
- ๐๏ธ Voice narration (optional)
- โ๏ธ Guide editor
- ๐ Video voice-over (optional)
- ๐ค Multi-format export
- ๐ฆ Share a guide
- ๐ Privacy & storage
- ๐ค Contributing
- โญ Star History
- ๐ License
๐บ 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.
| Browser | Version | Install | | ------- | ------- | ------- | | Chrome | [![Chrome Version][chrome-version-shield]][chrome-link] | [Chrome Web Store][chrome-link] | | Firefox | [![Firefox Version][firefox-version-shield]][firefox-link] | [Firefox Add-ons][firefox-link] | | Edge | [![Edge Version][edge-version-shield]][edge-link] | [Microsoft Edge Add-ons][edge-link] |
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!
[![Back to top][back-to-top]](#readme-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 covered | Why |
|-------------|-----|
| Content inside iframes | Skipped entirely; cross-origin frames are unreachable from the page |
| Shadow DOM | The scan walks the document and does not descend into shadow roots |
| Text painted on a ``, and text inside images | Pixels, not text |
| CSS ::before / ::after content | Not a text node |
| ` and ` text | Excluded from the scan |
| Values held only in attributes, such as title or alt | Only text nodes and input values are scanned |
| Frames other than the top one | The overlay and the scan run in the top frame only |
| Any tab but the one you entered the mode on | Only that tab is scanned; a second tab on the same app is not |
| Text that appears after you click Done | The 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 ` 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 or ` 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.
[![Back to top][back-to-top]](#readme-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).
[![Back to top][back-to-top]](#readme-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.
[![Back to top][back-to-top]](#readme-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.
[![Back to top][back-to-top]](#readme-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.
[![Back to top][back-to-top]](#readme-top)
๐ Video voice-over (optional)
Turn it on in the export panel and every step of a video export is read aloud, using your own OpenAI or ElevenLabs key. If you already set an OpenAI key for AI descriptions, Mimik reuses it โ there is nothing else to sign up for. Narrated steps hold on screen until the voice finishes, so nothing gets cut off, and clips are cached locally so re-exporting the same guide costs nothing.
Off by default: holding a key never turns narration on, you do.
๐ค Multi-format export
Share guides in whatever format fits your workflow:
- Video: narrated walkthrough, mp4/H.264, with the cursor moving to each target โ optionally with an
- 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
[![Back to top][back-to-top]](#readme-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
- Text you typed into fields is removed from the step text, title and links, not
- Links are trimmed to the page address by default, dropping the query strings that
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][back-to-top]](#readme-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, voice narration and video voice-over features send text or audio to the provider you configured โ voice-over sends each step's text at export time, and only when you turn it on.
[![Back to top][back-to-top]](#readme-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][back-to-top]](#readme-top)
โญ Star History
[![Back to top][back-to-top]](#readme-top)
๐ License
MIT ยฉ Westpoint. See LICENSE for details.
[![Back to top][back-to-top]](#readme-top)
[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-1E1B4B?style=flat-square
[license-shield]: https://img.shields.io/badge/license-MIT-4F46E5?style=flat-square&labelColor=1E1B4B [license-link]: ./LICENSE
[mv3-shield]: https://img.shields.io/badge/manifest-v3-3730A3?style=flat-square&labelColor=1E1B4B [mv3-link]: https://developer.chrome.com/docs/extensions/mv3/intro/
[local-shield]: https://img.shields.io/badge/storage-100%25%20local-4F46E5?style=flat-square&labelColor=1E1B4B [local-link]: #-100-local-storage
[no-account-shield]: https://img.shields.io/badge/account-not%20required-4F46E5?style=flat-square&labelColor=1E1B4B [no-account-link]: #-100-local-storage
[star-shield]: https://img.shields.io/github/stars/westpoint-io/mimik?style=flat-square&label=stars&color=4F46E5&labelColor=1E1B4B [star-link]: https://github.com/westpoint-io/mimik/stargazers
[contributors-shield]: https://img.shields.io/github/contributors/westpoint-io/mimik?style=flat-square&labelColor=1E1B4B [contributors-link]: https://github.com/westpoint-io/mimik/graphs/contributors
[last-commit-shield]: https://img.shields.io/github/last-commit/westpoint-io/mimik?style=flat-square&label=commit&labelColor=1E1B4B
[issues-shield]: https://img.shields.io/github/issues/westpoint-io/mimik?style=flat-square&labelColor=1E1B4B [issues-link]: https://github.com/westpoint-io/mimik/issues
[chrome-version-shield]: https://img.shields.io/chrome-web-store/v/jmfohdaflahliammccpiadmkcibohgha?label=Chrome%20Version&style=flat-square&logo=googlechrome&logoColor=C7D2FE&color=4F46E5&labelColor=1E1B4B [chrome-link]: https://chromewebstore.google.com/detail/mimik/jmfohdaflahliammccpiadmkcibohgha [firefox-version-shield]: https://img.shields.io/amo/v/mimik?label=Firefox%20Version&style=flat-square&logo=firefoxbrowser&logoColor=C7D2FE&color=4F46E5&labelColor=1E1B4B [firefox-link]: https://addons.mozilla.org/en-US/firefox/addon/mimik/ [edge-version-shield]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fmicrosoftedge.microsoft.com%2Faddons%2Fgetproductdetailsbycrxid%2Fhgjemhfoffebbollleajkpefblppleai&query=%24.version&label=Edge%20Version&style=flat-square&logo=microsoftedge&logoColor=C7D2FE&color=4F46E5&labelColor=1E1B4B [edge-link]: https://microsoftedge.microsoft.com/addons/detail/hgjemhfoffebbollleajkpefblppleai