OpenClaw · Skill

Testflight Monitor

Monitor available TestFlight beta slots with smart app name lookups and silent batch checking. Get alerted only when seats open up.

Apple Apps & Services
v1.0.1
VirusTotal: Benign

Install

Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.

Primary command

clawhub install jon-xo/testflight-monitor

ClawHub installer

npx clawhub@latest install jon-xo/testflight-monitor

OpenClaw CLI

openclaw skills install jon-xo/testflight-monitor

Direct OpenClaw install

openclaw install jon-xo/testflight-monitor

What this skill does

Monitor available TestFlight beta slots with smart app name lookups and silent batch checking. Get alerted only when seats open up.

Why it matters

Unlike manually refreshing TestFlight pages, this tool runs silently on a schedule and only interrupts you when a slot actually opens.

Typical use cases

  • Waiting for a spot in a full iOS beta you want to test
  • Monitoring several TestFlight betas at once without manual checking
  • Getting notified the moment a coveted beta slot opens
  • Looking up which app a TestFlight invite code belongs to
  • Running hourly background checks without notification spam

Source instructions

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 <code>
Look up app name by TestFlight code

./testflight-monitor.sh lookup BnjD4BEf
# Output: OpenClaw iOS

check <url>
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 <url>
Add URL to batch monitoring

./testflight-monitor.sh add https://testflight.apple.com/join/Sq8bYSnJ

remove <url>
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 <url>
./testflight-monitor.sh remove <url>
./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-lookup command
  • 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 pages
  • jq - JSON processing
  • bash - 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

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

Related OpenClaw skills

Browse all →
Featured slot

Your product here

Reserve this slot to reach operators and coding-agent buyers.

Shown where builders are actively comparing tools and deployment options.

Advertise