Get all version updates of Claude Code from yesterday to now, and output a structured changelog summary report.
When to Use
Triggered when the user requests the following operations:
- "claude changelog" / "what has CC updated" / "claude code latest update"
- "what's new in claude code" / "latest version"
- "what version did claude code release today"
Phase 1: Data Collection
1.1 Get the latest releases
Run the following command to get the recent GitHub Releases (fetch enough to cover all versions from yesterday to today):
gh api repos/anthropics/claude-code/releases --jq '.[0:30] | .[] | {tag_name, published_at, body}' 2>/dev/null
If gh command is unavailable, fall back to curl:
curl -s "https://api.github.com/repos/anthropics/claude-code/releases?per_page=30"
1.2 Determine the time range
Default range: yesterday CST 00:00 to the current time.
The user can override the default range:
| User input | Filtering rule |
|---|---|
| Default (unspecified) | Yesterday CST 00:00 ~ current time |
| today / today | Today CST 00:00 ~ current time |
| Last N days | N days ago CST 00:00 ~ current time |
| latest / latest | Only the latest 1 version |
| all / all | The most recent 30 versions |
First use date command to calculate the UTC timestamp corresponding to yesterday CST 00:00, then use published_at to filter releases.
# 计算昨天 CST 00:00 的 UTC 时间(即昨天 UTC 16:00)
SINCE=$(TZ=Asia/Shanghai date -v-1d +"%Y-%m-%dT00:00:00+08:00" 2>/dev/null || TZ=Asia/Shanghai date -d "yesterday" +"%Y-%m-%dT00:00:00+08:00")
echo "筛选起点: $SINCE"
The GitHub API returns UTC time; convert to CST (UTC+8) for display.
Phase 2: Analysis and Classification
Analyze the filtered versions.
2.1 Change classification
Classify the entries in each release body into the following categories:
| Category | Tag | Description |
|---|---|---|
| NEW | New features | New user-perceivable features |
| IMPROVE | Improvements | Enhancements to existing features |
| FIX | Fixes | Bug fixes |
| SECURITY | Security | Security-related fixes |
| PERF | Performance | Performance optimizations, memory optimizations |
| PLATFORM | Platform | Platform-specific fixes (Windows/macOS/Linux/VS Code) |
2.2 Importance annotation
Evaluate the importance of each change:
- HIGH: new features, breaking changes, security fixes
- MEDIUM: feature improvements, common bug fixes
- LOW: platform-specific fixes, minor optimizations
Phase 3: Output Report
Output a changelog summary in markdown format:
# Claude Code Changelog Report
> 时间范围:{start_date} ~ {end_date} CST
> 版本数:{count} 个({earliest_version} → {latest_version})
## 速览
> **值得关注的更新:**
> - {HIGH importance item 1}
> - {HIGH importance item 2}
> - ...
## 版本详情
### v{version} — {YYYY-MM-DD HH:MM} CST
**新功能**
- {item}
**改进**
- {item}
**修复**
- {item}
---
### v{version} — {YYYY-MM-DD HH:MM} CST
...
## 统计
| 类别 | 数量 |
|------|------|
| 新功能 | {n} |
| 改进 | {n} |
| 修复 | {n} |
| 性能 | {n} |
| 平台 | {n} |
Output rules:
- Display time uniformly in CST (UTC+8)
- Keep the original text of each version's change entries, and add the category tag at the beginning of the line
- Versions are ordered by timefrom newest to oldestarranged
- If there are no new versions within the time range, state that there are no updates in that period
- Save the report as
claude-changelog-{date}.mdto the current working directory
Edge Cases
- GitHub API unavailable: fall back to
curlDirectly pull the CHANGELOG.md raw file:curl -s "https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md" | head -200 - No network: Prompt the user to check the network connection
- gh not installed: Automatically fall back to curl
- No versions within the time range: Output "No new version released during this period" along with information about the most recent version