English | 繁體中文
AI Updates tracks the official changelogs for Claude Code, Codex, Antigravity, Grok Build, Muse Code, Usage, and GitHub CLI. It preserves immutable source records, supports AI-written plain-language updates in Traditional Chinese (zh-TW) and English (en), each fact-checked against the official text by a second AI model, and publishes feeds for a static website and compatible applications.
https://aqua5230.github.io/ai-updates/
| Tool | Official source |
|---|---|
| Claude Code | Anthropic Claude Code changelog |
| Codex | OpenAI Codex releases |
| Antigravity | Antigravity CLI changelog (falls back to local scripts/sync_agy.py if public source is unavailable) |
| Grok Build | Grok Build changelog (fetched through Jina Reader because x.ai blocks direct requests) |
| Muse Code | Muse Code changelog (no release dates on the page; the date a version is first fetched is used) |
| Usage | Usage changelog |
| GitHub CLI | GitHub CLI releases |
data/raw/ stores daily imports of official changelog entries. Records are written per version and are never overwritten. data/curated/ holds fact-checked, plain-language versions of those entries in Traditional Chinese and English.
scripts/build.py combines both layers into generated artifacts:
ai_updates.json: compatibility feed for the legacy application, containing up to three latest curated versions per tool.daily.json: daily feed containing up to three latest versions per tool; it uses curated content when available and otherwise retains the official source text withcurated: false.docs/data.json: version index for the static website; complete raw and curated history for each tool is stored indocs/history/<tool_id>.jsonso the homepage does not need to load the full history at once.
data/
raw/<tool_id>/<version>.json # Immutable official source records
curated/<tool_id>/<version>.json # Fact-checked zh-TW and en records
badge_overrides.json # Card badges fixed by hand where the rule misjudges
docs/
index.html # GitHub Pages site
data.json # Generated website version index
history/<tool_id>.json # Generated full history per tool
v/ # Generated per-version static pages
feed.xml # Generated RSS feed
sitemap.xml # Generated sitemap
robots.txt # Generated robots.txt
llms.txt # Generated LLM reference file
scripts/
fetch.py # Fetch official changelogs
build.py # Build generated feeds
make_cards.py # Generate zh-TW per-version sharing cards
sync_agy.py # Import local Antigravity CLI changelog output
.github/workflows/
daily.yml # Daily fetch and review-issue workflow
sync-usage.yml # Compatibility-feed sync workflow
ai_updates.json # Generated compatibility feed
daily.json # Generated daily feed
tests/ # Test suite
Requires Python 3.13. The repository's runtime scripts use only the Python standard library.
python3 scripts/fetch.py
python3 scripts/build.py
uv run ruff check scripts tests
uv run pytest -qThe test suite builds into a temporary directory and never writes to the working tree, so the two commands above are safe to run in any order.
If the public Antigravity source is unavailable, import changelog output from an installed CLI instead:
python3 scripts/sync_agy.pyThis command runs agy changelog; existing version records are not overwritten.
- The daily workflow opens an issue for each newly imported version.
- A local scheduled job has an AI model write the zh-TW and en plain-language
itemsindata/curated/<tool>/<version>.json. A model from a different family then checks each card againstoriginaland the findings are fixed, for up to several rounds. - Only versions that pass lint, the fact check,
python3 scripts/build.py, andpytestare committed; the issue is then closed. - Versions that still fail keep their issue open for a person to take over.
Curated content must accurately reflect the official entries. The original field retains the original English text.
daily.ymlruns daily, fetches official changelogs, opens review issues for newly discovered versions, builds generated feeds, and commits changed source and feed files.sync-usage.ymlsynchronizedai_updates.jsontoaqua5230/usagefor apps older than 0.27. It has been disabled since 2026-10-16, so usage keeps its last synced copy;gh workflow enable sync-usage.ymlresumes it.
aqua5230/usage is the primary consumer of the compatibility feed.
If re-enabled, sync-usage.yml requires a fine-grained personal access token named USAGE_SYNC_TOKEN.
- In GitHub, open Settings → Developer settings → Personal access tokens → Fine-grained tokens.
- Set the resource owner to
aqua5230, choose Only select repositories, and selectaqua5230/usage. - Grant only Contents: Read and write repository permission.
- Add the token as the
USAGE_SYNC_TOKENActions secret in this repository under Settings → Secrets and variables → Actions.
Do not store the token in repository files or workflows. Replace it when it expires.