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

motely-wasm

v15.1.3

Published

Balatro seed searcher — JAML filter language, SIMD-vectorized, NativeAOT-LLVM WASM. Runs in browsers, Node, Deno, Bun, Vercel Edge. Single-threaded (no COEP/SharedArrayBuffer required).

Readme

motely-wasm

Find Balatro seeds with JAML filters — Jimbo's Ante Markup Language. SIMD-vectorized seed search (Motely engine, C# → NativeAOT-LLVM WASM). Browser + Node.

Install

npm install motely-wasm

Boot & Search

import motely, { MotelyWasm, MotelyWasmEvents } from "motely-wasm";

await motely.boot();

const jaml = `
name: Blueprint Copy Engine
deck: Red
stake: White
must:
  - rareJoker: Blueprint
    antes: [1, 2, 3]
should:
  - rareJoker: Brainstorm
    score: 80
`;

// Events are mutable handler slots — assign your callback, do not call .subscribe().
MotelyWasmEvents.notifyResult = (seed, score, tallyColumns) => console.log(seed, score, tallyColumns);
MotelyWasmEvents.notifyProgress = (seedsSearched, matchingSeeds) => { /* … */ };
MotelyWasmEvents.notifyComplete = (status, totalSeedsSearched, matchingSeeds) => { /* … */ };

const search = MotelyWasm.startRandomSearch(jaml, 10000);
// later: search.cancel();

CDN Delivery (recommended for MCP Apps / single-file bundles)

Every published version of motely-wasm is mirrored to a public CDN:

https://cdn.seedfinder.app/motely-wasm/<version>/index.mjs

Use this when your build can't (or shouldn't) bundle the WASM payload inline — for example:

  • MCP Apps bundled as a single HTML resource: dynamic import(cdn) keeps the HTML small and the browser caches the engine across tool invocations.
  • Vercel Functions / Cloudflare Workers: dynamic import avoids bundling ~11MB of WASM into every deployment artifact.
  • CDN-hosted static sites: one cached copy of the engine per version, shared across all pages.

Example — load the engine from CDN inside a Web Worker:

// searchWorker.ts
const mod = await import(/* @vite-ignore */
  `https://cdn.seedfinder.app/motely-wasm/12.4.1/index.mjs`);
await mod.default.boot();
const { MotelyWasm, MotelyWasmEvents } = mod;

Version must be pinned explicitly — the CDN serves immutable, versioned paths for long-term caching (Cache-Control: max-age=31536000).

Content Security Policy

When embedding in a sandboxed iframe (MCP Apps), allow both script loading and fetch/import:

script-src https://cdn.seedfinder.app
connect-src https://cdn.seedfinder.app

For MCP App servers using @modelcontextprotocol/ext-apps:

{
  ui: {
    csp: {
      resourceDomains: ["https://cdn.seedfinder.app"],
      connectDomains: ["https://cdn.seedfinder.app"],
    },
  },
}

Build

NativeAOT-LLVM + SIMD. Verify "LLVM compilation to IR finished" in build output.

<BootsharpLlvm>true</BootsharpLlvm>
<WasmEnableSIMD>true</WasmEnableSIMD>
<EmccFlags>-msimd128</EmccFlags>

The MONO_WASM: prefix in console logs is Bootsharp's glue log string — this is not a Mono runtime build. Motely is NativeAOT-LLVM.

Release Verification

Before publishing, verify the generated package, not a stale local wrapper:

dotnet publish Motely.Wasm/Motely.Wasm.csproj -c Release
cd Motely.Wasm/e2e
npm install ../../motely-wasm/motely-wasm-<version>.tgz
node release-smoke.mjs
node jamlyzer-preview-smoke.mjs

The release smoke must prove:

  • motely-wasm/package.json version equals MotelyWasm.getVersion()
  • MotelyWasm.getJamlSchema().version equals the package version
  • the schema does not expose removed aliases such as mixedJoker
  • generated Bootsharp exports boot and execute from the packed artifact

License

MIT