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

create-siltrun

v0.1.2

Published

Scaffold a Silt multiplayer project — `npm create siltrun my-game`.

Readme

create-siltrun

Scaffold a Silt multiplayer project: an authoritative room contract and a client, in one directory, wired together and ready to run.

npm create siltrun@latest my-game
cd my-game
npm install
npm run dev

npm run dev boots both halves at once. Your room runs through the siltrun CLI, which serves room info on http://localhost:4000, and the Vite client runs on http://localhost:5173. Open the client in two windows and you have a multiplayer room. Edit room.ts and both sides reload.

The project directory is required. Running the command with no directory prints usage and exits.

Templates

npm create siltrun@latest my-game -- --template tower-defense

| Template | What you get | |---|---| | minimal | The default. The smallest real room: each player moves a ship by tapping a target, the server clamps that intent and eases the ship toward it, and every client renders the same authoritative state. | | tower-defense | Co-op tower defense. Two players share one always-warm room, ready up, and defend a path against waves together. | | mass-grid | Territory capture in the Paper.io style. Leave your land to draw a trail, loop back to claim what you enclosed, cut a rival by crossing their trail. | | turn-based-grid | A starter for agent-first games: a deterministic world that agents play and humans watch, with an action API, an ASCII view alongside the graphics view, an emote channel, and scripted stub agents to prove it. |

An unknown template name fails immediately and lists the ones that exist.

What you get

my-game/
  room.ts            your contract: tick(state, inputs), runs server-side at 60Hz
  src/               the client, built on @siltrun/react and @siltrun/stage
  package.json       a dev script that runs the room and Vite together

room.ts is the whole server. It default-exports a tick(state, inputs) function that runs 60 times a second and owns the truth. Clients send intent; the tick decides what actually happens.

This is a plain Node initializer with no dependencies of its own, so it runs anywhere npm create does.

Docs

Full guides and API reference: https://silt.run/docs/