@tpmjs/tools-changelog-entry
Generate a changelog entry in Keep a Changelog format. Accepts a version number and an array of changes with types (Added, Changed, Deprecated, Removed, Fixed, Security) and descriptions. Returns formatted markdown.
Test @tpmjs/tools-changelog-entry (changelogEntryTool) with AI-powered execution
0/2000 characters
Install this tool and use it with the AI SDK
npm install @tpmjs/tools-changelog-entrypnpm add @tpmjs/tools-changelog-entryyarn add @tpmjs/tools-changelog-entrybun add @tpmjs/tools-changelog-entrydeno add npm:@tpmjs/tools-changelog-entryimport { changelogEntryTool } from '@tpmjs/tools-changelog-entry';import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { changelogEntryTool } from '@tpmjs/tools-changelog-entry';
const result = await generateText({
model: openai('gpt-4o'),
tools: { changelogEntryTool },
prompt: 'Your prompt here...',
});
console.log(result.text);Available configuration options
versionstringVersion number (e.g., '1.2.0', 'v1.2.0', or 'Unreleased'). Should follow semantic versioning.
changesarrayArray of changes to include in this version
datestringOptional date for the release (YYYY-MM-DD). Defaults to today's date if not provided.
Schema extracted: 1/1/2026, 8:18:48 AM
Generate changelog entries in Keep a Changelog format.
npm install @tpmjs/tools-changelog-entry
import { changelogEntryTool } from '@tpmjs/tools-changelog-entry'; const result = await changelogEntryTool.execute({ version: '1.2.0', changes: [ { type: 'Added', description: 'New user authentication system' }, { type: 'Added', description: 'Support for OAuth providers' }, { type: 'Fixed', description: 'Memory leak in background worker' }, { type: 'Changed', description: 'Improved error messages' }, { type: 'Security', description: 'Updated dependencies to fix CVE-2024-1234' }, ], }); console.log(result.entry); // ## [1.2.0] - 2025-12-31 // // ### Added // // - New user authentication system // - Support for OAuth providers // // ### Changed // // - Improved error messages // // ### Fixed // // - Memory leak in background worker // // ### Security // // - Updated dependencies to fix CVE-2024-1234 console.log(result.types); // ['Added', 'Changed', 'Fixed', 'Security'] console.log(result.date); // '2025-12-31'
changelogEntryTool.execute(input)version (string, required): Version number (e.g., '1.2.0', 'v1.2.0', or 'Unreleased')changes (array, required): Array of change objects
type (string, required): One of: Added, Changed, Deprecated, Removed, Fixed, Securitydescription (string, required): Description of the changedate (string, optional): Release date in YYYY-MM-DD format. Defaults to today.Returns a ChangelogEntry object:
interface ChangelogEntry { entry: string; // Formatted markdown entry date: string; // Release date (YYYY-MM-DD) types: string[]; // Change types used version: string; // Version (normalized, without 'v' prefix) }
Following Keep a Changelog guidelines:
const result = await changelogEntryTool.execute({ version: '2.0.0', changes: [ { type: 'Added', description: 'Dark mode support' }, { type: 'Removed', description: 'Legacy API endpoints' }, ], });
const result = await changelogEntryTool.execute({ version: 'Unreleased', changes: [ { type: 'Added', description: 'Work in progress feature' }, ], });
const result = await changelogEntryTool.execute({ version: '1.1.0', date: '2024-01-15', changes: [ { type: 'Fixed', description: 'Critical bug in production' }, ], });
const result = await changelogEntryTool.execute({ version: '1.3.0', changes: [ { type: 'Added', description: 'User profiles' }, { type: 'Added', description: 'Settings page' }, { type: 'Added', description: 'Email notifications' }, ], }); // ### Added // // - User profiles // - Settings page // - Email notifications
// Example: Parse commit messages and create changelog const commits = [ 'feat: add dark mode toggle', 'fix: resolve memory leak', 'feat: implement user search', ]; const changes = commits.map(msg => { if (msg.startsWith('feat:')) { return { type: 'Added', description: msg.replace('feat: ', '') }; } if (msg.startsWith('fix:')) { return { type: 'Fixed', description: msg.replace('fix: ', '') }; } return null; }).filter(Boolean); const result = await changelogEntryTool.execute({ version: '1.4.0', changes, });
The tool validates:
Invalid inputs will throw descriptive errors.
MIT
Downloads/month
0
Quality Score