TestFlight Seat Monitor
/install testflight-monitor
TestFlight Seat Monitor
Monitor available TestFlight beta slots with smart app name lookups and silent batch checking. Get alerted only when seats open up.
What It Does
- Lookup TestFlight codes → app names using community data
- Check single URLs for immediate status
- Batch monitoring with state tracking (silent by default)
- Only alerts on changes (full → available)
- Configurable intervals (30min - 3hr recommended)
Why This Exists
TestFlight betas fill up fast. This skill:
- Monitors multiple betas in one job
- Stays silent unless something changes
- Uses human-readable app names (not cryptic codes)
- Tracks state across checks to detect transitions
Installation
clawhub install testflight-monitor
Or clone from GitHub:
cd ~/.openclaw/workspace/skills
git clone https://github.com/jon-xo/testflight-monitor-skill.git testflight-monitor
cd testflight-monitor
Initial Setup
⚠️ Important: config/batch-config.json is user-specific and NOT shipped with defaults.
1. Initialize your config (one time)
cp config/batch-config.example.json config/batch-config.json
2. Add your TestFlight URLs
./testflight-monitor.sh add https://testflight.apple.com/join/YOUR_CODE_HERE
./testflight-monitor.sh add https://testflight.apple.com/join/ANOTHER_CODE
./testflight-monitor.sh list
3. Verify it works
./testflight-monitor.sh batch
# Output: SILENT: No status changes detected. (or alert if available)
Quick Start
# Every hour check
openclaw cron add \
--name "TestFlight Monitor" \
--every 60m \
--target isolated \
--message "Run TestFlight batch check: ~/.openclaw/workspace/skills/testflight-monitor/testflight-monitor.sh batch. If output contains 'SILENT', reply NO_REPLY. Otherwise announce the findings."
Quick Start
4. Set up automated monitoring (cron - optional)
# Check every hour, silent unless slots open
openclaw cron add \
--name "TestFlight Monitor" \
--every 60m \
--target isolated \
--message "Run: ~/.openclaw/workspace/skills/testflight-monitor/testflight-monitor.sh batch. If output contains 'SILENT', reply NO_REPLY. Otherwise announce the findings."
Commands
Core Commands
lookup \x3Ccode>
Look up app name by TestFlight code
./testflight-monitor.sh lookup BnjD4BEf
# Output: OpenClaw iOS
check \x3Curl>
Check single TestFlight URL for availability
./testflight-monitor.sh check https://testflight.apple.com/join/BnjD4BEf
# Output: Status: full | App: OpenClaw iOS
batch
Check all configured URLs (silent unless status changed)
./testflight-monitor.sh batch
# Output: SILENT: No status changes detected.
# Or: 🎉 **OpenClaw iOS** beta now has open slots! https://...
Configuration Commands
list
Show all monitored URLs with app names
./testflight-monitor.sh list
add \x3Curl>
Add URL to batch monitoring
./testflight-monitor.sh add https://testflight.apple.com/join/Sq8bYSnJ
remove \x3Curl>
Remove URL from batch monitoring
./testflight-monitor.sh remove https://testflight.apple.com/join/Sq8bYSnJ
config
Show batch configuration (JSON)
./testflight-monitor.sh config
state
Show current state (last known status for each app)
./testflight-monitor.sh state
Maintenance Commands
update-lookup
Refresh lookup table from awesome-testflight-link
./testflight-monitor.sh update-lookup
# Run weekly to keep app names current
Architecture
testflight-monitor/
├── testflight-monitor.sh # Main CLI (entry point)
├── lib/ # Modular components
│ ├── lookup.sh # Code → app name resolver
│ ├── check-single.sh # Single URL checker
│ └── check-batch.sh # Batch checker (silent mode)
├── config/ # Configuration & state
│ ├── testflight-codes.json # Community lookup table (~859 apps)
│ ├── custom-codes.json # User overrides (private betas)
│ ├── batch-config.json # Monitoring configuration
│ └── batch-state.json # State tracking
├── tools/ # Utilities
│ └── update-lookup.sh # Refresh lookup table
└── SKILL.md # This file
Configuration Files
batch-config.json
User-specific monitoring list. Not shipped with defaults; created during initial setup.
Example structure:
{
"links": [
"https://testflight.apple.com/join/YOUR_CODE_1",
"https://testflight.apple.com/join/YOUR_CODE_2"
],
"interval_minutes": 60
}
Manage via CLI:
./testflight-monitor.sh add \x3Curl>
./testflight-monitor.sh remove \x3Curl>
./testflight-monitor.sh list
Or edit directly (config/batch-config.json)
custom-codes.json
Add private betas not in the community list:
{
"BnjD4BEf": "OpenClaw iOS",
"YOUR_CODE": "Your App Name"
}
Silent by Default
The batch checker only outputs when status changes:
- full → available: 🎉 Alert!
- full → full: Silent
- available → full: Silent (you already got in, or missed it)
This prevents notification spam while keeping you informed.
Data Sources
Lookup table: awesome-testflight-link
- Community-maintained list of 800+ public TestFlight betas
- Updated via
update-lookupcommand - Recommended: refresh weekly
Custom codes: User-defined in config/custom-codes.json
- For private betas not in the community list
- Higher priority than community list
Dependencies
curl- Fetch TestFlight pagesjq- JSON processingbash- Shell scripting (macOS/Linux)
Examples
Monitor OpenClaw iOS Beta
cd ~/.openclaw/workspace/skills/testflight-monitor
./testflight-monitor.sh add https://testflight.apple.com/join/BnjD4BEf
./testflight-monitor.sh batch
Check Multiple Apps
./testflight-monitor.sh add https://testflight.apple.com/join/Sq8bYSnJ # Duolingo
./testflight-monitor.sh add https://testflight.apple.com/join/b9jMyOWt # Reddit
./testflight-monitor.sh list
Manual Status Check
./testflight-monitor.sh check https://testflight.apple.com/join/BnjD4BEf
Contributing
GitHub: https://github.com/jon-xo/testflight-monitor-skill
Issues: Report bugs or request features
Pull Requests: Improvements welcome
License
MIT License - see LICENSE file
Credits
- Built for OpenClaw
- Lookup data from awesome-testflight-link
- Inspired by the need to catch beta slots without notification spam
Version History
1.0.0 (2026-02-11)
- Initial release
- Unified architecture (lookup + single + batch in one skill)
- Silent-by-default batch monitoring
- CLI-based configuration
- Community lookup table integration
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install testflight-monitor - 安装完成后,直接呼叫该 Skill 的名称或使用
/testflight-monitor触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
TestFlight Seat Monitor 是什么?
Monitor available TestFlight beta slots with smart app lookups and silent batch checking. Get alerted when slots open up. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 692 次。
如何安装 TestFlight Seat Monitor?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install testflight-monitor」即可一键安装,无需额外配置。
TestFlight Seat Monitor 是免费的吗?
是的,TestFlight Seat Monitor 完全免费(开源免费),可自由下载、安装和使用。
TestFlight Seat Monitor 支持哪些平台?
TestFlight Seat Monitor 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(darwin, linux)。
谁开发了 TestFlight Seat Monitor?
由 Jon Newton(@jon-xo)开发并维护,当前版本 v1.0.1。