Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Release Notes CLI

Subscribe to Release Notes NPM Package Build Status MIT license


Release Notes CLI is a console tool for automated release notes management around traditional CHANGELOG files and our generalized Release Notes Schema Specification.


$ yarn global add @release-notes/cli
# or
$ npm i -g @release-notes/cli


$ release-notes -h

release-notes <command> [args]

  release-notes init [file]      Initialize release notes file
  release-notes convert [file]   Convert release notes to another format
  release-notes validate [file]  Validate release notes file
  release-notes publish [file]   Publish release notes file to the hub

  --version, -v  Show version number
  --help, -h     Show help

Initialize Release Notes

$ release-notes init [options] [file]
Parameter Default Value Description
--help, -h false Show help
--file, -f "./release-notes.yml" Path to the release-notes.yml file to create.
--title, -t "Release Notes of something awesome" Title of the project
--description, -d empty Project description. Can be passed multiple times.


If you want to initialize a new release-notes.yml file in your current working directory:

$ release-notes init --title 'Release notes of an awesome project.' \
    -d 'You can pass multiple lines of description' \
    -d 'This is a second line of description'

Convert Release Notes

$ release-notes convert [options] [file]
Parameter Default Value Description
--help, -h false Show help
--file, -f "./release-notes.yml" Path to some release-notes or CHANGELOG file
--type, -t empty - required The converter to use. Possible values are ["json", "release-notes", "yml", "changelog", "md"]

Convert a file into a release-notes.yml definition:

$ release-notes convert -t release-notes > release-notes.yml

Converts the release-notes.yml file in the cwd to json and print it to stdout:

$ release-notes convert -t json

Convert a release-notes.yml file to a

$ release-notes convert -t changelog path-to/release-notes.yml >

Print all released versions

The following command rely on jq a json processor for the console.

# show versions of the ./release-notes.yml file
$ release-notes convert -t json | jq .releases[].version

# or of a file
$ release-notes convert -t json path-to/ | jq .releases[].version

Validate Release Notes

$ release-notes validate [options] [file]
Parameter Default Value Description
--help, -h false Show help
--file, -f "./release-notes.yml" Path to a release-notes.yml file.

Validate the release-notes.yml file in the CWD:

$ release-notes validate

The command will exit with code 0 on success. Any other exit code can be treated as failure.

Publish Release Notes

$ release-notes publish [options] [file]

In order to publish some release notes to the release notes hub run:

$ release-notes publish \
    --scope my-user-name \
    --name some-package-name \
    --token PMxU6hEiLQPdoGkKy8rij1qsgrQmplk5gvWdJWubrNg= \

This would publish your ./ definition to

You can also pass the parameters via environment variables, which may be handy.

Parameter Environment variable Description
--scope, -s RELEASE_NOTES_SCOPE Your release-notes hub username
--name, -n RELEASE_NOTES_NAME Your release notes handle (only numbers, letters and dashes)
--file, -f RELEASE_NOTES_FILE Path to a or release-notes.yml file (default ./release-notes.yml)
--token, -t RELEASE_NOTES_TOKEN Your release-notes api token see (

Project Repositories


The files in this archive are released under MIT license. You can find a copy of this license in LICENSE.