Keep A Changelog Manager
Easily maintain your project changelog!

A CLI tool for managing Keep A Changelog changelogs
ChangeLogger is a PowerShell module and CLI tool for managing changelogs in a standardized format. It uses the "Keep a Changelog" format and provides a set of functions and classes to create, manage, and manipulate changelogs and changes.
You can use the changelog
command to interact with the changelog, including adding changes, creating versions, and lising both of those.
How to use
First, you need to import the module:
Import-Module ChangeLogger
Then, you can start using the CLI tool:
changelog <command> [<options>]
Available commands
Initialize a new changelog
changelog init
This command initializes (created) a new changelog file in the current directory. It creates a CHANGELOG.md
file with some default content.
You can edit the title and description of the changelog file manually and the script will automatically update the file when you add changes or versions.
Add a change
changelog add <type> <description> [--version <version>]
or, when using standard Keep a Changelog types:
changelog <type> <description> [--version <version>]
If you use standard types, the command will automatically recognize the type and add it to the changelog. Otherwise, you have to use the add
command to specify the type. A warning will be shown if the type is not a standard type:
WARNING: Change type '{type}' is not a standard type. Standard types are: Added, Changed, Deprecated, Removed, Fixed, Security
Remove a change
changelog remove <type> <description> [--version <version>]
This command removes a change from the changelog. It searches for the change by type and description, and removes it from the changelog file.
List changes
changelog list [<version>]
This will list all changes in a version. If no version is specified, it will list all changes in the 'Unreleased' section.
Release a version
changelog release <version>
Releasing a version will show the version number in the changelog as well as the release date. All changes in the 'Unreleased' section will be moved to the new version section.
List all versions
changelog versions
This will list all versions in the changelog, including the 'Unreleased' section.
Yank a version
changelog yank <version>
Yanking a version will mark it as yanked in the changelog. This is useful for versions that should not be used anymore, for example, if they contain a critical bug.
Unyank a version
changelog unyank <version>
Undoes the yanking of a version.
Show help
changelog help
This command shows the help message for the CLI tool, including all available commands and options.
Example usage
>>> changelog init
>>> changelog Added "README.md file"
>>> changelog add Breaking "The sky is no longer blue"
WARNING: Change type 'Breaking' is not a standard type. Standard types are: Added, Changed, Deprecated, Removed, Fixed, Security
>>> changelog list
Changes for version 'Unreleased' (2):
[Added] README.md file
[Breaking] The sky is no longer blue
>>> changelog release 1.0.0
Released version '1.0.0'.
>>> changelog versions
Available versions (1):
[1.0.0] - 2025-07-04
The CHANGELOG.md
file will look like this:
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-07-04
### Added
- README.md file
### Breaking
- The sky is no longer blue