npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mermaid-slice

v1.0.4

Published

Slice Mermaid sequence diagrams in markdown files

Readme

Usage

To use this tool, you need to have npm installed, more info in the NPM documentation.

npx mermaid-slice filename.md

Where filename.md is the path to a markdown file. The first time you do this, you will get a question if you want to install the tool to your computer.

Example

```mermaid
sequenceDiagram
participant a as Customer
participant b as Server
participant c as Baker
a ->> b: Give me a cookie
b ->> c: Bake a cookie
c -->> b: Here is the cookie
b -->> a: Here is your cookie
```
sequenceDiagram
participant a as Customer
participant b as Server
participant c as Baker
a ->> b: Give me a cookie
b ->> c: Bake a cookie
c -->> b: Here is the cookie
b -->> a: Here is your cookie

Maybe you just need to show the interaction between the customer and server, then you can first add a name to the base or master diagram:

%%% name master

and then add another mermaid section where you specifify the actors and what diagram to use as a base:

```mermaid
%%% actors a, b
%%% slice #master
```

When you then run this tool against your md file you get the following total md file:

```mermaid
%%% name master
sequenceDiagram
participant a as Customer
participant b as Server
participant c as Baker
a ->> b: Give me a cookie
b ->> c: Bake a cookie
c -->> b: Here is the cookie
b -->> a: Here is your cookie
```

```mermaid
%%% actors a, b
%%% slice #master

%% generated from #master

sequenceDiagram
participant a as Customer
participant b as Server
a->>b: Give me a cookie
b-->>a: Here is your cookie

```

The second diagram rendering as:

%%% actors a, b
%%% slice #master

%% generated from #master

sequenceDiagram
participant a as Customer
participant b as Server
a->>b: Give me a cookie
b-->>a: Here is your cookie

Perspective

If you want to slice from one or more actors and automatically include the actors they exchange messages with, use perspective.

When perspective is set, mermaid-slice will:

  1. Start with the perspective actors.
  2. Add all actors that send messages to or receive messages from those actors.
  3. Apply any actors lines after that as explicit + or - overrides.

Example:

```mermaid
%%% name order-flow
sequenceDiagram
participant customer
participant api
participant erp
participant mailer
customer->>api: Create order
api->>erp: Save order
erp-->>api: Saved
erp->>mailer: Send email
```

```mermaid
%%% perspective api
%%% actors -customer, +mailer
%%% slice #order-flow
```

In this case perspective api starts from customer, api, and erp, and then actors -customer, +mailer removes customer and adds mailer.

Running locally from cloned repo

npm run run (file)