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

@muverse/cli

v0.2.11

Published

Version Engine for Repo Semantic Evolution (CLI)

Readme

@muverse/cli - Command-Line Interface

Command-line interface for μVERSE (Version Engine for Repo Semantic Evolution). This CLI provides all the power of μVERSE's semantic versioning engine through an easy-to-use command-line tool, perfect for local development and custom CI/CD systems.

Installation

Global Installation

npm install -g @muverse/cli

Local Installation

npm install --save-dev @muverse/cli

Using npx (no installation)

px @muverse/cli

Usage

Basic Usage

Navigate to your project root and run:

muverse

This will:

  1. Detect your project type (Gradle, etc.)
  2. Analyze commits since the last version
  3. Calculate version bumps based on Conventional Commits
  4. Update version files
  5. Generate changelogs
  6. Create git commits and tags
  7. Push changes to remote

Dry Run

Preview what would happen without making changes:

muverse --dry-run

Specify Project Root

muverse /path/to/project

Specify Adapter

If auto-detection fails or you want to be explicit:

muverse --adapter gradle

Command Reference

muverse [REPOSITORYROOT]

Calculate and apply semantic version changes.

Arguments:

  • REPOSITORYROOT - Path to the repository root (default: .)

Flags:

| Flag | Description | Default | | ------ | ------------- | --------- | | --dry-run | Run without writing or pushing changes | false | | --adapter <value> | Language adapter (e.g., gradle). Auto-detected if not provided | - | | --push-tags | Push tags to origin | true | | --no-push-tags | Don't push tags to origin | - | | --prerelease-mode | Generate pre-release versions instead of final versions | false | | --prerelease-id <value> | Pre-release identifier (e.g., alpha, beta, rc) | alpha | | --bump-unchanged | In prerelease mode, bump modules even when no changes are detected | false | | --add-build-metadata | Add build metadata with short SHA to all versions | false | | --timestamp-versions | Use timestamp-based prerelease identifiers (requires prerelease-mode) | false | | --append-snapshot | Add -SNAPSHOT suffix to all versions if supported by adapter | false | | --push-changes | Commit and push version changes and changelogs to remote | true | | --no-push-changes | Don't commit and push changes | - | | --generate-changelog | Generate or update changelog files for changed modules | true | | --no-generate-changelog | Don't generate changelogs | - | | --output-file <value> | Write calculated versions to a file in JSON format | - |

📖 Detailed Pre-release Documentation: See @muverse/core PRERELEASE.md for comprehensive examples and use cases.

Examples

Release Version

Apply semantic versions based on commits:

muverse

Pre-release Versions

Generate beta pre-release versions:

muverse --prerelease-mode --prerelease-id beta

Timestamp Versions

Generate timestamp-based pre-release versions for CI builds:

muverse --prerelease-mode --prerelease-id alpha --timestamp-versions --add-build-metadata

This generates versions like: 1.2.3-alpha.20251208.1530+abc1234

Gradle SNAPSHOT Versions

Generate Gradle SNAPSHOT versions:

muverse --append-snapshot

Development Workflow

Bump all modules (even unchanged) for development:

muverse --prerelease-mode --bump-unchanged

Local Testing

Test without committing or pushing:

muverse --dry-run --no-push-changes --no-push-tags

Manual Git Operations

Calculate versions without automatic git operations:

muverse --no-push-changes --no-push-tags

Then manually review, commit, and push.

Configuration

μVERSE CLI uses the same configuration system as the core library. Configuration files are automatically detected in your repository root.

Supported Configuration Files

  1. package.json (in a "muverse" property)
  2. .muverserc (JSON or YAML)
  3. .muverserc.json
  4. .muverserc.yaml / .muverserc.yml
  5. .muverserc.js (JavaScript)
  6. muverse.config.js (JavaScript)

Configuration Example

.muverserc.json:

{
  "defaultBump": "patch",
  "commitTypes": {
    "feat": "minor",
    "fix": "patch",
    "perf": "patch",
    "refactor": "patch",
    "docs": "ignore",
    "test": "ignore",
    "chore": "ignore"
  },
  "dependencyRules": {
    "onMajorOfDependency": "minor",
    "onMinorOfDependency": "patch",
    "onPatchOfDependency": "none"
  }
}

For more configuration examples, see the core package documentation.

Gradle Project Support

The CLI supports Gradle projects with:

  • Multi-module projects via settings.gradle(.kts)
  • Version management through root gradle.properties file
  • Dependency detection via custom Gradle init script
  • Both DSLs: Groovy and Kotlin

Example Project Structure

myproject/
├── settings.gradle.kts
├── build.gradle.kts
├── gradle.properties      # All module versions defined here
├── core/
│   └── build.gradle.kts
└── api/
    └── build.gradle.kts

Example gradle.properties

# Root module version
version=1.0.0

# Submodule versions
core.version=2.1.0
api.version=1.5.0

Commit Message Format

μVERSE uses Conventional Commits to determine version bumps:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Examples:

  • feat(api): add new endpointminor bump
  • fix(core): resolve memory leakpatch bump
  • feat!: breaking API changemajor bump

Breaking Changes

Breaking changes trigger major version bumps:

  1. Using ! after the type: feat!: remove deprecated API

  2. Using BREAKING CHANGE: in the footer:

    feat: update API
       
    BREAKING CHANGE: The old API is removed

CI/CD Integration

GitHub Actions

- name: Install μVERSE CLI
  run: npm install -g @muverse/cli

- name: Version modules
  run: muverse --adapter gradle

GitLab CI

version:
  script:
    - npm install -g @muverse/cli
    - muverse --adapter gradle

Jenkins

stage('Version') {
  steps {
    sh 'npm install -g @muverse/cli'
    sh 'muverse --adapter gradle'
  }
}

Local Development

Add to your package.json:

{
  "scripts": {
    "version": "muverse --dry-run",
    "version:release": "muverse"
  }
}

Then run:

npm run version        # Dry run
npm run version:release # Actual release

Troubleshooting

Command Not Found

If muverse is not found after global installation:

  1. Check npm global bin path: npm bin -g
  2. Ensure it's in your PATH
  3. Try using npx: npx @muverse/cli

Permission Denied on Push

If you get permission errors when pushing:

  1. Ensure you have proper git credentials configured
  2. Check if you have write access to the repository
  3. Use --no-push-changes --no-push-tags to skip git operations

No Version Bump Detected

If versions aren't bumping:

  1. Check commit messages follow Conventional Commits format
  2. Verify you have commits since the last version
  3. Check configuration if certain commit types are ignored
  4. Use --dry-run to see what μVERSE detects

Adapter Not Detected

If auto-detection fails:

  1. Verify your project has the expected build files
  2. Explicitly specify the adapter: --adapter gradle
  3. Check if your project structure is supported

Development

Building from Source

# From monorepo root
npm install
npm run build

# Or from CLI package
cd packages/cli
npm install
npm run build

Running Locally

# After building
node dist/index.js --dry-run

Publishing

npm publish --workspace packages/cli --access public

Related Packages

License

MIT License - see LICENSE for details.