Help us improve
Share bugs, ideas, or general feedback.
From flight-optimizer
Search and score multi-leg flight itineraries using Duffel API with cost-duration-stop optimization
npx claudepluginhub varunr89/claude-marketplace --plugin flight-optimizerHow this skill is triggered — by the user, by Claude, or both
Slash command
/flight-optimizer:flight-searchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Searches for multi-leg flight itineraries (e.g., Seattle -> Milan -> Hyderabad -> Seattle) using the Duffel API (with optional fast-flights Google Flights scraper fallback). Applies hard constraints and a weighted scoring model to rank results.
Searches Google Flights for flight tickets, returns candidates with prices, booking links, and date/month/year comparisons. Useful for checking cheapest flights and planning travel.
Searches flights, hotels, attractions, concerts, cruises, visas, car rentals, and event tickets with natural language via Fliggy MCP for real-time booking and trip planning.
Search public Air New Zealand fare snapshots and timetable data via lightweight CLI. No login or booking. Use for flight numbers, times, duration, stops on NZ domestic routes.
Share bugs, ideas, or general feedback.
Searches for multi-leg flight itineraries (e.g., Seattle -> Milan -> Hyderabad -> Seattle) using the Duffel API (with optional fast-flights Google Flights scraper fallback). Applies hard constraints and a weighted scoring model to rank results.
Use this skill when the user wants to search for flight options across multiple legs with constraint filtering and convenience-adjusted scoring.
DUFFEL_API_KEY=<your-key> python3 ${CLAUDE_PLUGIN_ROOT}/scripts/flight_optimizer.py
The script currently targets a specific trip (SEA -> MXP -> HYD -> SEA), but the functions are reusable for any multi-leg itinerary.
| Variable | Required | Description |
|---|---|---|
DUFFEL_API_KEY | Yes | Duffel API access token (live or test mode) |
The optimizer applies hard constraints to filter out unsuitable flights:
MAX_STOPS)MAX_LAYOVER_HOURS)Each flight leg is scored as:
leg_score = price + (duration_hours * $20) + (stops * $200)
Complete itineraries add a childcare penalty:
total_score = sum(leg_scores) + (weekdays_away * $200)
Scoring weights are configurable constants: COST_PER_HOUR, COST_PER_STOP, COST_PER_WEEKDAY.
The optimizer tries two strategies and ranks all results together:
flight_results_spring2026.json (top 30 itineraries)