PluginBench
Skill
Review
Audit score 70

google-flights

skillhq/flight-search

Search Google Flights for flight prices, schedules, and availability via browser automation.

What is google-flights?

Automates flight searches on Google Flights to find prices, schedules, and availability between cities. Use when users ask to search flights, compare airfare, check availability, or look up routes. Handles domestic (economy) and international (economy + business) flights.

  • Search round-trip and one-way flights with flexible date and passenger options
  • Compare economy and business class pricing on international routes
  • Extract flight details including departure/arrival times, duration, airline, and price
  • Provide booking links for selected flights
  • Detect domestic vs. international routes and adjust cabin class defaults automatically

How to install google-flights

npx skills add https://github.com/skillhq/flight-search --skill google-flights
Prerequisites
  • agent-browser tool must be available
  • Valid origin and destination airports (IATA codes or city names)
  • Dates in YYYY-MM-DD format or natural language
Claude Code
Cursor
Windsurf
Cline

How to use google-flights

  1. 1.Construct a Google Flights URL with origin, destination, date, and optional parameters (returning date, cabin class, passenger count)
  2. 2.Open the URL in agent-browser with a named session (e.g., --session flights)
  3. 3.Wait for the page to load with networkidle
  4. 4.Take a snapshot to extract flight results
  5. 5.Present results in compact list format with airline, times, duration, and prices
  6. 6.Offer booking links when user selects a flight

Use cases

Good for
  • User asks 'find flights from Miami to San Francisco on April 28'
  • User wants to compare business class prices on an international route
  • User searches for the cheapest flight between two cities on specific dates
  • User needs to check flight schedules and availability for multiple passengers
  • User asks for nonstop flights or wants to compare cabin classes
Who it's for
  • Travelers planning trips and comparing airfare
  • Business travelers evaluating cabin class options
  • Users researching flight schedules and availability
  • Anyone comparing prices across multiple airlines

google-flights FAQ

When should I show business class?

Always show economy + business comparison for international flights. For domestic US flights, show economy only by default unless the user explicitly asks for business class or to compare cabins.

What if a flight doesn't have a business class option?

Show a dash (—) in the business column. Budget carriers like ZIPAIR and Air Japan may not offer business class on all routes.

Can this skill complete flight purchases?

No. This skill finds flights and extracts booking links, but does not complete purchases. Direct users to the booking site to finalize their reservation.

What features require interactive fallback instead of URL search?

Premium economy cabin class, multi-city trips (3+ legs), infant passengers, and cases where the URL doesn't load results due to consent banners or CAPTCHAs.

How do I detect if a flight is domestic or international?

A flight is domestic if both origin and destination are US airports. Use common US IATA codes (ATL, LAX, JFK, etc.) to determine this.

Full instructions (SKILL.md)

Source of truth, from skillhq/flight-search.


name: google-flights description: Search Google Flights for flight prices and schedules using browser automation. Use when user asks to search flights, find airfare, compare prices, check flight availability, or look up routes. Triggers include "search flights", "find flights", "how much is a flight", "flights from X to Y", "cheapest flight", "flight prices", "airfare", "flight schedule", "nonstop flights", "when should I fly". allowed-tools: Bash(agent-browser:*)

Google Flights Search

Search Google Flights via agent-browser to find flight prices, schedules, and availability.

When to Use

  • User asks to search/find/compare flights or airfare
  • User wants to know flight prices between cities
  • User asks about flight schedules or availability
  • User wants to find the cheapest flight for specific dates

When NOT to Use

  • Completing purchases: This skill finds flights and extracts booking links, but do not attempt to complete a purchase on a booking site.
  • Hotels/rental cars: Use other tools for non-flight travel searches.
  • Historical price data: Google Flights shows current prices, not historical.

Session Convention

  • Economy only (default for domestic): --session flights
  • Economy + Business comparison (international or user requests): --session econ and --session biz
  • Interactive fallback: --session flights

Domestic vs International Detection

Domestic flights default to economy only. Business class on US domestic routes is typically 3-5x the price and rarely worth showing unless asked.

A flight is domestic if both origin and destination are US airports. Common US IATA codes: ATL, BOS, BWI, CLT, DEN, DFW, DTW, EWR, FLL, HNL, IAD, IAH, JFK, LAS, LAX, LGA, MCO, MDW, MIA, MSP, OAK, ORD, PHL, PHX, PDX, SAN, SEA, SFO, SJC, SLC, TPA.

When to show business class:

  • International flights (always show economy + business comparison)
  • User explicitly asks for "business class" or "business"
  • User asks to "compare cabins" or "show all classes"

When to skip business class:

  • Domestic US flights (economy only by default)
  • User explicitly asks for "economy" or "cheapest"

Fast Path: URL-Based Search (Preferred)

Construct a URL with a natural language ?q= parameter. Loads results directly — 3 commands total.

URL Template

https://www.google.com/travel/flights?q=Flights+from+{ORIGIN}+to+{DEST}+on+{DATE}[+returning+{DATE}][+one+way][+business+class][+N+passengers]

Default: Economy Only (Domestic)

For domestic flights, run a single session - 2 tool calls total:

# Open and wait in one call
agent-browser --session flights open "https://www.google.com/travel/flights?q=Flights+from+MIA+to+SFO+on+2026-04-28+returning+2026-04-30" && agent-browser --session flights wait --load networkidle

# Snapshot results
agent-browser --session flights snapshot -i
# Keep session alive for booking links

Then present results in compact list format (see Output Format section below).

Economy + Business Comparison (International)

For international flights, run two parallel sessions to show the price delta:

# Open both and wait in parallel
(agent-browser --session econ open "https://www.google.com/travel/flights?q=Flights+from+BKK+to+NRT+on+2026-03-20+returning+2026-03-27" && agent-browser --session econ wait --load networkidle) &
(agent-browser --session biz open "https://www.google.com/travel/flights?q=Flights+from+BKK+to+NRT+on+2026-03-20+returning+2026-03-27+business+class" && agent-browser --session biz wait --load networkidle) &
wait

# Snapshot both in parallel
agent-browser --session econ snapshot -i &
agent-browser --session biz snapshot -i &
wait

# Close biz (only needed for delta); keep econ alive for booking links
agent-browser --session biz close

Matching logic: Match flights by airline name and departure time. Not all economy flights have a business equivalent (budget carriers like ZIPAIR, Air Japan don't offer business). Show "-" when no business match exists.

Tip: When an airline appears in business results but not economy (e.g., Philippine Airlines), it may operate business-only pricing on that route. Include it with "-" for economy.

One Way

Add +one+way to the URL. For international, run both economy and business in parallel:

# Domestic (economy only)
agent-browser --session flights open "https://www.google.com/travel/flights?q=Flights+from+LAX+to+JFK+on+2026-04-15+one+way" && agent-browser --session flights wait --load networkidle

# International (economy + business comparison)
(agent-browser --session econ open "https://www.google.com/travel/flights?q=Flights+from+LAX+to+LHR+on+2026-04-15+one+way" && agent-browser --session econ wait --load networkidle) &
(agent-browser --session biz open "https://www.google.com/travel/flights?q=Flights+from+LAX+to+LHR+on+2026-04-15+one+way+business+class" && agent-browser --session biz wait --load networkidle) &
wait

When User Asks for Business Only

If the user specifically asks for business class (not a comparison), run just the business session:

agent-browser --session flights open "https://www.google.com/travel/flights?q=Flights+from+JFK+to+CDG+on+2026-06-01+returning+2026-06-15+business+class"
agent-browser --session flights wait --load networkidle
agent-browser --session flights snapshot -i
# Keep session alive for booking links

First Class / Multiple Passengers

agent-browser --session flights open "https://www.google.com/travel/flights?q=Flights+from+JFK+to+CDG+on+2026-06-01+returning+2026-06-15+first+class+2+adults+1+child"
agent-browser --session flights wait --load networkidle
agent-browser --session flights snapshot -i
# Keep session alive for booking links

What Works via URL

FeatureURL syntaxStatus
Round trip+returning+YYYY-MM-DDWorks
One way+one+wayWorks
Business class+business+classWorks
First class+first+classWorks
N passengers (adults)+N+passengersWorks
Adults + children+2+adults+1+childWorks
IATA codesBKK, NRT, LAXWorks
City namesBangkok, TokyoWorks
Dates as YYYY-MM-DD2026-03-20Works (best)
Natural datesMarch+20Works
Premium economy+premium+economyFails
Multi-cityN/AFails

What Requires Interactive Fallback

  • Premium economy cabin class
  • Multi-city trips (3+ legs)
  • Infant passengers (seat vs lap distinction)
  • URL didn't load results (consent banner, CAPTCHA, locale issue)

Reading Results from Snapshot

Each flight appears as a link element with a full description:

link "From 20508 Thai baht round trip total. Nonstop flight with Air Japan.
     Leaves Suvarnabhumi Airport at 12:10 AM on Friday, March 20 and arrives
     at Narita International Airport at 8:15 AM on Friday, March 20.
     Total duration 6 hr 5 min. Select flight"

Parse economy + business snapshots into the compact list format:

1. JAL — Nonstop · 5h 55m
   8:05 AM → 4:00 PM
   Economy: THB 23,255 · Business: THB 65,915 (+183%)

2. THAI — Nonstop · 5h 50m
   10:30 PM → 6:20 AM+1
   Economy: THB 28,165 · Business: THB 75,000 (+166%)

3. Air Japan — Nonstop · 6h 05m
   12:10 AM → 8:15 AM
   Economy: THB 20,515 · Business: —

4. ZIPAIR — Nonstop · 5h 45m
   11:45 PM → 7:30 AM+1
   Economy: THB 21,425 · Business: —

Matching: Pair economy and business results by airline + departure time. Budget carriers without business class show "—". Include "Best"/"Cheapest" labels from Google when present.

Booking Options Handoff

After presenting the results table, always offer booking links: "Want booking links for any of these? Just say which one."

When the user picks a flight, extract booking options by clicking the flight's link element in the snapshot. Google Flights shows a panel with booking providers (airlines, OTAs) each with a price and a "Continue" link to the booking site.

Workflow

# User picks flight #N — click the corresponding link from the results snapshot
# Use --session flights (domestic) or --session econ (international comparison)
agent-browser --session flights click @eN
agent-browser --session flights wait 3000
agent-browser --session flights snapshot -i

The booking panel snapshot will show link elements like:

link "Book with Emirates THB 28,960" → href="https://..."
link "Book with Booking.com THB 29,512" → href="https://..."
link "Book with Teaflight THB 28,171" → href="https://..."

Extract the provider name, price, and href URL from each link.

Output Format

📋 Booking Options for JAL BKK→NRT (5h 55m, Nonstop)

| Provider | Price | Book |
|----------|-------|------|
| Emirates | THB 28,960 | [Continue](https://...) |
| Booking.com | THB 29,512 | [Continue](https://...) |
| Teaflight | THB 28,171 | [Continue](https://...) |

Notes

  • Session lifecycle: Keep the results session (flights or econ) alive for booking links. For international comparisons, close --session biz immediately after extracting prices. Close the results session after the user gets booking links or declines.
  • If booking panel fails to load: Re-snapshot and wait longer before retrying.

Interactive Workflow (Fallback)

Use for multi-city, premium economy, or when the URL path fails.

Open and Snapshot

agent-browser --session flights open "https://www.google.com/travel/flights"
agent-browser --session flights wait 3000
agent-browser --session flights snapshot -i

If a consent banner appears, click "Accept all" or "Reject all" first.

Set Trip Type (if not Round Trip)

agent-browser --session flights click @eN   # Trip type combobox ("Round trip")
agent-browser --session flights snapshot -i
agent-browser --session flights click @eN   # "One way" or "Multi-city"
agent-browser --session flights wait 1000
agent-browser --session flights snapshot -i

Set Cabin Class / Passengers (if non-default)

Cabin class:

agent-browser --session flights click @eN   # Cabin class combobox
agent-browser --session flights snapshot -i
agent-browser --session flights click @eN   # Select class
agent-browser --session flights wait 1000
agent-browser --session flights snapshot -i

Passengers:

agent-browser --session flights click @eN   # Passengers button
agent-browser --session flights snapshot -i
agent-browser --session flights click @eN   # "+" for Adults/Children/Infants
agent-browser --session flights snapshot -i
agent-browser --session flights click @eN   # "Done"
agent-browser --session flights wait 1000
agent-browser --session flights snapshot -i

Enter Airport (Origin or Destination)

agent-browser --session flights click @eN   # Combobox field
agent-browser --session flights wait 1000
agent-browser --session flights snapshot -i
agent-browser --session flights fill @eN "BKK"
agent-browser --session flights wait 2000   # CRITICAL: wait for autocomplete
agent-browser --session flights snapshot -i
agent-browser --session flights click @eN   # Click suggestion (NEVER press Enter)
agent-browser --session flights wait 1000
agent-browser --session flights snapshot -i

Set Dates

agent-browser --session flights click @eN   # Date textbox
agent-browser --session flights wait 1000
agent-browser --session flights snapshot -i
# Calendar shows dates as buttons: "Friday, March 20, 2026"
agent-browser --session flights click @eN   # Click target date
agent-browser --session flights wait 500
agent-browser --session flights snapshot -i
# Click "Done" to close calendar
agent-browser --session flights click @eN   # "Done" button
agent-browser --session flights wait 1000
agent-browser --session flights snapshot -i

Search

"Done" only closes the calendar. You MUST click "Search" separately.

agent-browser --session flights click @eN   # "Search" button
agent-browser --session flights wait --load networkidle
agent-browser --session flights snapshot -i
# Keep session alive for booking links

Multi-City Specifics

After selecting "Multi-city" trip type, the form shows one row per leg:

  • Each leg has: origin combobox, destination combobox, departure date textbox
  • Origins auto-fill from the previous leg's destination
  • Click "Add flight" to add more legs (default: 2 legs shown)
  • Click "Remove flight from X to Y" buttons to remove legs
  • Results show flights for the first leg, with prices reflecting the total multi-city cost

Fill each leg's destination + date in order, then click "Search".

Output Format

Always use compact list format — never markdown tables. Output is typically displayed in chatbot interfaces (Telegram, etc.) where tables render poorly.

Economy + Business comparison (default)

1. JAL — Nonstop · 5h 55m
   8:05 AM → 4:00 PM
   Economy: THB 23,255 · Business: THB 65,915 (+183%)

2. THAI — Nonstop · 5h 50m
   10:30 PM → 6:20 AM+1
   Economy: THB 28,165 · Business: THB 75,000 (+166%)

3. Air Japan — Nonstop · 6h 05m
   12:10 AM → 8:15 AM
   Economy: THB 20,515 · Business: —

Economy only

1. JAL — Nonstop · 5h 55m
   8:05 AM → 4:00 PM · THB 23,255

2. THAI — Nonstop · 5h 50m
   10:30 PM → 6:20 AM+1 · THB 28,165

Format rules

  • One flight per numbered block, blank line between flights
  • Line 1: Airline — Stops · Duration
  • Line 2: Departure → Arrival times
  • Line 3: Prices (economy, business delta if applicable)
  • No code blocks around the flight list — plain text reads best
  • Keep the "Best value" recommendation as a plain text paragraph after the list

Key Rules

RuleWhy
Prefer URL fast path2 tool calls (domestic) or 3 (international) vs 15+ interactive
Chain open+wait with &&Eliminates a round-trip between tool calls
Skip business for domesticUS domestic business is 3-5x price, rarely useful unless asked
Parallel snapshots with & + waitBoth snapshots run concurrently for international
wait --load networkidleSmarter than fixed wait 5000 - returns when network settles
Use fill not type for airportsClears existing text first
Wait 2s after typing airport codesAutocomplete needs API roundtrip
Always CLICK suggestions, never EnterEnter is unreliable for autocomplete
Re-snapshot after every interactionDOM changes invalidate refs
"Done" ≠ SearchCalendar Done only closes picker
After presenting results, offer booking linksUsers almost always want to book - prompt them
Keep results session alive; close biz after resultsResults session needed for booking clicks; biz only for delta

Troubleshooting

Consent popups: Click "Accept all" or "Reject all" in the snapshot.

URL fast path didn't work: Fall back to interactive. Some regions/locales handle ?q= differently.

No results: Verify airports (check combobox labels), dates in the future, or wait longer.

Bot detection / CAPTCHA: Inform user. Do NOT solve CAPTCHAs. Retry after a short wait.

Deep-Dive Reference

See references/interaction-patterns.md for:

  • Full annotated walkthrough (every command + expected output)
  • Airport autocomplete failure modes and recovery
  • Date picker calendar navigation
  • Multi-city searches
  • Scrolling for more results

Related skills

More from skillhq/flight-search and the wider catalog.

AG

agent-browser

skills.volces.com

Browser automation CLI for AI agents to navigate, interact with, and extract data from websites.

1.4k installsAudited
BY

byted-ark-seedance-skill

skills.volces.com

Volcano Ark Seedance AI video generation for Agent Plan with intelligent model routing and multimodal support.

3.3k installs
BY

byted-ark-seedream-skill

skills.volces.com

AI image generation for Agent Plan with coherent series, streaming output, and prompt optimization.

4.9k installs
BY

byted-kickart-marketing-material-generator

skills.volces.com

基于火山引擎Kickart服务生成抖店/抖音商品营销短视频,支持用户上传自定义图片/视频素材、素材分析、创意分析、故事板创作、成片生成、抖音发布全流程。当用户发送抖店/抖音商品链接、提及「上传素材」「添加图片」「添加视频」「素材分析」「创意分析」「故事板」「生成短视频」「营销视频」「发布视频」「抖音发布」时触发使用。

942 installsAudited
BY

byted-seedream-image-generate

skills.volces.com

Generate high-quality images from text prompts using Volcano Engine Seedream models. Supports multiple artistic styles and aspect ratios. Use this skill when users want to create images from text descriptions, generate artwork in various styles, create visual content for creative projects, or need AI-powered image generation capabilities.

665 installs
BY

byted-web-search

skills.volces.com

Volcano Engine web search API with real-time internet access, 500 free queries/month.

26k installsAudited