Install
openclaw skills install china-travel-plannerPlan and optimize travel within China using flyai / Fliggy search capabilities plus public metro-network data when needed. Use when the user wants a domestic China trip plan, weekend getaway, city itinerary, family trip, holiday route, hotel recommendation, flight comparison, attraction shortlist, budget-based plan, or a practical travel guide that combines transportation, hotel, POI, and day-by-day scheduling for destinations inside mainland China. Also use when the trip has transit constraints such as covering every metro line at least once, choosing hotels by metro convenience, anchoring plans around a fixed hotel, or mixing city travel with nearby side trips.
openclaw skills install china-travel-plannerPlan practical domestic trips in China by combining itinerary design with real-time-ish search from flyai.
This skill is for planning-first travel help. Use it to turn a vague request like “清明去杭州玩两天怎么安排” into a usable plan with destination logic, transport suggestions, hotel area recommendations, attraction picks, and a day-by-day itinerary.
Clarify the trip frame
Pick the planning mode
Choose the right data source mix
flyai fliggy-fast-search for broad natural-language discovery.flyai search-flight for flight comparison when flights matter.flyai search-hotels for hotel options near a city or POI.flyai search-poi for attraction candidates inside the target city.Turn results into a China-friendly plan
Produce a final answer that is actually usable
When the trip may become a web page or reusable artifact, also prepare structured data
meta, hero, stats, hotels, metroCoverage, days, sideTrips, attractions, tips.Use when the user is still fuzzy, such as:
Command pattern:
flyai fliggy-fast-search --query "杭州三日游"
Use broad search first to collect candidate products, local experiences, hotel packages, or bundled travel ideas.
Use when the user is traveling farther or explicitly asks about flights.
Command pattern:
flyai search-flight --origin "北京" --destination "杭州" --dep-date 2026-04-04 --sort-type 3
Prefer sorting by:
3 for lowest price8 for direct-priority4 for shortest durationFor domestic planning, mention whether high-speed rail may be more sensible if flight transfer friction is high.
Use when deciding where to stay, especially around scenic areas or transit hubs.
Command pattern:
flyai search-hotels --dest-name "杭州" --poi-name "西湖" --check-in-date 2026-04-04 --check-out-date 2026-04-06 --sort rate_desc
Hotel guidance:
Use when building the daily route.
Command pattern:
flyai search-poi --city-name "杭州" --keyword "西湖"
Group POIs into:
For each day include:
When the user wants a web page, reusable framework, shareable itinerary page, or future automation, also organize the content into stable sections.
Recommended top-level keys:
metaherostatshotelsmetroCoveragedayssideTripsattractionstipsWhenever possible, produce two synchronized layers:
The readable summary should be easy to read in chat.
The structured layer should be easy to feed into travel-page-framework.
Use fields such as:
phasenamedateRangestationstatuspricedistanceToMetroimagehighlightsUse fields such as:
daydatethemecityhotelmetroLinessegments.morningsegments.afternoonsegments.eveningnoteUse fields such as:
namecitytypeimagedescriptionbestForKeep structured card text concise and web-friendly.
If the user explicitly wants a web page, page framework, reusable travel card layout, or future rendering, read references/structured-output-mode.md and organize the plan so the text layer and structured layer remain consistent.
Use this when the user wants a shareable web page, standalone HTML itinerary, or asks for a "travel page" / "行程页面". The pipeline turns a travel plan into a static HTML page powered by the travel-page-framework.
plan (chat) → structured trip-data.json → tpf-generate → tpf validate → tpf build → dist/index.html
python3 skills/china-travel-planner/page-generator/scripts/tpf-generate.py \
"杭州3天2晚,西湖+灵隐寺,住湖滨,预算2000" \
--with-metro --with-images --pretty \
-o data/trip-data.json
Options:
--with-metro: auto-fetch metro/subway data for the city--with-images: auto-search Wikimedia Commons for attraction images--from-file prompt.txt: read prompt from a file instead of CLI arg--output / -o: output path (default: trip-data.json)--pretty: pretty-print the JSONReview and refine the generated trip-data.json. The auto-generated skeleton is a starting point — fill in richer descriptions, swap placeholder images, and adjust day-by-day segments as needed. Follow the content guidelines in page-generator/schema/trip-content-guidelines.md.
Validate the data against the schema:
cd <project-dir> # must contain data/trip-data.json
python3 skills/china-travel-planner/page-generator/scripts/tpf-cli.py validate
python3 skills/china-travel-planner/page-generator/scripts/tpf-cli.py build
This produces dist/index.html + dist/trip-data.json. Preview with:
cd dist && python3 -m http.server 8080
python3 skills/china-travel-planner/page-generator/scripts/tpf-cli.py deploy --to gh-pages
page-generator/schema/trip-schema.jsonpage-generator/schema/trip-content-guidelines.mdmeta, hero, stats, hotels, metroCoverage, days, sideTrips, attractions, tipsIn practice, generate the skeleton first, then hand-edit or have the agent refine it.
If critical info is missing, ask at most the smallest set of questions needed. Prioritize:
If the user just wants a quick answer, do not block on questions. State assumptions and give a draft plan.
scripts/fetch_subway_data.pyUse this script when the plan depends on metro / subway line coverage or station lists.
Examples:
python3 skills/china-travel-planner/scripts/fetch_subway_data.py 长沙 --pretty
python3 skills/china-travel-planner/scripts/fetch_subway_data.py changsha --stations-only --pretty
python3 skills/china-travel-planner/scripts/fetch_subway_data.py 湘潭 --pretty
Behavior:
Use the result to:
scripts/metro_hotel_match.pyUse this script to rank hotels by metro convenience.
Examples:
python3 skills/china-travel-planner/scripts/metro_hotel_match.py \
--subway changsha-subway.json \
--hotels hotels.json \
--target-line "1号线" \
--target-station "黄土岭" \
--pretty
Behavior:
scripts/coverage_plan_notes.pyUse this script to generate lightweight notes for line-coverage planning.
Examples:
python3 skills/china-travel-planner/scripts/coverage_plan_notes.py \
--subway changsha-subway.json \
--hotel-station "黄土岭" \
--pretty
Behavior:
page-generator/scripts/wikimedia_image_search.pyUse this script to find free-license images from Wikimedia Commons for attractions, landmarks, or city scenes. Use it when populating image fields in structured trip data.
Keyword search:
python3 skills/china-travel-planner/page-generator/scripts/wikimedia_image_search.py "橘子洲 长沙" --limit 3 --pretty
Category browse:
python3 skills/china-travel-planner/page-generator/scripts/wikimedia_image_search.py --category "Orange Isle" --limit 5 --pretty
Batch mode (read a JSON file with multiple search specs):
python3 skills/china-travel-planner/page-generator/scripts/wikimedia_image_search.py \
--batch landmarks.json --output results.json --pretty
Batch input format (landmarks.json):
[
{"name": "五一广场", "query": "Changsha Wuyi Square"},
{"name": "橘子洲", "category": "Orange Isle"},
{"name": "岳阳楼", "query": "Yueyang Tower Hunan"}
]
Options:
--limit / -n: number of results (default: 5)--width / -w: thumbnail width in pixels (default: 1200)--output / -o: write results to file instead of stdout--pretty: pretty-print JSONOutput: JSON array of {title, url, thumbUrl, width, height, license, description}. All images carry free licenses (CC / Public Domain).
Read these only when needed:
../flyai/references/fliggy-fast-search.md for broad natural-language search../flyai/references/search-flight.md for flight parameters and output fields../flyai/references/search-hotels.md for hotel filters and fields../flyai/references/search-poi.md for attraction filters and fieldsreferences/subway-aware-planning.md for metro-line coverage, fixed-hotel anchors, and metro-aware hotel selectionreferences/domestic-planning-prompts.md for common domestic trip phrasing and default itinerary patternsreferences/structured-output-mode.md for producing reusable structured trip data alongside readable itinerary textpage-generator/schema/trip-content-guidelines.md for reusable travel-page content structure and card-writing conventions