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

@wcnegentropy/cli

v0.2.6

Published

Command-line interface for the Universal Project Generator

Downloads

22

Readme

@wcnegentropy/cli

npm version license

Command-line interface for the Universal Project Generator. Generate software projects from seeds, templates, or manifests.

Installation

# Global install
npm install -g @wcnegentropy/cli

# Or run directly with npx
npx @wcnegentropy/cli seed 42

Quick Start

# Generate a project from a seed
upg seed 42 --output ./my-project

# Constrained generation
upg seed 42 --archetype backend --language typescript

# Batch generate and validate
upg sweep --count 10 --validate

# Validate a manifest
upg validate ./upg.yaml

# Generate with Pass 2 enrichment
upg seed 42 --enrich --output ./my-project

# Full enrichment depth
upg seed 42 --enrich --enrich-depth full --output ./my-project

Commands

| Command | Description | | -------------------------- | ---------------------------------------- | | upg seed <number> | Generate a project from a seed number (supports --enrich) | | upg sweep | Batch generate and validate projects (supports --enrich) | | upg generate [template] | Generate a project from a manifest template | | upg validate <manifest> | Validate a UPG manifest file | | upg init | Initialize a new UPG manifest | | upg search <query> | Search the project registry | | upg docs <manifest> | Generate documentation from a manifest | | upg test <manifest> | Test a manifest configuration | | upg preview <seed> | JSON preview of a seed (supports --enrich) |

upg seed <number>

Generate a single project from a seed:

upg seed 12345 --output ./my-project --verbose

Options:

  • -o, --output <path> — Output directory
  • -v, --verbose — Show file previews
  • -n, --name <name> — Custom project name
  • --archetype <type> — Force archetype (web, backend, cli, mobile, desktop, game, library)
  • --language <lang> — Force language (typescript, python, go, rust, java, kotlin, csharp, cpp, ruby, php, swift, dart)
  • --framework <fw> — Force framework
  • --json — Output machine-readable JSON
  • --force — Overwrite existing output directory

Enrichment Options:

  • --enrich — Enable Pass 2 enrichment
  • --enrich-depth <depth> — Enrichment depth (minimal | standard | full, default: standard)
  • --no-enrich-cicd — Skip CI/CD enrichment
  • --no-enrich-release — Skip release automation
  • --no-enrich-logic — Skip logic fill enrichment
  • --no-enrich-tests — Skip test generation
  • --no-enrich-docker-prod — Skip Docker production optimizations
  • --no-enrich-linting — Skip linting config enrichment
  • --no-enrich-env — Skip environment file generation
  • --no-enrich-docs — Skip documentation enrichment

upg sweep

Batch generate multiple projects:

upg sweep --count 100 --validate --save-registry ./registry/manifests/generated.json

Options:

  • -c, --count <n> — Number of projects (default: 5)
  • --validate — Validate generated projects
  • -o, --output <path> — Output directory
  • --save-registry <path> — Save valid projects to registry
  • -f, --format <fmt> — Output format (text | json)
  • -v, --verbose — Verbose output
  • --archetype <type> — Force archetype (web|backend|cli|mobile|desktop|game|library)
  • --language <lang> — Force language
  • --start-seed <number> — Starting seed number
  • --dry-run — Preview stacks without generating files
  • --only-valid — Keep retrying until N valid projects are found

Enrichment Options:

  • --enrich — Enable Pass 2 enrichment on generated projects
  • --enrich-depth <depth> — Enrichment depth (minimal | standard | full)

upg validate <manifest>

Validate a UPG manifest file:

upg validate ./templates/my-template/upg.yaml

upg generate [template]

Generate a project from a template:

upg generate my-template --dest ./output
upg generate my-template --dest ./output --json

Options:

  • -d, --dest <path> — Destination directory
  • --data <json> — JSON data for prompts (non-interactive)
  • --use-defaults — Use default values for all prompts
  • --dry-run — Show what would be generated without creating files
  • -f, --force — Overwrite existing files
  • --json — Output machine-readable JSON

upg search <query>

Search the project registry:

upg search "backend typescript"
upg search "rust" --format json

Options:

  • -t, --tags <tags> — Filter by tags (comma-separated)
  • -l, --limit <number> — Maximum results (default: 10)
  • -f, --format <format> — Output format (text | json)
  • --local — Use local registry only
  • --remote — Use remote registry only

upg init

Initialize a new UPG manifest:

upg init --name my-template --json

Options:

  • -n, --name <name> — Template name
  • -f, --force — Overwrite existing manifest
  • --json — Output machine-readable JSON

Enrichment Depth Presets

The --enrich-depth flag controls which enrichment strategies are applied:

| Preset | CI/CD | Release | Logic Fill | Tests | Docker Prod | Linting | Env Files | Docs | | ----------- | ----- | ------- | ---------- | ----- | ----------- | ------- | --------- | ---- | | minimal | ✓ | | | | | ✓ | ✓ | ✓ | | standard | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | full | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

Individual strategies can be toggled off using --no-enrich-* flags regardless of depth.

Programmatic Usage

import { createCli } from '@wcnegentropy/cli';

const cli = createCli();
cli.parse(process.argv);

Part of the Retro Vibecoder UPG Monorepo

This package is part of the Retro Vibecoder UPG monorepo — a Universal Procedural Generator that turns integers into software.

License

MIT — Copyright (c) 2026 WCNEGENTROPY HOLDINGS LLC. See LICENSE for details.