NPM Package

Automate Your Git Releases

Create Git tags following semantic versioning standards with ease. Tagy automates version bumping, tag creation, and release management - all from your command line.

MIT License
Global Install
Semantic Versioning
Terminal
# Install globally
npm i tagy -g

# Create a patch release (1.0.0 → 1.0.1)
tagy --patch

# Create a minor release (1.0.0 → 1.1.0)
tagy --minor

# Create a major release (1.0.0 → 2.0.0)
tagy --major

Get Started in Seconds

Install Tagy globally and start automating your release workflow immediately

Installation

npm i tagy -g

Install Tagy globally to use it in any project directory. Once installed, you can start creating releases immediately.

Basic Usage

# Navigate to your project
cd my-project

# Create a patch release
tagy --patch

# Check current version
tagy --info

Tagy automatically updates your package.json version, creates a Git tag, and pushes it to your remote repository.

Powerful Release Management Features

Everything you need to automate your release workflow and follow semantic versioning best practices

Semantic Versioning

Follow semantic versioning standards with patch, minor, and major release commands.

Auto Version Bump

Automatically updates package.json version and creates Git commits with proper messages.

Multiple File Updates

Update version numbers in multiple files using regex patterns and custom replacement rules.

GitHub Releases

Automatically create GitHub releases with the --auto-release flag for seamless deployment.

Flexible Configuration

Customize tag prefixes, soft tagging, and define custom versioning rules via package.json.

Rollback Support

Use --reverse to remove the last tag and revert to the previous version when needed.

Command Reference

Complete guide to all available Tagy commands and options

Version Commands

Patch Release

tagy --patch
tagy -p

# Example: 1.0.0 → 1.0.1

For backward-compatible bug fixes

Minor Release

tagy --minor
tagy -m

# Example: 1.0.0 → 1.1.0

For new backward-compatible features

Major Release

tagy --major

# Example: 1.0.0 → 2.0.0

For breaking changes

Utility Commands

Custom Version

tagy --custom 2.1.0

# Set a specific version

Manually define semantic version

Project Info

tagy --info

# Shows current version and status

Get project version information

Rollback

tagy --reverse

# Removes last tag and reverts

Remove last tag and revert to previous

Soft Tagging

tagy --soft --patch

# Creates version without Git tag

Update version without committing changes

Advanced Configuration

Customize Tagy's behavior to fit your project's specific needs

Package.json Configuration

{
  "name": "my-project",
  "version": "1.0.0",
  "tagy": {
    "tagPrefix": "v",
    "soft": false,
    "auto-release": true,
    "replace": [
      {
        "files": "src/version.js",
        "from": "version: '\\d+\\.\\d+\\.\\d+'",
        "to": "version: '__VERSION__'"
      },
      {
        "files": "README.md",
        "from": "Version \\d+\\.\\d+\\.\\d+",
        "to": "Version __VERSION__"
      }
    ]
  }
}

Configuration Options

tagPrefix

Add prefix to version tags (e.g., "v1.0.0")

"tagPrefix": "v"

soft

Create version without Git tag by default

"soft": true

auto-release

Automatically create GitHub releases

"auto-release": true

replace

Update version in multiple files using regex

"replace": [
  {
    "files": "style.css",
    "from": "Version: \\d+\\.\\d+\\.\\d+",
    "to": "Version: __VERSION__"
  }
]

Custom Scripts

Execute custom logic before creating releases with tagy.js scripts

Custom tagy.js Script

// tagy.js - Custom pre-release script
"keyword">const fs = require('fs');
"keyword">const path = require('path');

module.exports = "keyword">function(version, data) {
  console.log(`Creating release ${version}`);
  
  // Update changelog
  "keyword">const changelog = `## ${version} - ${"keyword">new Date().toISOString().split('T')[0]}

- New features and improvements

${fs.readFileSync('CHANGELOG.md', 'utf8')}`;
  
  fs.writeFileSync('CHANGELOG.md', changelog);
  
  // Update documentation
  "keyword">const readme = fs.readFileSync('README.md', 'utf8');
  "keyword">const updatedReadme = readme.replace(
    /Version: \d+\.\d+\.\d+/g,
    `Version: ${version}`
  );
  fs.writeFileSync('README.md', updatedReadme);
  
  console.log('Pre-release tasks completed');
};

Script Capabilities

Changelog Updates

Automatically update changelog files with new version information and release notes.

Build Processes

Run build commands, compile assets, or execute tests before creating the release.

Multi-file Updates

Update version numbers across multiple files with custom logic and patterns.

Perfect for Every Project

Tagy adapts to your workflow whether you're building libraries, applications, or managing multiple projects

NPM Libraries

Perfect for managing NPM package releases with automatic version bumping and publishing workflows.

Web Applications

Streamline deployment pipelines by automating version tagging for web applications and services.

CLI Tools

Manage releases for command-line tools and utilities with consistent versioning across platforms.

Team Projects

Standardize release processes across team members with consistent tagging and versioning rules.

Microservices

Coordinate versioning across multiple microservices with automated tagging and release coordination.

CI/CD Integration

Integrate with CI/CD pipelines to trigger deployments and automate release documentation.

Ready to Automate Your Releases?

Join developers worldwide who trust Tagy to manage their release workflows. Start using it today and transform how you handle versioning.

npm i tagy -g

Pro Tip: Using npx ensures you always get the latest version without cluttering your global packages.

Need help? Check out the GitHub issues for support and feature requests.