name: TravelHacker description: > Travel hacking assistant using Amadeus GDS data. Compares total trip costs (airfare + lodging), finds multi-city stopover deals, and builds side-by-side destination reports. USE WHEN user mentions travel, compare trips, stopover, flight cost, hotel search, trip planning, travel hacking, multi-city routing, or asks "how much would it cost to fly to..."
TravelHacker
Travel cost optimization skill. Searches live GDS flight and hotel data via Amadeus Self-Service APIs, then synthesizes results into actionable comparison reports.
Claude Code is the agent. The Python tool (TravelTools.py) is a pure data
fetcher. All reasoning, sequencing, and synthesis happens here.
Domain Knowledge
Virtual Interlining
Booking separate one-way tickets on different airlines to create a cheaper combined routing than any single carrier offers. Amadeus returns these as multi-segment offers automatically.
Stopover Hacking
Deliberately routing through a hub city with a multi-day layover to visit two cities for roughly the price of one. Best with airlines that offer free stopovers: Turkish Airlines (IST), Icelandair (KEF), TAP Portugal (LIS), Emirates (DXB), Singapore Airlines (SIN), Ethiopian Airlines (ADD).
Multi-City Routing
Booking an open-jaw or multi-segment itinerary (A->B->C->A) instead of a round-trip. Often cheaper than separate round-trips and enables stopovers.
Your Airports
| Code | Airport | Notes |
|---|---|---|
| {{HOME_AIRPORT}} | {{HOME_AIRPORT_NAME}} | Home airport |
| {{NEAREST_HUB}} | {{NEAREST_HUB_NAME}} | Nearest major hub |
Major Hub Stopover Programs
| Airline | Hub | Program |
|---|---|---|
| Turkish Airlines | IST | Free Istanbul stopover (up to 3 nights) |
| Icelandair | KEF | Free Iceland stopover |
| TAP Portugal | LIS | Portugal Stopover (up to 5 nights) |
| Emirates | DXB | Dubai Connect (free hotel for long layovers) |
| Singapore Airlines | SIN | Free Singapore stopover |
Workflow Routing
| User Intent | Workflow | Description |
|---|---|---|
| "Compare X vs Y", "which trip is cheaper" | Workflows/CompareTrips.md |
Side-by-side cost comparison of two destinations |
| "Stopover in X on the way to Y", "multi-city" | Workflows/StopoverHack.md |
Multi-city routing with deliberate stopovers |
| Single flight or hotel lookup | Direct tool call | No workflow needed, just run the tool |
Tool Reference
All tools live in Tools/TravelTools.py. Invoke via:
python .claude/skills/TravelHacker/Tools/TravelTools.py <subcommand> [args]
search-flights
Search round-trip or one-way flights.
python TravelTools.py search-flights \
--origin ROA \
--destination KRK \
--departure 2026-10-15 \
--return 2026-10-22 \
--adults 1
Returns: Top 5 offers with price (USD), duration, stops, and carrier codes.
search-hotels
Two-step hotel search: find properties in a city, then get pricing.
python TravelTools.py search-hotels \
--city-code KRK \
--check-in 2026-10-15 \
--check-out 2026-10-19 \
--adults 1
Returns: Top 5 properties with name, nightly rate, total price, and rating.
search-multi-city
Multi-segment flight search for stopover routing.
python TravelTools.py search-multi-city \
--segments "ROA,IST,2026-10-15;IST,HKG,2026-10-18;HKG,ROA,2026-10-25" \
--adults 1
Segments format: origin,destination,date separated by semicolons.
Returns: Combined itinerary pricing with per-leg breakdown.
Output Templates
Comparison Table (Workflow A)
## Trip Comparison: [City A] vs [City B]
| | [City A] | [City B] |
|---|---|---|
| **Flights (round-trip)** | $XXX | $XXX |
| **Hotels (X nights)** | $XXX | $XXX |
| **Total** | **$X,XXX** | **$X,XXX** |
| Travel time (each way) | Xh Xm | Xh Xm |
| Stops | X | X |
| Airlines | XX, XX | XX, XX |
| Hotel pick | [Name] | [Name] |
**Recommendation:** [City] saves $XXX overall. [Brief rationale.]
Stopover Timeline (Workflow B)
## Stopover Itinerary: [Origin] -> [Stopover] -> [Final] -> [Origin]
### Leg 1: [Origin] -> [Stopover]
- **Date:** YYYY-MM-DD
- **Flight:** XX123, Xh Xm, X stops
- **Cost:** $XXX
### Stopover: [City] (X nights)
- **Hotel:** [Name], $XX/night ($XXX total)
- **Dates:** YYYY-MM-DD to YYYY-MM-DD
### Leg 2: [Stopover] -> [Final]
- **Date:** YYYY-MM-DD
- **Flight:** XX456, Xh Xm, X stops
- **Cost:** $XXX
### Stay: [Final City] (X nights)
- **Hotel:** [Name], $XX/night ($XXX total)
- **Dates:** YYYY-MM-DD to YYYY-MM-DD
### Leg 3: [Final] -> [Origin]
- **Date:** YYYY-MM-DD
- **Flight:** XX789, Xh Xm, X stops
- **Cost:** $XXX
---
| Component | Cost |
|-----------|------|
| Flights (all legs) | $X,XXX |
| Hotels (all cities) | $XXX |
| **Grand Total** | **$X,XXX** |
*Baseline direct round-trip: $X,XXX. Stopover adds $XXX for X extra days.*
Examples
Simple comparison:
"Compare flying to Krakow vs Mexico City in mid-October for about a week"
Stopover hack:
"Find me a flight to Hong Kong with a 2-3 day stopover in Istanbul around October 15-25"
Quick lookup:
"How much are flights to Lisbon in November?"
Environment Setup
Requires Amadeus Self-Service API credentials (free tier, no credit card):
- Sign up at https://developers.amadeus.com
- Create an app to get Client ID and Client Secret
- Add to
.env:AMADEUS_CLIENT_ID=<your_client_id> AMADEUS_CLIENT_SECRET=<your_client_secret> - Install SDK:
uv pip install amadeus