← 返回 Skills 市场
gwang08

Price Win

作者 Gwang · GitHub ↗ · v1.0.3 · MIT-0
cross-platform ⚠ suspicious
49
总下载
0
收藏
0
当前安装
4
版本数
在 OpenClaw 中安装
/install price-win
功能描述
Search and compare hotel prices across Agoda, Booking.com, Traveloka, plus direct PMS listings. OTA crawls run locally on the user's machine; a single lightw...
使用说明 (SKILL.md)

OpenTravel Deal Finder

Hotel price comparison across Agoda, Booking.com, Traveloka, and direct-from-property listings in one query.

How the work is split:

  • OTA prices are crawled by a stealth Chromium browser running locally on the user's machine. No central scraping backend, no shared IP rate limits.
  • Direct-from-property prices come from a single HTTPS GET to the OpenTravel public API. The request carries city, check-in, check-out, and adult count — the same fields the user already typed in chat. Nothing else is sent.

In short: local-first, not local-only. Search parameters do leave the user's machine for the direct-listings provider.

Data and consent

Before running, the user should be aware:

  • OTA scraping. Agoda, Booking, and Traveloka are scraped by automating a real browser session from the user's machine. This is functionally similar to opening each site by hand, but at machine speed. Doing this at scale may violate those sites' Terms of Service, can trigger CAPTCHAs, and could lead to the user's IP being throttled or blocked. Run sparingly and at the user's own risk.
  • Direct-listings API call. City, dates, and adult count are sent to the configured OpenTravel host. Set OPENTRAVEL_API_BASE_URL to point at a host you trust, or omit the direct-listings step entirely if this is not acceptable.

If the user has not asked for OTA comparisons explicitly, prefer to confirm before kicking off the crawl.

When to use

  • The user names a city and travel dates and wants prices.
  • The user wants to compare what's listed across booking sites.

How to invoke

node ./bin/search.js "\x3Ccity>" \x3CcheckIn YYYY-MM-DD> \x3CcheckOut YYYY-MM-DD> [adults]

The script blocks for 15–60 seconds, runs the four sources in parallel, and emits JSON on stdout. Diagnostics go to stderr.

Presenting results

The output contains topDeals (deduplicated hotels, each tagged with a winner source) and indicativeHotels (properties with reference prices but no firm calendar for the requested dates).

Ranking and transparency

  1. Sort the combined list by price, cheapest first. Do not push direct listings ahead of cheaper OTA results — the user asked for the cheapest stay, so honour that.
  2. Label each entry with its booking source. If a hotel is bookable directly, surface the direct link AND the cheapest OTA link side-by-side, so the user can see and choose.
  3. Show savings honestly. When a direct price beats the cheapest OTA, mark the saving. When an OTA is cheaper, say so plainly — direct is not always the best deal.
  4. Limit to 5–7 entries to avoid wall-of-text. If you truncate, prefer to keep at least one direct-bookable entry in view so the user knows the option exists.

Suggested layout

🏨 \x3Cname>  (\x3Ccity>, \x3Cstars>★)
   💰 \x3Ccheapest price>/night — \x3Csource>
   \x3Cif direct booking also available:>
   🏷  Direct: \x3Cdirect price>/night — \x3CdirectLink>
       \x3C"saves \x3CX> vs \x3COTA>" OR "costs \x3CX> more than \x3COTA>">
   \x3Cend>
   🔗 \x3Clink to chosen source>

For indicativeHotels:

💡 \x3Cname> — from \x3Cprice>/night (reference price)
   Calendar not yet published for these dates. Contact the property to confirm.

Adapt the layout to the chat platform (Telegram supports markdown, Discord prefers short lines). Match the conversation language — if the user wrote in Vietnamese, respond in Vietnamese.

First-run setup

install.sh runs automatically on install and:

  1. Installs the Node dependencies.
  2. Downloads a Chromium build (one-time, ~200 MB).

Subsequent searches reuse the cached browser and are noticeably faster.

Limitations

  • Requires Node.js 20+ and roughly 250 MB free disk (Chromium + deps).
  • The first search of a session is slower (browser warm-up).
  • OTAs may throttle aggressive query patterns; partial results are returned with a meta.sourceErrors[] entry in that case.
  • Hotel-name fuzzy-match (Jaccard on word tokens) occasionally misses obvious duplicates; the same property may appear twice if naming varies across sources.
安全使用建议
Before installing, be aware that this skill downloads Chromium, scrapes OTA sites from your machine using anti-detection automation, and sends city/date/adult search details to a default OpenTravel endpoint. Verify prices manually, especially because the merger can favor direct listings rather than strictly ranking the true cheapest option.
能力评估
Purpose & Capability
The crawling and comparison capabilities match the stated hotel-search purpose, but the merger logic applies an OpenTravel-direct preference that conflicts with the advertised cheapest-first behavior.
Instruction Scope
SKILL.md tells the agent to rank cheapest first and not push direct listings ahead of cheaper OTA results, while the implementation can mark direct as the winner within a 5% price gap and sort OpenTravel-winning results first.
Install Mechanism
The included installer and package postinstall install npm dependencies and download a Chromium build via Patchright. This is purpose-aligned for browser crawling, but users should expect a sizable remote browser download.
Credentials
Local OTA crawling is disclosed, but the direct-listings API defaults to a non-HTTPS raw IP address, contradicting the documentation's HTTPS claim for the data sent off-device.
Persistence & Privilege
No account credentials or persistent browser profile use are shown; Patchright/Chromium caching may persist on disk, and browser contexts are closed after the run.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install price-win
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /price-win 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.3
- Added package-lock.json to improve dependency management and build reproducibility. - No changes to functionality or skill documentation.
v1.0.2
**Direct-listings now fetched via public API; ranking logic updated for price-first sorting.** - Direct-from-property prices are now loaded via a lightweight HTTPS API call to OpenTravel, not only local scraping. - Combined hotel results are now sorted by cheapest price first, regardless of booking source. - Result entries are clearly labeled by source; direct vs. OTA prices shown side-by-side when both are available. - Users are transparently informed about data sharing (OTA browser automation and API call); consent is recommended before crawling OTAs. - Limit of 5–7 displayed deals, preferring to show at least one direct-bookable hotel if possible. - Search flow and result formatting instructions updated for clarity and transparency.
v1.0.1
- Updated skill summary and documentation for clarity and consistency. - Expanded OTA coverage reference from "OpenTravel" to "direct PMS listings." - Improved language in user instructions and suggested output formatting. - Clarified direct listing prioritization and truncation rules. - Adjusted install/setup and limitation notes for accuracy. - No code or logic changes detected; documentation only.
v1.0.0
Initial release: Local-first hotel meta-search for Vietnam with direct OpenTravel price priority. - Searches and compares hotel prices across Agoda, Booking.com, Traveloka, and OpenTravel direct listings from the user's device — no central server. - Aggregates and deduplicates results, always prioritizing and displaying OpenTravel direct listings at the top. - Presents clear savings vs OTA, with all OpenTravel options shown first, followed by the cheapest OTA-only deals. - Provides indicative prices for dates without current rates. - Requires Node.js, uses Patchright and Chromium locally, with automated setup.
元数据
Slug price-win
版本 1.0.3
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 4
常见问题

Price Win 是什么?

Search and compare hotel prices across Agoda, Booking.com, Traveloka, plus direct PMS listings. OTA crawls run locally on the user's machine; a single lightw... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 49 次。

如何安装 Price Win?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install price-win」即可一键安装,无需额外配置。

Price Win 是免费的吗?

是的,Price Win 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Price Win 支持哪些平台?

Price Win 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Price Win?

由 Gwang(@gwang08)开发并维护,当前版本 v1.0.3。

💬 留言讨论