Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty programs book which airlines, including bilateral partnerships outside alliances.
日本語の概要は準備中です。原文の説明を表示しています。
Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits. Use for pay-with-points portal comparison on Sapphire Reserve/Preferred.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Search the Chase Ultimate Rewards travel portal for flights and hotels via Patchright. Returns cash prices, UR points pricing, Points Boost offers, and Chase Edit hotel benefits.
Requires Patchright (undetected Playwright fork). Chase blocks standard Playwright and agent-browser.
Must run headed (headless=False). Chase detects headless browsers. On macOS, a Chrome window briefly appears. For background operation, use Docker.
pip install patchright && patchright install chromium
Or use Docker (no local install needed):
docker pull ghcr.io/borski/chase-travel:latest
# or build locally:
docker build -t chase-travel skills/chase-travel/
The script automatically selects the Sapphire Reserve card from the account selector (dynamic Points Boost pricing on travel; ~1.5-2.0 cpp typical on CSR but not a guaranteed floor; Edit hotels). Falls back to Sapphire Preferred if no Reserve found. Only these cards show Edit hotel benefits and travel portal pricing.
# Local (opens a Chrome window briefly)
python3 scripts/search_flights.py --origin SFO --dest CDG --depart 2026-08-11
# Round-trip business
python3 scripts/search_flights.py --origin SFO --dest CDG --depart 2026-08-11 --return 2026-09-02 --cabin business
# JSON output
python3 scripts/search_flights.py --origin SFO --dest CDG --depart 2026-08-11 --json
# Docker
docker run --rm \
-v ~/.chase-travel-profiles:/profiles \
-v /tmp:/tmp/host \
-e CHASE_USERNAME -e CHASE_PASSWORD \
ghcr.io/borski/chase-travel script /scripts/search_flights.py \
--origin SFO --dest CDG --depart 2026-08-11 --cabin business --json
# Local
python3 scripts/search_flights.py --hotel --dest "Paris" --checkin 2026-08-11 --checkout 2026-08-15
# Docker
docker run --rm \
-v ~/.chase-travel-profiles:/profiles \
-v /tmp:/tmp/host \
-e CHASE_USERNAME -e CHASE_PASSWORD \
ghcr.io/borski/chase-travel script /scripts/search_flights.py \
--hotel --dest "Oslo" --checkin 2026-08-13 --checkout 2026-08-15 --json
Capture network traffic during a manual search. Useful for debugging or discovering new API endpoints.
# Local only (needs interactive browser)
python3 scripts/record_search.py
Chase uses SMS or mobile-app push for 2FA (some accounts offer only push). On first login, you must complete 2FA manually. After that, device trust persists (2FA skipped on subsequent runs from the same profile). The script auto-detects which method the account offers and takes the matching path.
How it works: When 2FA is triggered, the script prints one of two sentinels to stdout, then polls for up to 3 minutes:
2FA_CODE_NEEDED — SMS. Chase texted a code; provide it (below).MOBILE_APP_APPROVAL_NEEDED — mobile-app push. There is no code; the user approves the sign-in in their Chase mobile app, and the script continues once the page clears.For agents (SMS): When you see 2FA_CODE_NEEDED, ask the user for the SMS code Chase just sent to their phone. Once they provide it, write it to the code file:
echo "12345678" > /tmp/chase-2fa-code.txt
The script picks up the file automatically and continues login.
For agents (mobile push): When you see MOBILE_APP_APPROVAL_NEEDED, tell the user to approve the sign-in in their Chase mobile app — there is no code to enter. The script polls for up to 3 minutes for the approval to land, then continues.
Command hook (optional, for full automation): Set CHASE_2FA_COMMAND to a command that blocks until it has the code, then prints it to stdout. The script runs this instead of polling the file. (Applies to the SMS path only.)
Docker: Use -v /tmp:/tmp/host to share the temp directory. The script checks both /tmp/host/chase-2fa-code.txt and /tmp/chase-2fa-code.txt.
After first successful login with device trust, 2FA is skipped on repeat runs.
CHASE_USERNAME/CHASE_PASSWORD must contain the actual username and password when they reach this script. If you keep secrets in a secret manager, resolve the references into the environment before launching (most managers ship an exec/run wrapper for exactly this).
An unresolved reference (a literal scheme://vault/item placeholder) gets typed into the login form, and Chase answers "We can't find that username and password. Try again." — which is easy to misread as bot detection. (It isn't: fresh automated logins from Docker work fine with real credentials, verified live July 2026, including when saved cookies have expired.)
The script fails fast on both forms of this mistake: it prints CHASE_BAD_CREDENTIALS to stdout (and writes BAD_CREDENTIALS to the 2FA status file) when a credential still looks like a secret reference, or when Chase reports the username/password as not found. For agents: don't retry on this sentinel — fix how credentials are injected, then rerun.
POST to v1/session/create establishes the CXL travel session. Identifiers auto-extracted from cookies.POST to Chase's internal CTE API creates a flight search session (returns sessionId)travelsecure.chase.com/results/flights/outbound?ssid={sessionId}&cnxtoken={redirectionToken}. Script intercepts API responses via page.on('response') to capture legwiseResults JSON<orxe-button>) clicked via JS to load all flights (10 at a time)<orxe-toggle class="points-offer">) activated. Boost card carousel parsed for discounted point pricesPOST to Chase's hotel search endpoint creates sessionhotel/v1.0/search/results API responsesprm[].c == "Signature Amenities" are Edit properties. Benefits extracted from embedded JSONrwd[].rdp.rcm.t.ofr.d == "Points offer applied" have Points BoostFlight results include:
Hotel results include:
Always use markdown tables.
| # | Airline | Route | Stops | Duration | Cash | Points | Boost | CPP |
|---|---|---|---|---|---|---|---|---|
| 1 | Air France | SFO-CDG | Nonstop | 10h 40m | $5,397 | 539,683 | 269,841 | 2.0 |
| # | Hotel | Program | Per Night | Total | Points | Benefits |
|---|---|---|---|---|---|---|
| 1 | Sommerro | EDIT, BOOST | $408 | $816 | 81,600 | Breakfast, $100 credit, upgrade |
cash_plus_points pricing uses all available UR points plus cash for the remainder.| Variable | Required | Description |
|---|---|---|
CHASE_USERNAME | Yes | Chase online banking username |
CHASE_PASSWORD | Yes | Chase online banking password |
CHASE_2FA_COMMAND | No | Command that blocks until SMS code is ready, prints to stdout |
CHASE_PROFILE | No | Browser profile directory (default: ~/.chase-travel-profiles/default) |
secure01ea.chase.com from Docker. The script uses chase.com homepage login instead (different auth endpoint, works in Docker).まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty programs book which airlines, including bilateral partnerships outside alliances.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright. Use when comparing pay-with-points portal pricing to award alternatives.
日本語の概要は準備中です。原文の説明を表示しています。
Search Atlas Obscura for weird, wonderful, and hidden gem places near any destination. Find the interesting stuff, not boring plaques. Search by coordinates, get full details with descriptions and images.
日本語の概要は準備中です。原文の説明を表示しています。
Find the cheapest award dates for a route over a date range. Searches seats.aero across all programs, groups by date, and shows a calendar grid of the best deals. Use when dates are flexible and you want to find the sweet spot.
日本語の概要は準備中です。原文の説明を表示しています。
Per-program rules for placing award flights on hold before transferring points. Covers programs with holds (AA, Lufthansa, Flying Blue, Cathay, Turkish, Virgin Atlantic, ANA, Emirates, EVA Air) and those without. Includes transfer-speed reference.
日本語の概要は準備中です。原文の説明を表示しています。