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

webgme-domain-tools

v0.7.0

Published

webdot — CLI for WebGME: run plugins on .webgmex project files from anywhere, without a browser or server

Readme

webgme-domain-tools

webdot — command-line tools for WebGME projects (no browser UI, no WebGME server).

Work from .webgmex project files and a webgme-setup.json catalog. The main use case today is running plugins against any model from anywhere: plugins that ship with a studio, a local plugin directory, or tools you install once into a user registry.

It also helps you inspect domains (repo layout, model trees, meta) and keep an editable session workspace when you want multi-step changes with explicit save/discard.

Complements webgme-cli (scaffold + server); it does not replace it.

Install

npm install -g webgme-domain-tools
# or without a global install:
npx webgme-domain-tools --help

Requires Node.js 20+.

Quick start

# Inspect a studio (directory with webgme-setup.json)
webdot tree repo -C /path/to/my-studio
webdot ls plugins -C /path/to/my-studio

# Run a plugin against a seed .webgmex (catalog name)
webdot plugin run MyPlugin --seed MySeed -C /path/to/my-studio --dry-run

# Or point at any plugin folder and any .webgmex (no catalog required)
webdot plugin run --plugin-dir ./SomePlugin --webgmex ./model.webgmex --dry-run

Installable plugins from this repo

The npm package ships the CLI only. Domain-agnostic plugins maintained here live under plugins/ on GitHub and are installed into your user registry (~/.webdot or $WEBDOT_HOME).

| Plugin | What it does | Install | |--------|----------------|---------| | GenerateMetaTs | Emits TypeScript domain instance types from seed meta (--artifacts-out) | see below |

# Install GenerateMetaTs from this repository
webdot plugin install kecso/webgme-domain-tools --subdir plugins/GenerateMetaTs

webdot plugin list
webdot plugin info GenerateMetaTs

# Run it against a studio seed (writes under --artifacts-out)
webdot plugin run GenerateMetaTs --seed StateMachine -C /path/to/studio --artifacts-out ./generated

Pin a release or branch when you want a fixed revision:

webdot plugin install kecso/[email protected] --subdir plugins/GenerateMetaTs

From a local clone of this repo you can also install by path:

webdot plugin install ./plugins/GenerateMetaTs

Later we may add a shorthand to install all bundled toolbox plugins in one step. Until then, use --subdir (or a local path) per plugin.

Commands

| Command | Description | |---------|-------------| | plugin run | Run a plugin from the terminal against a .webgmex (--seed / --webgmex, --plugin-dir, --dry-run, --out, --artifacts-out, …) | | plugin info | Show metadata.json + config defaults | | plugin install | Install a plugin into the user registry (local path or owner/repo[@ref], --subdir, --as, --force) | | plugin list / plugin uninstall | List or remove installed plugins | | tree / tree repo | Repository component tree from webgme-setup.json | | tree --seed | Model tree from a file-project seed | | seed meta | MetaAspectSet views (json, descriptor, metalang, tree, …) | | ls | Compact catalog listing | | session open\|status\|save\|discard\|close | Stateful workspace (.webdot/ working copy) |

Name resolution for plugin run / info: --plugin-dir → project catalog → installed registry.

Session (optional)

For multi-step edits without touching the original .webgmex until you save:

webdot session open --seed MySeed -C /path/to/studio
webdot plugin run SomePlugin --dry-run   # uses the open session by default
webdot session save                      # or: session discard / session close

Development

git clone https://github.com/kecso/webgme-domain-tools.git
cd webgme-domain-tools
npm install
npm run build
npm test

Project tracking and roadmap: docs/PROJECT.md.
Publishing to npm: docs/PUBLISH.md.

License

MIT