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

@runmu.sh/ext-mooedit

v1.0.1

Published

Edit MOO verbs, properties and notes in a real code editor: MOO syntax colours, a linter, snippets, a diff before you save. Handles MCP simpleedit and LambdaCore local edit.

Readme

MOO editor

A code editor for MOO games in μClient. When the game hands you text to edit (a verb, a description, a note), it opens here with MOO syntax colours, a linter and snippets. You review a diff before anything is sent back.

MOO code with the linter

| | | |---|---| | The diff before Save | Local edit asks before an unusual upload command |

What it does

  • MCP simpleedit (dns-org-mud-moo-simpleedit 1.0). The game's @edit opens the editor. Save to game sends -set with the text, one line per line. A save made on two of your devices reaches the game once.
  • LambdaCore local edit (#$# edit name: … upload: …), for MOOs without MCP 2.1. It is off by default. Turn it on per world in Settings → Extensions → MOO editor → Accept LambdaCore local editing. The footer shows the command Save runs ("Saving runs: @program #4:look"). A command that doesn't start with one of the world's upload verbs (Settings → Input; by default @program, @set-note-text, @set-note-value) asks first, once per world. It turns itself off when the game speaks MCP 2.1.
  • The editor itself, for any editor μClient opens in MOO code, text or Markdown (IRE.Composer, other extensions):
    • Code mode: line numbers, MOO highlighting, and a linter for unbalanced blocks and undefined variables. Prose mode wraps lines.
    • Snippets: if, for, while, try, tell, fork; in prose, a paragraph break, a rule, quotes and an ellipsis.
    • Preview renders ANSI colour codes in your terminal palette.
    • Diff: Review shows what changed, then Save to game. Ctrl+S does both.
    • Unsaved edits ask before the editor closes. Your draft follows you to your other devices.
    • New text from the game while you are editing shows Take it instead of replacing your work.
    • Colours come from your theme.

Without this extension μClient opens these editors as a plain text box.

Settings

| Setting | Default | | |---|---|---| | Accept LambdaCore local editing (#$# edit) | off, per world | See above. | | Check MOO code as you type | on | The linter. | | Text opens in | auto | Code for MOO code, prose for text; or always one. |

How it is built

src/index.ts is the entry (5 KB). It handles the protocols and registers the editor UI with mu.editor.provide. The editor (CodeMirror 6, the MOO language, the theme) is the lazy module dist/editor.js. It is listed in muclient.modules, pinned by sha256, and loaded with mu.modules.load the first time an editor opens (SDK 1.13).

npm install
npm run build      # dist/index.js and dist/editor.js; re-pins the module hash in package.json
npm test           # headless host (@runmu.sh/dev/test)
npm run dev        # dev server; μClient → Extensions → Developer

License

MIT