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

@memoarchitect/tools

v0.20.0

Published

MEMO tools — SysML v2 parser, semantic model, validation, project operations, and CLI

Readme

0.15.0 is an experimental release. It adds support for the OpenSysML compiler alongside SysIDE; the OpenSysML path is new and has had less use. The next version will be more stable. Pin an exact version.


Status: published preview. @memoarchitect/tools is available on npm. Its API, CLI flags, and model semantics remain pre-stable and may change before version 1.0.

Version compatibility

memo, memo-tools, and memo-architect share a MAJOR.MINOR compatibility line. Any 0.6.x release is intended to work with the other 0.6.x products; patch versions may advance independently for fixes and additive changes.

VERSION is the sole release-version source for this repository. Run pnpm version:sync after changing it; CI rejects unsynchronized generated version fields and automatically creates the matching v<version> tag when the change reaches main.

The meMO stack

meMO is a four-layer stack — adopt what you need (see memoarchitect.com):

| Layer | What | Where | |---|---|---| | 01 Ontology | Typed SysML v2 elements and architecture definitions | Docs · Repository | | 02 Methodology | Profiles, viewpoints, rules, workflow gates | Docs · Repository | | 03 Tools | Model engine + memo CLI — this repo | Docs · Repository | | 04 Architect | Web workbench over the same model | Docs · Repository |

Supported tools

Memo Tools is one npm package with internal engine, CLI, and maintainer-tool modules. The UI lives in Memo Architect; editor functionality belongs to a user's SysML v2 editor rather than a MEMO-specific VS Code extension.

| Surface | Purpose | Typical use | |---|---|---| | @memoarchitect/tools | Parser, semantic model, validation, analysis, project operations, document tooling, and the memo CLI | Reused by the CLI and Memo Architect server | | tools/ontology-tools | Internal dependency-free repository checks (not an npm package) | Maintainers validating ontology structure and editor portability |

CLI usage

# Create and inspect a project
memo-architect init --list
memo-architect init my-device
memo-architect --example gpca
memo-architect ontology show

# Upgrade a pre-native project safely (reports only unless --write is supplied)
memo-architect convert . --diff
memo-architect convert . --write

# Validate locally or in CI
memo validate .
memo validate . --format junit --output validation.xml

# Exchange and publish model data
memo-architect export json --output model.json
memo-architect export dot --output model.dot
memo-architect import csv elements.csv
memo-architect ontology export owl --output ontology.ttl
memo pack --output model.kpar
memo publish

# Generate assurance artifacts
memo-architect dhf status
memo-architect export dhf --format docx --output dhf-output
memo validate --standards

Run memo --help or memo <command> --help for the complete command surface.

memo-architect convert moves legacy project content beneath model/catalog/, rewrites the corresponding packages/imports/artifact URIs, and creates the native project binding entrypoint where needed. It plans before touching the filesystem, refuses collisions, and is idempotent. Review its default dry-run output (or --diff) before using --write; then run memo validate and your external SysML gate. The full walkthrough, with what it changes and what it leaves to you, is Convert an Old Project.

Jupyter analysis samples

Every memo-architect init project includes analysis/Samples/ with seven portable Syside notebooks. They cover model overview and quality, architecture hotspots, change-impact exploration, semantic charts, an ownership graph, and an HTML/CSV inventory table. The notebooks discover either model/ or src/ automatically, so the same samples work with default templates and worked examples.

Run them in a licensed Syside environment:

python -m venv analysis/.venv
source analysis/.venv/bin/activate
python -m pip install jupyterlab syside
cd analysis
jupyter lab --port 8888

Documentation

The published documentation starts with installation and a first useful workflow, then covers validation, import, export, CI, configuration, and the library API. Its source starts at docs/index.md. Build it locally with:

python3 -m pip install "mkdocs>=1.6" "mkdocs-material>=9.5" "pymdown-extensions>=10.0"
pnpm run docs:build

Toolchain selection

Each toolchain role is filled by one provider: the validator answers "is this valid SysML/KerML?", lowering answers "what can MEMO ingest from this revision?", and the packager builds the archive. MEMO chooses none of them. A project names the compiler it uses, and memo-architect init writes compiler: opensysml into a new one:

toolchain:
  compiler: opensysml    # syside or opensysml
  packager: internal     # internal or sysand; only `memo pack` needs it

Anyone who wants another overrides it for themselves, without editing the project: memo-architect config set compiler syside (or Architect's Compiler control) writes their own settings file. MEMO finds the compiler's tools in the usual places, so nothing else needs saying. compiler names the validator and lowering together; a role can also be set on its own:

toolchain:
  validator: syside
  lowering: opensysml
  syside:
    executable: ~/.local/bin/syside
    configFile: ./syside.toml
    warningsAsErrors: true  # default: true
    diagnose: all           # default: all; all | external | project | none
  sysand:
    executable: ~/.local/bin/sysand
    configFile: ./sysand.toml

memo validate and memo pack run syside check --diagnose all --warnings-as-errors by default when it is the selected validator, automatically including the resolved ontology directories. Set warningsAsErrors: false or use diagnose: none to relax the check. memo pack delegates archive creation to SysAnd when selected. Relative executable and config paths resolve from the project directory; bare executable names resolve through PATH. A selected tool that is not installed is a clear error, never a silent fallback.

Every leaf under toolchain also has a generated flag, so a project can be run against a different toolchain without editing its settings:

memo compile --probe                 # which provider, which binary, which version
memo compile --effective                # settings + flags, fully resolved
memo validate --toolchain.validator syside

See docs/reference/configuration.md for toolchain.compiler.

Core library usage

@memoarchitect/tools is the reusable implementation layer. Protocol DTOs expose its supported application boundary; the CLI is an adapter over that boundary, and React does not import core internals directly.

import { buildMemoModel } from '@memoarchitect/tools';

The API is pre-stable. Pin an exact 0.6.x patch when embedding it directly.

Maintainer checks

pnpm run ontology:lint    # naming, inheritance, and ontology policy checks
pnpm run ontology:compat  # static SysML v2 / SysIDE portability checks
pnpm run build
pnpm run test
pnpm run type-check

The authoritative external parse/package validation remains the sysand build in the sibling memo repository within memo-meta. Diagram and presentation generators are private release/documentation machinery maintained in memo-meta, not product tools.

Layout

packages/tools/       internal source for the root @memoarchitect/tools package
tools/ontology-tools/ internal repository lint and editor-portability checks

The engine resolves ontology content through its exact @memoarchitect/ontology npm dependency. In memo-meta, pnpm links that dependency to the sibling memo checkout for iterative development.

Current repository relationship

  • A standalone clone installs @memoarchitect/[email protected] from npm.
  • The Tools repository contains no ontology git submodule.
  • The private memo-meta workspace keeps memo and memo-tools as sibling submodules and applies local pnpm overrides for cross-repository work.
  • Publishing Tools never depends on the meta repository.

Quickstart

Requires Node.js 26 or later and pnpm 9.15.

git clone https://github.com/memoarchitect/memo-tools.git
cd memo-tools
pnpm install && pnpm run build && pnpm run test

# validate the GPCA reference pump
pnpm run example:validate

Memo Tools deliberately exposes no CLI commands that require Architect. Interactive development and static viewer builds are provided by the separate @memoarchitect/architect command.

License

MIT © 2026 memoarchitect