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

moomaid

v0.1.0

Published

Mermaid diagram renderer for MoonBit (ASCII and SVG output)

Readme

moomaid

Mermaid diagram renderer written in MoonBit. Outputs ASCII art or SVG.

Install

moon add mizchi/moomaid

CLI

# Render from file
just cli diagram.mmd
just cli --svg diagram.mmd

# Render from stdin
echo 'graph LR
  A --> B --> C' | just cli-stdin

# Sequence diagram from stdin
cat <<EOF | just cli-stdin
sequenceDiagram
  participant Client
  participant API
  participant DB
  Client->>API: Request
  API->>DB: Query
  DB-->>API: Result
  API-->>Client: Response
EOF

Options

--svg          Output SVG (default: ASCII)
--ascii        Output ASCII art
--width <n>    Max width for ASCII (default: 80)
--help         Show help

Diagram Types

Flowchart (graph LR / graph TD)

Use for visualizing data flow, module dependencies, and process graphs.

graph LR
  Input --> Process --> Output
graph TD
  Start[Start] --> Auth{Auth}
  Auth -->|pass| Load[Load Data]
  Auth -->|fail| Error[Error Page]
  Load --> Validate{Validate}
  Validate -->|ok| Process[Process]
  Validate -->|ng| Error
  Process --> Save[Save]
  Save --> Done[Done]
  Error --> Done

Sequence Diagram (sequenceDiagram)

Use for describing layer boundaries and API call flows.

sequenceDiagram
  participant Browser
  participant API
  participant Auth
  participant DB
  Browser->>API: POST /login
  API->>Auth: Validate token
  Auth-->>API: OK
  API->>DB: SELECT user
  DB-->>API: User data
  API-->>Browser: 200 JSON

Other supported types

  • stateDiagram-v2 - State machine diagrams
  • classDiagram - Class diagrams

Library Usage

// ASCII output
let ascii = @moomaid.render_to_string("graph LR\n  A --> B")

// ASCII with options
let options : @moomaid.Options = {
  use_ascii: false,
  padding_x: 2,
  padding_y: 1,
  box_border_padding: 1,
  max_width: 80,
}
let ascii2 = @moomaid.render_to_string("graph LR\n  A --> B", options~)

// SVG output (experimental)
let svg = @moomaid.experimental_render_to_svg("graph LR\n  A --> B")

TUI Viewer

Interactive terminal viewer with tab switching and Kitty graphics protocol support.

just tui
  • Tab / Shift+Tab: Switch diagrams
  • Up / Down: Scroll
  • s: Toggle ASCII / SVG mode (Kitty-compatible terminals)
  • q: Quit

License

Apache-2.0