Nobody reads your PR titles. Especially not your users.
You merge "fix: offset bug in pagination endpoint" and your PM asks, "so what shipped this week?" Now you're scrolling through GitHub, rewriting commit messages into something a customer would understand.
I got tired of that loop, so I built Shiplog β a Python CLI that reads your merged PRs and rewrites them into clean, grouped changelogs.
One command:
bash
pip install shiplog-cli
shiplog generate your-org/your-repo --days 30 It fetches your merged PRs, runs each through an AI transform, and outputs a changelog grouped by category β New, Improved, Fixed, Infrastructure.
A PR titled fix: pagination offset bug in list endpoint becomes:
β Fixed
β Pagination now returns correct results β Previously, navigating past the first page of list views could skip or duplicate items due to an offset calculation error.
How it works
GitHub PRs β Shiplog API β { category, title, body } β Markdown or JSON
Quick examples
cd your-project
shiplog generate --days 14
`shiplog generate owner/repo --days 30 -o CHANGELOG.md`
shiplog generate owner/repo --format json
shiplog single "Add dark mode support" --body "Adds theme toggle in settings"
Why not just use git log?
git log gives you developer context. Changelogs need user context. "Refactor auth middleware to use JWT validation" means nothing to a customer.
Shiplog rewrites it as something like:
β Improved
β Login sessions are now more secure β We upgraded how authentication tokens are validated, improving security without any changes on your end.
That's the gap it fills.
Try it
pip install shiplog-cli
shiplog generate --days 7
It works on any public repo without auth. For private repoKEN or gh auth token
automatically.
Site: https://shiplog.arksoft.xyz Would love feedback β what would make this useful for your workflow?