lacspace-changelog

Conventional Commits → CHANGELOG + next semver.

● Live · v0.1.0npmSource
terminal
npx lacspace-changelog
What it does

Everything, in one command

lacspace-changelog reads the commits since your last version tag, parses them as Conventional Commits, and decides the next semver bump (breaking→major, feat→minor, fix/perf→patch, with sensible 0.x handling). It renders a Keep-a-Changelog-style section with commit, PR and compare links derived from your repository field, and prepends it to CHANGELOG.md. Separate version and notes commands make it a clean building block for CI pipelines and GitHub releases, and opt-in --bump/--commit/--tag flags can cut a release locally (it never pushes). Zero runtime dependencies.

Features

What's inside

Next-version from commits

breaking→major, feat→minor, fix/perf→patch, 0.x-aware.

Grouped, linked changelog

Features/Fixes/Perf/BREAKING with commit, PR and compare URLs.

CI-native

version and notes subcommands plus --json on everything, non-zero exit on failure.

Prereleases & overrides

--preid beta and --release-as major|minor|patch|<version>.

Safe release actions

Opt-in --bump/--commit/--tag, printed as a plan, never pushes.

Zero dependencies

Hand-written commit parser, semver engine and markdown renderer.

Injection-safe git

Every git call uses execFile with an arg array, never a shell string.

How to use

Copy, paste, done

Real commands and snippets — from a one-liner to the typed library.

Preview the release
terminal
npx lacspace-changelog preview

Range, commit counts and the computed bump — writes nothing.

Next version for CI
terminal
VER=$(npx lacspace-changelog version)

Prints only the version, e.g. 1.3.0.

GitHub release body
terminal
npx lacspace-changelog notes > NOTES.md

Just the new section, grouped and linked.

Write CHANGELOG.md
terminal
npx lacspace-changelog

Prepends the new section below the header.

Beta prerelease
terminal
npx lacspace-changelog version --preid beta

→ 1.3.0-beta.0, then beta.1…

Cut a release
terminal
npx lacspace-changelog --bump --commit --tag

Bumps package.json, commits, tags — never pushes.

Good for

What people build with it

Automate release notes in CI

Decide the next semver number before publishing to npm

Generate a GitHub release body

Maintain a Keep-a-Changelog file without a heavy toolchain

Start now

Run lacspace-changelog today

Free, open-source, no API keys. It's a CLI and a typed library.

terminal
npx lacspace-changelog