# release-it — Automated Versioning and Package Publishing > A CLI tool that automates version bumping, changelog generation, Git tagging, and publishing to npm or GitHub Releases with interactive or CI-driven workflows. ## Install Save in your project root: # release-it — Automated Versioning and Package Publishing ## Quick Use ```bash # Interactive release npx release-it # Non-interactive with specific version bump npx release-it minor --ci # Dry run to preview what would happen npx release-it --dry-run ``` ## Introduction release-it automates the repetitive tasks of software releases: bumping the version in package.json, generating a changelog, creating a Git tag, pushing to the remote, and publishing to npm or creating a GitHub Release. It works interactively for manual releases or fully automated in CI pipelines. ## What release-it Does - Bumps version numbers following semantic versioning (major, minor, patch) - Creates annotated Git tags and pushes them to the remote repository - Generates changelogs from conventional commits or custom templates - Publishes packages to npm, GitHub Packages, or other registries - Creates GitHub or GitLab releases with auto-generated release notes ## Architecture Overview release-it is a Node.js CLI built on a plugin architecture. The core orchestrates a release pipeline: version determination, file updates, Git operations, and publishing. Each step is handled by internal plugins (npm, git, github, gitlab) or community plugins. Hooks allow running arbitrary commands at any lifecycle point. ## Self-Hosting & Configuration - Install as devDependency: npm install -D release-it - Create .release-it.json or add release-it key to package.json - Configure git.requireCleanWorkingDir and git.push behavior - Set npm.publish to true/false depending on registry needs - Add hooks for pre:bump, after:bump, before:release lifecycle events ## Key Features - Plugin system for extending with changelog generators and custom publishers - Interactive prompts showing each step before execution - Monorepo support via workspaces plugin for coordinated releases - Conventional Changelog plugin for automatic CHANGELOG.md generation - Pre-release versions (alpha, beta, rc) with increment strategies ## Comparison with Similar Tools - **semantic-release** — fully automated via CI, no interactive mode, opinionated - **changesets** — monorepo-focused with PR-based version management - **standard-version** — deprecated predecessor with similar scope - **np** — npm-focused publishing helper without Git release features ## FAQ **Q: Can I use release-it in a CI pipeline without prompts?** A: Yes, use the --ci flag or set ci: true in configuration to skip all interactive prompts. **Q: How does it determine the next version?** A: By default it prompts you. With conventional-changelog plugin, it infers from commit messages (feat = minor, fix = patch, BREAKING = major). **Q: Does it support monorepos?** A: Yes, via the @release-it/bumper plugin or workspaces configuration for coordinated multi-package releases. **Q: Can I run custom scripts during the release?** A: Yes, use hooks in config: hooks.before:init, hooks.after:bump, hooks.after:release for arbitrary shell commands. ## Sources - https://github.com/release-it/release-it - https://github.com/release-it/release-it#readme --- Source: https://tokrepo.com/en/workflows/asset-a5123bcf Author: AI Open Source