strip or randomize unwanted annotations inserted by Genius

Usage no npm install needed!

<script type="module">
  import geniusBlender from '';


Genius Blender

stop the Genius web annotator

The Story So Far

Quick Start

To remove Genius annotations, just add this one line of HTML to your post, page, or site:

<script type="text/javascript" src="//"></script>

This should work even if you don't control your own server or content management software, such as with hosted blogging services, so long as the host allows scripts in your content.

Bonkers Mode

Bonkers Mode deliberately embraces the primary failing of Genius Defender, which was that the annotations weren't removed completely, and traces were left behind. It tries to very visibly break the Genius product by moving the annotations around randomly instead of just cleanly stripping them. This is eXtReMeLy dIsRuPtIvE, so perhaps Genius will eventually offer a proper opt-out to site owners instead of forcing them to use this solution.

Bonkers Mode

To enable Bonkers Mode, just add a second script with a global variable containing a numeric interval, like this:

<script type="text/javascript">var genius = {interval: 1000};</script>
<script type="text/javascript" src="//"></script>

The interval controls how frequently the annotations will move. It is given in milliseconds, and can be as large as 30000 (thirty seconds) or as small as 500 (half a second). The latter is slow enough to be safe for people with epilepsy.


Genius could quite easily block the instance of the script I've linked to above from running on their annotation pages, so you are encouraged to host your own copy and share it with anybody who can't do the same. If you fork this repository on GitHub, a copy will be made available via GitHub Pages, located at {your-github-username} You can also make it a part of your site's build by installing it from npm, or you can download it manually. In any of these scenarios, changing the filename of the script should also make it even harder for Genius to recognize and suppress.

There are absolutely no restrictions on how you can use this code.

Nerds Complaining

A global variable was the easiest way to both allow this to be loaded as a remote script and also make it easy for site owners to set customized configuration options like the optional time interval, which also acts as a switch for Bonkers Mode. Sites that are automatically including it in builds are unlikely to use Bonkers Mode, so in those cases the global variable will not be present anyway. Feel free to change this in your fork.