alliances
Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty…
Check American Airlines AAdvantage balance, elite status, and loyalty points via Patchright. Handles email 2FA with 6-box code entry. Uses persistent browser profiles to skip 2FA on subsequent runs.
$ npx -y skills add borski/travel-hacking-toolkit --skill american-airlines --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/american-airlinesContext preview
The summary Claude sees to decide when to auto-load this skill.
Check American Airlines AAdvantage balance, elite status, and loyalty points via Patchright. Handles email 2FA with 6-box code entry. Uses persistent browser profiles to skip 2FA on subsequent runs.
name: american-airlines description: Check American Airlines AAdvantage balance, elite status, and loyalty points via Patchright. Handles email 2FA with 6-box code entry. Uses persistent browser profiles to skip 2FA on subsequent runs. category: loyalty summary: AAdvantage balance and elite status. AwardWallet does not support AA. api_key: None (requires Patchright) docker_image: ghcr.io/borski/aa-miles-check
Check AAdvantage award miles balance, elite status (Gold/Platinum/Platinum Pro/Executive Platinum), loyalty points, and million miler status. Uses Patchright (undetected Playwright fork) because AA blocks standard browser automation.
**Requires Patchright.** AA.com blocks vanilla Playwright and agent-browser.
pip install patchright && patchright install chromium
Or use Docker (no local install needed):
docker pull ghcr.io/borski/aa-miles-check:latest # or build locally: docker build -t aa-check skills/american-airlines/
Pass credentials via environment variables or flags. If you use a secrets manager (1Password, Vault, etc.), inject them however you normally would.
# Environment variables AA_USERNAME=your_aa_number AA_PASSWORD=your_password \ python3 scripts/check_balance.py --json # Flags python3 scripts/check_balance.py --username YOUR_AA_NUMBER --password YOUR_PASSWORD --json # Docker docker run --rm -e AA_USERNAME=your_aa_number -e AA_PASSWORD=your_password aa-check --json
AA requires email verification on first login from a new device. The script waits up to 120 seconds for the code.
**You (the agent) do NOT have access to the user's email.** AA sends the 2FA code to the account holder's email address. When the script hits 2FA, you **MUST ask the user** for the 6-digit code. This is not optional. Do not try to read their email. Do not guess. Do not skip. Ask them, wait for the answer, then write it to the code file.
1. Run the script in the background (`nohup ... &`, `disown`) 2. Poll stderr for `"2FA REQUIRED"` to confirm the code was sent 3. **Ask the user** for the 6-digit code AA emailed them 4. Write the code to the code file: `echo "123456" > /tmp/aa-2fa-code.txt` 5. Wait for the script to complete and read stdout for the JSON result
Use `--profile name` to save browser cookies. After the first successful 2FA, subsequent runs with the same profile skip 2FA entirely. Profiles are stored at `~/.aa-browser-profiles/{name}/`. Sessions last hours, not days.
# First run: will need 2FA python3 scripts/check_balance.py --profile user1 --json # Later runs: same profile, no 2FA python3 scripts/check_balance.py --profile user1 --json
{
"username": "XXXXXXX",
"status": "completed",
"miles": 123425,
"elite_status": "Platinum Pro",
"loyalty_points": 180,
"name": "John Doe",
"aadvantage_number": "XXXXXXX",
"million_miler": 19328,
"member_since": "Aug 23, 2011"
}| Field | Description | |-------|-------------| | `miles` | Award miles balance (redeemable) | | `elite_status` | Gold, Platinum, Platinum Pro, or Executive Platinum (null if none) | | `loyalty_points` | Current year loyalty points (reset March 1) | | `million_miler` | Lifetime miles toward Million Miler status | | `member_since` | Account creation date |
AI-powered travel hacking with points, miles, and award flights. Drop-in skills and MCP servers for OpenCode, Claude Code, and Codex. Ask your AI to find you a 60,000-mile business class flight to Tokyo.
Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty…
Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright. Use when…
Search Atlas Obscura for weird, wonderful, and hidden gem places near any destination. Find the interesting stuff, not boring…
Find the cheapest award dates for a route over a date range. Searches seats.aero across all programs, groups by date, and shows a…
Per-program rules for placing award flights on hold before transferring points. Covers programs with holds (AA, Lufthansa, Flying…
Catalog of high-value award redemptions where points dramatically outvalue cash. Tiered by legendary/excellent/good with current…