RollingGo 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...
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, cancel order, cancel booking, refund hotel, cancel hotel reservation.
⚠️ Hotel booking and cancellation involve actual financial and consumption operations:
- 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.- Cancellation High-Risk Security Gate (Two-Step Confirmation): Order cancellation is strictly irreversible. Never submit cancellation without explicit user consent. Must execute
pre-cancelfirst to check penalty fees and retrieve voucher (confirmId, valid 10 minutes), present the penalty and estimated refund to the user, and only executeconfirm-cancelupon explicit affirmative user confirmation.
💡 Dynamic Command & Parameter Self-Discovery Rule:
- Native Invocation: Directly call native CLI commands:
rgg <subcommand>(e.g.rgg status,rgg search-hotels).- Partner Customization (CLIENT_ID): Supports zero-code partner customization. If a customized client ID is needed, place a
client_id.txtfile in the skill directory, or passrgg login --client-id <id>on login (e.g.rgg login --client-id my_partner_id). The CLI remembers and persists this setting automatically. The default isrollinggoglobal.- Dynamic Parameter Self-Discovery: Before executing any subcommand, ALWAYS run
rgg <subcommand> --helpfirst to fetch real-time CLI parameter help, and dynamically construct options based on the latest--help!
rgg status (or whoami) to check login status.rgg login (add --client-id <id> if partner custom ID is needed, ⚠️ MUST run asynchronously in background, e.g. WaitMsBeforeAsync=2000). Extract authorization link (https://api.rollinggo.store/s/xxx) from output and send to user.rgg hotel-tags to find exact tag names.rgg 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?"
rgg 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."
rgg price-confirm --help first, lock price and retrieve referenceNo.rgg 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}
rgg orders --help or rgg order-detail --help to query order list or specific order status.⚠️ Critical Security Gate: Cancelling an order is strictly irreversible! You must follow the two-step confirmation process:
- Always call
pre-cancelfirst to query cancellation penalty fees and the authorization voucher (confirmId, valid for 10 minutes).- Truthfully inform the user about the penalty amount and expected refund. Only after receiving the user's explicit affirmative confirmation can you run
confirm-cancelto submit the cancellation.
Pre-cancel & Query Penalty Fees:
rgg pre-cancel --help to check parameters.rgg orders first to identify the order number.rgg pre-cancel --order-no <orderNo>.canCancel, penaltyAmount, confirmId, and bookingId. If canCancel is false, inform the user with customer support guidance: {message}.Verify with User & Obtain Explicit Consent:
⚠️ Order Cancellation Confirmation:
Order No: **{orderNo}**
Hotel: {Hotel Name}
Cancellation Penalty Fee: {Currency} {penaltyAmount}
Estimated Refund: {Currency} {Estimated Refund Amount}
⚠️ Cancellation is irreversible once confirmed. Please confirm if you wish to proceed with the cancellation?
rgg confirm-cancel --help to check parameters.rgg confirm-cancel --order-no <orderNo> --booking-id <bookingId> --confirm-id <confirmId>.Cancellation Success Display Template:
✅ Order successfully cancelled!
Confirmation No: **{orderNo}**
Refund is being processed and will be returned to the original payment method within 1-3 business days.
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.