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

@zokugun/artifact

v0.4.3

Published

Boilerplate your project & keep your configurations up to date

Downloads

504

Readme

@zokugun/artifact

MIT licensed NPM Version License License License

artifact is a CLI for boilerplating your project by composing reusable config packages, merging overlapping files, and keeping every artifact in sync with a single update command.

Why artifact

  • Compose curated configuration packages ("artifacts") published on npm and mix several of them into a single repo.
  • Merge overlapping files intelligently using the built-in routes/steps pipeline.
  • Keep artifacts synchronized by running artifact update, optionally in CI with --verbose for traceability.
  • Support variant-aware installs and branch overlays so packages can expose multiple flavors while staying DRY.

Mergeable Files

  • *.json (JSON or JSONC)
  • *.yml
  • *.yaml
  • *ignore
  • *rc (YAML, JSON or JSONC)
  • *.config.ts

Installation

Choose the install mode that fits your workflow:

  • Global CLI (recommended when you apply artifacts across many repos):

    npm install -g @zokugun/artifact
  • Project-local CLI (handy for repo-specific automation):

    npm install -D @zokugun/artifact
    npx artifact --help

Quick Start

  1. Install the CLI (globally or locally as shown in Installation).

  2. Add the artifacts you want to compose:

    artifact add @daiyam/lang-js @daiyam/lang-ts @daiyam/npm @daiyam/npm-ts

    The command above installs the following packages:

  3. Inspect the git diff created by the install. Keep overrides you like, discard unwanted changes, then rerun artifact update whenever upstream packages change.

Artifacts published to npm must be prefixed with artifact-.

Command Reference

artifact add

Registers and applies one or more artifacts in the current project.

  • Syntax: artifact add <artifact...> [options]
  • Useful flags: -v, --verbose to show detailed install output.
  • Artifacts are stored in a .artifactrc* so subsequent updates know which packages to pull.

<artifact> can be name or name:variant.

artifact list / artifact l

Shows the artifacts currently tracked in .artifactrc*, including versions and, when available, requested variants.

  • Syntax: artifact list
  • Alias: artifact l
  • Output: prints each artifact as name@version:variant.

artifact update / artifact up

Applies or refreshes the files provided by each installed artifact. Re-run it whenever upstream packages change.

  • Syntax: artifact update [options]
  • Alias: artifact up
  • Advanced: pass -v, --verbose for an execution trace of routes, variants, and branches.
  • Artifact authors can control how updates behave via .artifactrc files shipped inside their artifacts.

Best practices

Inspect the git diff after running to keep intentional overrides and drop unwanted changes.

Core Concepts

The next sections dive deeper into the primitives that make artifact powerful: templating, variants, and branch overlays.

Artifact Layout

The configuration/boilerplate files must be put inside the folder configs.

For example, the package @daiyam/artifact-npm-cli-ts:

npm-cli-ts/
  ├── configs/
  │  ├── bin/
  │  │  └── #[[package.json.name]]
  │  ├── bin/
  │  │  ├── command/
  │  │  │  └── hello.ts
  │  │  └── cli.ts
  │  ├── npmignore                  // => .npmignore
  │  ├── package.json
  ├── LICENSE
  ├── package.json
  └── README.md

Looking to build your own artifact? See Authoring artifacts for a step-by-step authoring guide.

Templating

During installs and updates, artifact runs every text file (and file name) through a template engine. Anywhere you place #[[path/to/file.ext.property]], the engine:

  • loads that JSON/YAML file from the target project,
  • reads the property,
  • and substitutes the value—perfect for wiring the target's package.json.name, license, or runtime settings into generated files.

You can also emit timestamps with helpers like #[[date.utc]].

Read docs/templating.md for full syntax.

Variants

Variants let an artifact expose multiple named flavors of its configuration (for example 14, 20, stable, next). Consumers can request a variant in their install config, while package authors declare defaults and remap keys via .artifactrc.

See docs/variants.md for a full walkthrough, including examples of how to structure the variants folder.

Branches

Branches are lightweight conditional overlays that live under branches/[artifactName] (or [artifactName:variant]). They activate only when the matching artifact (and optional variant) is present, letting you ship targeted tweaks like per-language .nvmrc files without duplicating whole packages.

Learn more in docs/branches.md, including matching rules and best practices for layering branches after variants.

More Documentation

Donations

Support this project by becoming a financial contributor.

License

Copyright © 2021-present Baptiste Augrain

Licensed under the MIT license.