chlog
2
总安装量
1
周安装量
#62764
全站排名
安装命令
npx skills add https://github.com/ariel-frischer/chlog --skill chlog
Agent 安装分布
claude-code
1
Skill 文档
chlog
YAML-first changelog CLI. Single CHANGELOG.yaml â auto-generated CHANGELOG.md â CI validation.
Commands
chlog init # Create CHANGELOG.yaml + .chlog.yaml (auto-detects repo URL)
chlog init --project myapp # Skip project name prompt
chlog validate # Validate YAML schema
chlog sync # Generate CHANGELOG.md from YAML
chlog check # CI gate: exit 0=sync, 1=stale, 2=invalid
chlog show # Terminal display (colors + icons)
chlog show 1.2.0 # Single version
chlog show --last 5 # Last N entries
chlog show --plain # No ANSI
chlog extract 1.0.0 # Markdown for one version (pipe to gh release)
chlog add added "Feature" # Add entry to unreleased
chlog add fixed -v 1.0.0 "Fix" # Add to specific version
chlog add changed -i "Refactor" # Add as internal entry
chlog add added "A" "B" # Add multiple entries at once
chlog remove added "Feature" # Remove exact entry from unreleased
chlog remove added -m "feat" # Remove by substring match
chlog remove fixed -v 1.0.0 "Fix" # Remove from specific version
chlog remove changed -i "Refactor" # Remove internal entry
chlog scaffold # Dry-run: conventional commits â YAML
chlog scaffold --write # Merge into CHANGELOG.yaml
chlog release 1.0.0 # Promote unreleased â 1.0.0 (today's date)
chlog release 1.0.0 --date 2026-03-01
Global flags: -f (CHANGELOG.yaml path), --config (.chlog.yaml path), --internal (include internal entries).
Schema
project: my-project
versions:
unreleased:
added:
- "New feature"
internal: # Excluded by default, use --internal
changed:
- "Refactored auth"
1.0.0:
date: "2024-01-01" # Required for released versions
added: []
changed: []
deprecated: []
removed: []
fixed: []
security: []
Categories are arbitrary YAML keys on each version. By default, the six Keep a Changelog categories are enforced (strict mode). Custom categories can be allowed via config.
Config (.chlog.yaml)
repo_url: https://github.com/org/repo # Auto-detected from git remote
include_internal: false # Include internal entries by default
categories: [added, changed, performance] # Custom allowed categories (optional)
strict_categories: false # false = accept any category (optional)
| Field | Default | Description |
|---|---|---|
categories |
Keep a Changelog 6 | Custom allowlist of category names |
strict_categories |
true |
false disables category validation entirely |
Scaffold Mapping
| Commit Type | Category | Tier |
|---|---|---|
feat |
added | public |
fix |
fixed | public |
refactor, perf |
changed | internal |
deprecate |
deprecated | public |
remove |
removed | public |
chore, docs, style, test, ci, build |
skipped | â |
Breaking changes (feat!:) â changed, prefixed BREAKING: .
Workflows
Setup: chlog init â edit CHANGELOG.yaml â chlog sync
Release: chlog scaffold --write â curate â chlog release 1.2.0 â chlog sync â chlog extract 1.2.0 > notes.md
CI: chlog validate && chlog check
Go Library
import "github.com/ariel-frischer/chlog/pkg/changelog"
c, _ := changelog.Load("CHANGELOG.yaml")
v, _ := c.GetVersion("1.0.0")
entries := v.Public.Get("added") // []string
v.Public.Append("fixed", "Bug fix") // add entry
v.Public.Remove("fixed", "Bug fix", false) // remove entry
md, _ := changelog.RenderMarkdownString(c)
c.Release("2.0.0", "2024-06-01")
changelog.Save(c, "CHANGELOG.yaml")