img Dependency Status devDependency Status Build Status

Magnemite is a screen recorder for websites, built with Electron.

Magnemite is useful for getting 🐞 repro steps from an end user in the form of a video recording 📹.

Did your end user report a bug in your web app? Whether you are a Support team, a Development team, or anyone who deals with “bugs”, you can benefit from Magnemite! Simply tell the end user to install Magnemite and use it as they normally use your web app. They can click a button if they run into a bug and now you have a video of their issue!

How does it work?

  1. The end user reports a problem with a web app, but they are unsure how to reproduce the problem
  2. The support team sends the end user a link to install Magnemite
  3. The end user installs and runs Magnemite, which appears to just be a normal web app with an additional button
  4. The end user continues using the web app as usual and runs into a bug, oh no!
  5. The end user clicks the “Report Bug” button (secretly, Magnemite was recording the user’s screen the whole time 📹)
  6. The video is compressed and sent back to the support team with all the steps necessary to reproduce the bug 🐞
  7. Everyone wins! 🙌

Why do I have to install Magnemite?

How is this different than other screen recorders?

Other screen recorders are usually general purpose and designed for tech-savy users. For example, kap or QuickTime’s New Screen Recording work well when you are recording your screen for a demo.

But these tools are difficult for a Support Team to explain to a user because you need to answer the following questions:

Magnemite solves this specific use case by answering these questions in the following way:

Getting started

Clone this repository

git clone

Install dependencies

npm install

Update the config file src/config.ts

Build the code

npm run build

Deploy the server file

node src/server.js

Start magnemite

npm start

Navigate to different pages, the screen is capture the whole time

Click the “Report Bug” button to end the recording and auto-upload to the server

View the .tgz file on the server, extract the tarball, and open playall.html with your browser


See Issues for work that is still in progress.

What’s with the name?

Magnemite is named after the pokemon. You can see more code/projects named after pokemon at repokemon.


Want to help? Start by cloning this repo, and then install, build, and run!

git clone
npm install
npm run build
npm start


For more info on working with streams, buffers, byte arrays, and files, see the following:


Developed by