Perform bulk operations on multiple, non consecutive blocks!


You could use the Copy Extension button below to individually install this extension. To install, just paste anywhere in your Roam graph and click "Yes, I Know What I'm Doing".

Manual Installation

If the extension doesn't work after using the copy extension button above, try installing manually using the instructions below.

First create a block with the text {{[[roam/js]]}} on any page in your Roam DB. Then, create a single child of this block and type three backticks. A code block should appear. Copy this code and paste it into the child code block in your graph:

var existing = document.getElementById("roamjs-multi-select");
if (!existing) {
  var extension = document.createElement("script");
  extension.src = ""; = "roamjs-multi-select";
  extension.async = true;
  extension.type = "text/javascript";

Finally, click "Yes, I Know What I'm Doing".


Roam natively supports bulk operations when blocks are consecutive. This extension gives you the ability to perform those same bulk operations on non consecutive blocks!

To use the multi select, hold on CTRL on Windows or CMD on Mac before clicking a block. Once multiple blocks are selected, you could do the following operations:

  • Move blocks - Pick any of the selected block bullets and drag it to the new location.
  • Copy blocks - Hitting CTRL+C (Windows) or CMD+C (Mac) will copy the contents of the non consecutively selected blocks.
  • Cut blocks - Hitting CTRL+X (Windows) or CMD+X (Mac) will cut the contents of the non consecutively selected blocks.
  • Copy block refs - Hitting CTRL+Shift+C (Windows) or CMD+Shift+C (Mac) will copy the references of the non consecutively selected blocks.
  • Merge blocks - Hitting CTRL+Shift+M (Windows) or CMD+Shift+M (Mac) will merge the text content of the blocks into one block.



This extension is brought to you by RoamJS! If you are facing any issues reach out to or click on the chat button on the bottom right.

If you get value from using this extension, consider sponsoring RoamJS by clicking on the button below!

A special thanks to those who's contributions also helped make this extension possible:

Other Extensions