Release Tracker
Track GitHub repository releases and generate prioritized summaries.
- Rating
- 4.8 (66 reviews)
- Downloads
- 614 downloads
- Version
- 1.0.0
Overview
Track GitHub repository releases and generate prioritized summaries.
Complete Documentation
View Source →
Release Tracker
Monitor one or more GitHub repositories for new releases, generate prioritized summaries, and deliver them to configured channels.
Prerequisites
ghCLI installed and authenticated (gh auth status)- For Discord delivery: Discord channel configured in OpenClaw
Quick Start
Single Repo Setup
Set up tracking for one repo with a cron job:
1. Create a config file at <workspace>/release-tracker.json (see Configuration)
2. Create a cron job (isolated, daily) that runs the check
3. The cron reads config, checks GitHub, compares versions, posts if new
Multi-Repo Setup
Add multiple repos to the repos array in config. Each repo has independent version tracking and priority rules.
Configuration
Store config at :
{
"repos": [
{
"owner": "openclaw",
"repo": "openclaw",
"displayName": "OpenClaw",
"priorities": ["discord", "voice", "telegram", "cron", "agent"],
"outputChannel": "<your-discord-channel-id>",
"outputFormat": "discord-forum",
"language": "en",
"includePrerelease": false
}
],
"versionStore": "release-tracker-state.json",
"schedule": "0 10 * * *",
"timezone": "UTC"
}
Config Fields
repos[].owner/repos[].repo— GitHub owner/reporepos[].displayName— friendly name for output headerrepos[].priorities— keywords to sort higher in summary (matched against changelog text)repos[].outputChannel— Discord channel/forum ID for deliveryrepos[].outputFormat—discord-forum|discord-channel|telegram|slack|textdiscord-forum: create a new forum post per releasediscord-channel: send a message to a Discord channeltelegram: send a message to a Telegram chat/channel/groupslack: send a message to a Slack channeltext: return plain text (for piping to other tools)repos[].language—zh|en(summary language)repos[].includePrerelease— track pre-release/RC versionsrepos[].filter— optional,stable|all(default:stable)versionStore— filename for tracking last-seen versions (relative to workspace)schedule— cron expression for check frequencytimezone— timezone for cron schedule
Workflow
Check for New Releases
- Read config from
release-tracker.json - Read version state from
- For each repo:
gh release list --repo <owner>/<repo> --limit 5 --json tagName,publishedAt,isPrerelease
- Compare latest tag against stored version
- If new version found, proceed to summarize
Generate Summary
- Fetch release content:
gh release view <tag> --repo <owner>/<repo> --json body
- If release body is sparse, also check local CHANGELOG if the package is installed:
cat /opt/homebrew/lib/node_modules/<package>/CHANGELOG.md
- Parse and categorize changes into sections:
- Priority items — lines matching any
prioritieskeywords, shown first - Features — new capabilities
- Breaking changes — marked with ⚠️
- Fixes — bug fixes relevant to user (skip internal/CI fixes)
- Security — collapsed at bottom unless critical
- Skip: CI/test-only changes, dependency bumps, internal refactors
Prioritization Rules
Sort entries within each section:
- Lines matching
prioritieskeywords → top - User-facing changes → middle
- Internal/infrastructure → bottom
- Omit: trivial fixes, test-only changes, doc typos
Format Output
#### Discord Forum (discord-forum)
Title: 📦 v{version}
Body:
## {displayName} v{version}
### ⭐ Key Features
{priority matches + features, formatted as bold headers with descriptions}
### ⚠️ Breaking Changes
{breaking changes with migration notes}
### 🔧 Fixes
{relevant fixes, grouped by area}
### 🛡️ Security
{security fixes, brief}
#### Discord Channel (discord-channel)
Compact single-message format, max 2000 chars.
#### Telegram (telegram)
Same structure as Discord Channel but respects Telegram formatting (markdown v2). Max 4096 chars.
#### Slack (slack)
Same structure, uses Slack mrkdwn formatting. Max 3000 chars.
#### Text (text)
Plain markdown, no emoji headers.
Deliver
Based on outputFormat:
discord-forum:message(action=thread-create, channelId=, threadName= , message= )discord-channel:message(action=send, channel=discord, target=, message=) telegram:message(action=send, channel=telegram, target=, message=) slack:message(action=send, channel=slack, target=, message=) text: return as tool result
Update State
After successful delivery, update version store:
{
"openclaw/openclaw": {
"lastVersion": "2026.2.22-2",
"lastCheckedAt": "2026-02-24T10:00:00+09:00",
"lastPublishedAt": "2026-02-22T..."
}
}
Cron Setup
Create the cron job for automated checking:
Name: release-tracker
Schedule: {config.schedule} with tz {config.timezone}
Session: isolated
Payload: agentTurn with message referencing this skill
Delivery: none (skill handles its own delivery)
The cron message should instruct the agent to:
- Read
release-tracker.jsonfor config - Read
release-tracker-state.jsonfor last versions - Check each repo via
gh release list - If new releases found, generate summaries and deliver
- Update state file
Manual Check
User can trigger manually: "check for new releases" or "any updates on openclaw?"
The agent should:
- Load config
- Run the check workflow
- Report findings conversationally (not necessarily in forum format)
Installation
openclaw install release-tracker
💻Code Examples
3. The cron reads config, checks GitHub, compares versions, posts if new
### Multi-Repo Setup
Add multiple repos to the `repos` array in config. Each repo has independent version tracking and priority rules.
## Configuration
Store config at `<workspace>/release-tracker.json`:}
### Config Fields
- `repos[].owner` / `repos[].repo` — GitHub owner/repo
- `repos[].displayName` — friendly name for output header
- `repos[].priorities` — keywords to sort higher in summary (matched against changelog text)
- `repos[].outputChannel` — Discord channel/forum ID for delivery
- `repos[].outputFormat` — `discord-forum` | `discord-channel` | `telegram` | `slack` | `text`
- `discord-forum`: create a new forum post per release
- `discord-channel`: send a message to a Discord channel
- `telegram`: send a message to a Telegram chat/channel/group
- `slack`: send a message to a Slack channel
- `text`: return plain text (for piping to other tools)
- `repos[].language` — `zh` | `en` (summary language)
- `repos[].includePrerelease` — track pre-release/RC versions
- `repos[].filter` — optional, `stable` | `all` (default: `stable`)
- `versionStore` — filename for tracking last-seen versions (relative to workspace)
- `schedule` — cron expression for check frequency
- `timezone` — timezone for cron schedule
## Workflow
### Check for New Releases
1. Read config from `release-tracker.json`
2. Read version state from `<versionStore>`
3. For each repo:{security fixes, brief}
#### Discord Channel (`discord-channel`)
Compact single-message format, max 2000 chars.
#### Telegram (`telegram`)
Same structure as Discord Channel but respects Telegram formatting (markdown v2). Max 4096 chars.
#### Slack (`slack`)
Same structure, uses Slack mrkdwn formatting. Max 3000 chars.
#### Text (`text`)
Plain markdown, no emoji headers.
### Deliver
Based on `outputFormat`:
- `discord-forum`: `message(action=thread-create, channelId=<outputChannel>, threadName=<title>, message=<body>)`
- `discord-channel`: `message(action=send, channel=discord, target=<outputChannel>, message=<body>)`
- `telegram`: `message(action=send, channel=telegram, target=<outputChannel>, message=<body>)`
- `slack`: `message(action=send, channel=slack, target=<outputChannel>, message=<body>)`
- `text`: return as tool result
### Update State
After successful delivery, update version store:}
## Cron Setup
Create the cron job for automated checking:1. Create a config file at <workspace>/release-tracker.json (see Configuration)
2. Create a cron job (isolated, daily) that runs the check
3. The cron reads config, checks GitHub, compares versions, posts if new{
"repos": [
{
"owner": "openclaw",
"repo": "openclaw",
"displayName": "OpenClaw",
"priorities": ["discord", "voice", "telegram", "cron", "agent"],
"outputChannel": "<your-discord-channel-id>",
"outputFormat": "discord-forum",
"language": "en",
"includePrerelease": false
}
],
"versionStore": "release-tracker-state.json",
"schedule": "0 10 * * *",
"timezone": "UTC"
}Title: 📦 v{version}
Body:
## {displayName} v{version}
### ⭐ Key Features
{priority matches + features, formatted as bold headers with descriptions}
### ⚠️ Breaking Changes
{breaking changes with migration notes}
### 🔧 Fixes
{relevant fixes, grouped by area}
### 🛡️ Security
{security fixes, brief}{
"openclaw/openclaw": {
"lastVersion": "2026.2.22-2",
"lastCheckedAt": "2026-02-24T10:00:00+09:00",
"lastPublishedAt": "2026-02-22T..."
}
}Name: release-tracker
Schedule: {config.schedule} with tz {config.timezone}
Session: isolated
Payload: agentTurn with message referencing this skill
Delivery: none (skill handles its own delivery)Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.