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

@gamecrate/cli

v1.4.1

Published

Run a modded game in a container, with mods resolved from your local checkouts.

Readme

@gamecrate/cli

gamecrate launches a modded game inside a Docker container. You describe a profile once in one config file, then run it by name. Each profile gets its own save directory, its own logs, and only the mods it lists.

The tool knows nothing about any one game. A plugin supplies the file formats and the engine facts, so the core stays the same for every title.

This package is the gamecrate command itself. It resolves a profile to a mod set, stages that set, and launches the game. Without at least one plugin, it has no games to run.

Install

The package is not on npm yet, so build it from a clone of the monorepo:

git clone https://github.com/RimWorks/gamecrate.git
cd gamecrate
npm install
npm run build
npm install -g ./packages/cli

The build needs bun and Node 22 or newer.

First launch

Write ~/.config/gamecrate/profiles.yml. This is the smallest RimWorld config that runs:

plugins: ['@gamecrate/rimworld']
# Optional. Without it, gamecrate uses steamcmd from PATH, then a Docker image.
steamcmd:
  path: ~/.local/bin/steamcmd
games:
  rimworld:
    # The plugin already says source: mount and container: /game.
    gameFiles:
      host: ~/games/RimWorld
    image:
      ref: ghcr.io/your-org/rimworld:1.6
      acquire: pull
    # Optional. Only for workshop items a Steam install already downloaded.
    workshopRoot: ~/.steam/steam/steamapps/workshop/content/294100
    scanRoots:
      - path: ~/projects/mods
        maxDepth: 2
    profiles:
      dev:
        mods: [brrainz.harmony, yourname.yourmod]

The bare name @gamecrate/rimworld only resolves once the package is installed next to the config. Configuration shows both ways to point at a plugin. A workshop item reaches a profile two ways: gamecrate downloads it with steamcmd, or it reads an existing Steam install under workshopRoot. Both keys are optional, and Mod sources covers the choice. Then:

gamecrate doctor
gamecrate rimworld dev

doctor checks Docker, the image, the game directory, and the workshop root before anything launches. When a config uses workshop items, it also reports which steamcmd it found and the directories downloaded items land in. The second line resolves the dev profile, stages its two mods, and starts the game. gamecrate rimworld dev --print-plan shows what it would do without launching.

Documentation

| Read this | When you want to | | --- | --- | | Configuration | Write the config file, load a plugin, define profiles, or set per-repository defaults | | Mod sources | Pin a mod to a directory, a git repository, or a workshop item gamecrate downloads, and learn which copy wins | | The mods commands | Add, remove, and sync library pins from the command line | | Running | Launch, run in the background, read the result, close a window, and clean up | | Reference | Every subcommand, flag, environment variable, and exit code | | Writing a plugin | Teach gamecrate a new game |

@gamecrate/rimworld is the RimWorld plugin, and the one complete example of the plugin contract.