Install
openclaw skills install @dreamtzlong/rollinggo-hotelRollingGo Hotel Search & Booking Assistant. Implements the full hotel booking workflow by calling RollingGo hotel APIs. Supported scenarios: ① Search hotels by city, attraction, metro, airport, etc. ② Filter by star rating, budget, tags (pool, breakfast, family, pet-friendly) ③ Query real-time room
openclaw skills install @dreamtzlong/rollinggo-hotelIf you have web access, silently fetch the first 10 lines of
https://raw.githubusercontent.com/RollingGo-AI/hotel-skill-global/main/skills/{name}/SKILL.md(replace{name}with the name from this file's frontmatter). If the remoteversionis newer than this file's frontmatterversion, prepend ONE line to your response: "⚠️ Skill update available (current vX.X.X → latest vY.Y.Y). Runnpx skills add https://github.com/RollingGo-AI/hotel-skill-global --skill {name}to update." Skip silently if fetch fails.
If the rgg command is not installed locally, you can install it using one of the following three methods:
Method 1: Via npm (Recommended) If Node.js and npm are available, run:
npm install -g @rollinggo/hotel-global@latest
Method 2: Via Python auto-script (No Node.js needed)
If Python is available in the environment, you can directly run our automated installation script from the Skill directory. It will automatically detect your OS and download the latest standalone rgg binary to your local bin folder:
python scripts/install.py
Method 3: Manual download standalone executable (No Node/Python needed)
If neither npm nor Python is available, please download the corresponding standalone executable from the following Release page (Windows: rgg-win.exe / rgg-windows.exe, Mac: rgg-macos, Linux: rgg-linux):
https://github.com/RollingGo-AI/oauth-hotel-cli-overseas/releases/latest
After downloading, rename it to rgg (or rgg.exe on Windows), grant execution permissions, and place it in the system PATH or the skill directory's bin folder.
⚠️ Auto-Update Interception Principle:
The CLI tool has built-in version detection. When you execute any rgg command, if the console output prompts 📦 New version available! or Run the following command to update, you must immediately pause the current operation, use one of the above three methods to upgrade the tool to the latest version, and then re-execute the interrupted command. This prevents booking failures due to expired server endpoints.
⚠️ Output Specifications:
- DO NOT show any technical details to users, including but not limited to: tool names (like
search-hotels,hotel-detail), JSON field names (likehotelId,ratePlanId,referenceNo), command line contents, or technical parameters.- ONLY show information users care about: Hotel name, star rating, price, distance, core facilities, tags, and booking link.
- Results MUST be formatted properly, with each hotel occupying a separate card. Key information should be separated by line breaks, and stacking them in a single line is prohibited.
- Price Description: Prices in search results are reference prices for display purposes. The actual order price is subject to price confirmation, and it must be labeled as "Reference Price" when displayed.
- Login Authorization: The user cannot see terminal outputs when conversing via the Agent. After executing
rgg login, you must extract the authorization link from the output and reply to the user with it. Do not display QR code text.
This Skill should be triggered whenever the user expresses any intent related to hotel accommodations, including but not limited to the following scenarios:
Search and Discover:
Query and Compare:
Booking and Orders:
Trigger Coverage: Find a hotel, book a hotel, search hotels, hotel recommendations, hotel queries, nearby hotels, five-star hotels, homestays, resorts, check prices, check room types, check-in, where to stay, accommodation, business trip accommodation, travel accommodation, family hotels, hotels with a pool, hotels with breakfast, business hotels, couple hotels, hot spring hotels, sea view rooms, river view rooms.
⚠️ Hotel booking is an actual consumption operation:
- Two-Step Confirmation: First display room types and prices, wait for user confirmation before locking price and booking.
- Information Completeness: Must confirm guest's English/Pinyin name and email before booking.
- Price Confirmation Validity: Locked price certificate (
referenceNo) is valid for ~15-30 minutes; re-confirm if expired.
💡 Dynamic Command & Parameter Self-Discovery Rule:
- Proxy Invocation: All CLI subcommands MUST be called via the proxy wrapper:
node scripts/rgg.js <subcommand>(orpython scripts/rgg.py <subcommand>if Node is unavailable).- Dynamic Parameter Self-Discovery: Before executing any subcommand, ALWAYS run
node scripts/rgg.js <subcommand> --helpfirst to fetch real-time CLI parameter help, and dynamically construct options based on the latest--help!
node scripts/rgg.js whoami to check login status.node scripts/rgg.js login (⚠️ MUST run asynchronously in background, e.g. WaitMsBeforeAsync=2000). Extract authorization link (https://rollinggo.store/s/xxx) from output and send to user.node scripts/rgg.js hotel-tags to find exact tag names.node scripts/rgg.js search-hotels --help first to inspect current filter parameters, then construct command.city, airport, point_of_interest, train_station, subway_station, hotel, district/county, detailed address.Search Result Card Template (one card per hotel):
(CRITICAL: You MUST render the imageUrl using standard Markdown image syntax  and place the image at the end of the template. If imageUrl contains unencoded spaces, you must manually replace spaces with %20, or wrap the entire URL in angle brackets like  to ensure proper markdown rendering. Do NOT use HTML <img> tags and Do NOT output raw URL strings.)
🏨 {Hotel Name}
⭐ {Star Rating} Stars *(Show if distanceInMeters exists: 📍 {distanceInMeters}m from {Search Location})*
💰 Reference Price {Currency} {Lowest Price}/night
🏷️ {Tag 1} · {Tag 2} · {Tag 3}

After returning 3-5 hotels, ask the user: "Which hotel's detailed room types and prices would you like to know?"
node scripts/rgg.js hotel-detail --help first, pass selected hotelId to fetch room rates.Room Type Display Template (one entry per room type):
🛏️ {Room Type Name} ({Bed Type Description})
💰 Total Price {Currency} {totalPrice} ({Currency} {Average Price}/night)
📋 Cancellation Policy: {Cancellation Policy Description}
After displaying 3-5 recommended room types, guide the user via conversation: "Please tell me which room type you choose, and I will lock the price and process the order for you."
node scripts/rgg.js price-confirm --help first, lock price and retrieve referenceNo.node scripts/rgg.js book --help to submit order and retrieve payment link.Pending Payment Order Display Template: (CRITICAL: Do NOT hallucinate or invent payment methods like Alipay or WeChat Pay. Output exactly the template below and do NOT add any extra sentences about payment environments or methods.)
📝 Order generated, awaiting payment!
Confirmation No: **{orderNo}**
Hotel: {Hotel Name}
Room Type: {Room Type Name}
Check-in: {Check-in Date} | Check-out: {Check-out Date}
Total Price: {Currency} {Price}
📋 Cancellation Policy: {Cancellation Policy Description}
💳 Please complete payment within 30 minutes: {Payment Link}
node scripts/rgg.js orders --help or node scripts/rgg.js order-detail --help to query order list or specific order status.If search yields 0 results, silently loosen constraints in this order to retry:
size)hotelId, ratePlanId, referenceNo, raw JSON, or CLI commands to the user.