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

@choigawoon/msw-vfs-cli

v0.5.3

Published

Fast, cross-platform CLI for reading and editing MapleStory Worlds .map/.ui/.gamelogic/.model assets without the editor or MCP.

Readme

@choigawoon/msw-vfs-cli

Fast, cross-platform CLI for reading and editing MapleStory Worlds assets — .map, .ui, .gamelogic, .modelwithout running the editor or an MCP server.

Two layers, same data:

  • Layer 1 — VFS / file-level (ls / read / tree / grep / …): path-based, Unix-shell feel. Drop-in replacement for the Python msw_vfs.py tool that ships inside msw-map-ui-edit — same commands, same output shape.
  • Layer 2 — Entity-oriented (read-entity / list-entities / edit-component / …): GameObject-style bundles. New in 0.4.0; what the viewer uses.

Pure Node.js — no python3 / python / MS Store alias problems on Windows.

Install

npm install -g @choigawoon/msw-vfs-cli

Requires Node.js 18+. No Python required.

Usage

# Summary
msw-vfs path/to/map01.map summary

# Layer 2 — primary (entity-oriented)
msw-vfs path/to/map01.map list-entities /maps/map01
msw-vfs path/to/map01.map read-entity   /maps/map01/BG
msw-vfs path/to/map01.map find-entities Hero --by name
msw-vfs path/to/map01.map edit-entity   /maps/map01/BG --set enable=false
msw-vfs path/to/map01.map edit-component /maps/map01/BG MOD.Core.TransformComponent \
  --set Enable=false

# Entity CRUD
msw-vfs path/to/map01.map add-entity /maps/map01 MyEnemy \
  -c MOD.Core.TransformComponent -c MOD.Core.SpriteRendererComponent
msw-vfs path/to/map01.map remove-entity /maps/map01/MyEnemy
msw-vfs path/to/map01.map rename-entity /maps/map01/MyEnemy MyBoss

# Layer 1 — advanced (file-level)
msw-vfs path/to/map01.map tree / -d 2
msw-vfs path/to/map01.map grep "BossRush" /
msw-vfs path/to/map01.map ls /maps/map01 -l

# .model (entity template) — its own subcommand set
msw-vfs path/to/DefaultPlayer.model info
msw-vfs path/to/DefaultPlayer.model list
msw-vfs path/to/DefaultPlayer.model set speed 5.5
msw-vfs path/to/DefaultPlayer.model remove speed

# YAML round-trip / declarative world
msw-vfs --type map path/to/file.yaml summary
msw-vfs path/to/map01.map export-yaml -o map01.yaml
msw-vfs map01.yaml import-yaml -o map01.map
msw-vfs --type world world.yaml build-world -o ./out

Run msw-vfs --help for the full command list. For the layer-by-layer catalog see COMMANDS.md.

Persistent modes

Individual CLI invocations pay Node's cold-start cost. For batches (AI agents, IDE extensions):

# HTTP daemon — later calls auto-proxy to this process
msw-vfs daemon --detach
msw-vfs stop

# stdin/stdout pipe — one Node process amortizes N queries
msw-vfs serve

How it differs from the Python version

  • No Python runtime — works on any machine with Node 18+.
  • Windows-safe — no MS Store Python alias conflicts (exit 49 issue).
  • Faster cold start — ~80 ms vs ~150 ms.
  • Same JSON output shape — existing skill prompts continue to work unchanged.

License

MIT