booking — скилл для Claude Code: что делает и как установить
Скилл для поиска отелей, цен на номера и авиабилетов на Booking.com через браузерные команды openweb.
npx skills add imoonkey/openweb --skill booking -a claude-codeЧто делает booking
Скилл запускает готовые сценарии работы с сервисом Booking.com. Пайплайн поиска жилья начинается с метода searchHotels, куда передаются пункт назначения и даты поездки. Метод возвращает список URL вида /hotel/{country}/{slug}.html. Из этих адресов извлекаются код страны и слаг объекта, которые используются в остальных запросах.
Данные извлекаются через Apollo SSR cache, разметку JSON-LD, GraphQL внутри page.evaluate и DOM. Метод getHotelDetail отдаёт сырой блок schema.org/Hotel без адаптации полей. Рейтинг читается по пути aggregateRating.ratingValue по десятибалльной шкале, а адрес находится в объекте address.
Операции getHotelPrices и getHotelReviews требуют, чтобы страница конкретного отеля оставалась открытой в браузере во время выполнения. Поиск авиарейсов вынесен на отдельный поддомен flights.booking.com и работает по кодам городов и дате вылета.
Какие задачи решает
- Найти варианты жилья на Booking.com по городу и датам
- Получить сырую JSON-LD разметку отеля со схемой schema.org
- Собрать цены и категории номеров с открытой страницы отеля
- Запросить отзывы гостей и оценки по категориям
- Подобрать авиарейсы по заданному маршруту
Примеры запросов агенту
- Найди отели в Нью-Йорке на даты с 2026-05-01 по 2026-05-03 через booking searchHotels
- Запроси стоимость номеров для отеля riverside-tower через getHotelPrices
- Поищи авиабилеты по маршруту NYC-PAR на 2026-05-01
Как установить booking
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill booking -a claude-code2Вручную: положить файлы
~/.claude/skills/booking/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/booking/
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill booking -a codex2Вручную: положить файлы
.agents/skills/booking/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill booking -a cursor2Вручную: положить файлы
.cursor/skills/booking/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install imoonkey/openweb booking2Вручную: положить файлы
.github/skills/booking/SKILL.md1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill booking -a gemini-cli2Командой платформы
gemini skills install https://github.com/imoonkey/openweb --path src/sites/bookingВручную: положить файлы
.devin/skills/booking/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill booking -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о booking
Как установить booking в Claude Code?
Выполните команду npx skills add imoonkey/openweb --skill booking -a claude-code. Конфигурация запишется по пути ~/.claude/skills/booking/SKILL.md.
Что делает скилл booking?
Он предоставляет набор операций для парсинга отелей, отзывов, вариантов номеров и авиаперелётов с Booking.com.
В каком виде возвращаются свойства отеля в getHotelDetail?
Метод возвращает оригинальный блок schema.org/Hotel без нормализации полей, поэтому рейтинг читается напрямую из aggregateRating.ratingValue.
Исходный текст
SKILL.md · MIT
# Booking.com
## Overview
Travel platform — hotel search, property details, reviews, room pricing, and flight search via Apollo SSR cache + LD+JSON + GraphQL page.evaluate + DOM.
## Workflows
### Find a hotel and check prices
1. `searchHotels(ss, checkin, checkout)` → `hotels[].url` — parse URL `/hotel/{country}/{slug}.html` → `country`, `slug`
2. `getHotelDetail(country, slug)` ← searchHotels url → name, rating, address, description
3. `getHotelPrices(slug)` ← searchHotels url → room types, beds, sizes, facilities (requires hotel page open)
4. `getHotelReviews(slug)` ← searchHotels url → score, subscores, featured reviews (requires hotel page open)
### Search flights
1. `searchFlights(route, from, to, depart)` → carriers, times, duration, stops, prices
## Operations
| Operation | Intent | Key Input | Key Output | Notes |
|-----------|--------|-----------|------------|-------|
| searchHotels | find hotels in a destination | ss (query), checkin, checkout | name, url, price, rating, reviewCount | entry point; parse url → country, slug |
| getHotelDetail | hotel info by URL | country ← searchHotels url, slug ← searchHotels url | raw schema.org/Hotel LD+JSON (name, aggregateRating, address, image, priceRange) | declarative `script_json` extraction with `type_filter: Hotel` — response is the raw LD+JSON block, not reshaped |
| getHotelReviews | review summary | slug ← searchHotels url | score, subscores, featured reviews | requires hotel detail page open |
| getHotelPrices | room availability + pricing | slug ← searchHotels url | room name, bed, size, price, perNight | requires hotel detail page open |
| searchFlights | find flights by route | route (NYC-PAR), from, to, depart | carrier, times, airports, duration, stops, price | flights.booking.com subdomain |
## Quick Start
```bash
# Search hotels in New York
openweb booking exec searchHotels '{"ss":"New York","checkin":"2026-05-01","checkout":"2026-05-03"}'
# Get hotel details (extract country/slug from searchHotels URL)
openweb booking exec getHotelDetail '{"country":"us","slug":"riverside-tower","checkin":"2026-05-01","checkout":"2026-05-03"}'
# Get hotel reviews (hotel page must be open)
openweb booking exec getHotelReviews '{"slug":"riverside-tower"}'
# Get room pricing (hotel page must be open)
openweb booking exec getHotelPrices '{"slug":"riverside-tower"}'
# Search flights NYC to Paris
openweb booking exec searchFlights '{"route":"NYC-PAR","from":"NYC.CITY","to":"PAR.CITY","depart":"2026-05-01"}'
```
## getHotelDetail response shape
`getHotelDetail` returns the raw schema.org `Hotel` JSON-LD block as-is. Pretty-name mappings (what the old adapter exposed → raw field path):
| Friendly name | Raw JSON-LD path |
|---|---|
| rating | `aggregateRating.ratingValue` (out of 10 on Booking.com) |
| reviewCount | `aggregateRating.reviewCount` |
| street | `address.streetAddress` |
| city | `address.addressLocality` |
| region | `address.addressRegion` |
| postalCode | `address.postalCode` |
| country | `address.addressCountry` |
| image | `image` (string or array of URLs) |
| priceRange | `priceRange` |
No runtime reshape — consumers read fields by their schema.org names.
© imoonkey · MIT · imoonkey/openweb