Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A marble diagram generator.

npm JavaScript Standard Style


Here's Swirly rendering the effect of the concatAll operator:


The image above was built from this marble diagram specification.

Diagram specifications use an extension of the syntax used for RxJS marble testing. Please consult the examples to learn how to create diagrams.

Web Version

You can use Swirly in your browser at

The Web version allows you to edit diagram specifications in real time and export them to an SVG or a PNG image.

CLI Version

Swirly is also available as a command-line utility. To run it, you need a sufficiently recent version of Node.js.

To install Swirly on your machine, just install the swirly npm package:

npm install -g swirly

Next, create diagram.txt with your diagram specification. Take a look at the examples to learn about the expected syntax.

You can then generate an SVG image from the specification by simply running:

swirly diagram.txt diagram.svg

Swirly can also output PNG images. Since PNG is a raster image format, you may want to increase the resolution to get a higher-quality result. You can do so by passing --scale followed by a percentage. For example, this will render the image at twice its original size:

swirly --scale=200 diagram.txt diagram.png


Tim De Pauw