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

@alistigo/calm-to-archify

v0.3.0

Published

Convert CALM architecture JSON to archify HTML diagrams

Readme

@alistigo/calm-to-archify

npm version License: MIT TypeScript CI

CLI that converts FINOS CALM architecture instances (.arch.json) into interactive HTML diagrams via archify.

Install

npm install -g @alistigo/calm-to-archify
# or
yarn global add @alistigo/calm-to-archify
# or
pnpm add -g @alistigo/calm-to-archify

As a dev dependency:

npm install -D @alistigo/calm-to-archify

Requires Node.js ≥ 18.

Commands

build (default)

Full pipeline: CALM JSON → archify JSON-IR → standalone HTML.

calm-to-archify systems/*.arch.json
calm-to-archify build systems/*.arch.json

Shell glob expansion passes all matched files as positional arguments. Each file produces two outputs next to the source: <unique-id>.archify.json and <unique-id>.archify.html.

Options

| Flag | Description | |------|-------------| | --output-dir,-o <dir> | Write outputs to <dir> instead of each file's own directory |

calm-to-archify systems/*.arch.json --output-dir .archify-out

transform

CALM JSON → archify JSON-IR only (no HTML rendering).

calm-to-archify transform path/to/my.arch.json --output path/to/output.archify.json

Options

| Flag | Description | |------|-------------| | --output,-o <path> | Output path for the archify JSON file (required) |

Input format

Accepts CALM architecture instances — files that contain nodes and relationships at the top level. Pattern files (.pattern.json) are JSON Schema documents and are not supported.

Customising node-type colors and legend labels

If your CALM documents use custom node-types (from a CALM extension), add an x-archify entry to the document's metadata array to control how each type is rendered:

{
  "metadata": [
    {
      "x-archify": {
        "node-types": {
          "module": { "component-type": "backend",  "legend-label": "Module" },
          "plugin": { "component-type": "external", "legend-label": "Plugin" },
          "skill":  { "component-type": "cloud",    "legend-label": "Skill"  }
        }
      }
    }
  ]
}

See docs/x-archify-metadata.md for the full reference — available component types, legend label overrides, node sublabel and tag mapping, fallback behaviour, and the exported TypeScript types and JSON Schema.

Diagram types and 1→N output

archify supports 5 diagram types: architecture, workflow, sequence, dataflow, and lifecycle. calm-to-archify currently produces only architecture diagrams (1→1 mapping). Support for deriving additional diagram types (flows, lifecycles) from the same CALM file — producing multiple HTML outputs — is planned.

See docs/archify-diagram-types.md for the full reference: all supported types, the planned 1→N output naming convention, and click panel customisation via sources.

About CALM

CALM (Common Architecture Language Model) is an open standard from FINOS for describing software architectures as machine-readable JSON. It lets you capture nodes (services, datastores, people) and the relationships between them in a way that can be validated, queried, and visualised automatically.

About archify

archify is an open-source tool that turns a structured JSON description of a system into a fully interactive standalone HTML diagram — no server required, no external dependencies at runtime. calm-to-archify uses archify under the hood to produce the HTML output.

Thanks

A big thank you to the FINOS CALM team for building and maintaining an open, vendor-neutral standard for architecture-as-code — making tooling like this possible.

And to the archify team for creating a lightweight, dependency-free renderer that turns plain JSON into beautiful interactive diagrams — great work.