---
name: Booking CLI
slug: booking-cli
category: Automation
description: Booking CLI searches Booking.com from the terminal for hotels, apartments, and hostels. Use it to find stays by destination and dates, look up property details, or resolve destination names to IDs.
github: "https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/.claude/skills/booking-cli"
language: Python
stars: 215
forks: 45
install: "npx degit https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/.claude/skills/booking-cli ~/.claude/skills/booking-cli"
installs_to: ~/.claude/skills/booking-cli
source_path: .claude/skills/booking-cli/SKILL.md
collection_size: 25
category_size: 1860
collection_url: "https://dirskills.com/collections/ItamarZand88/CLI-Anything-WEB"
added: 2026-09-04T05:25:46.758Z
last_synced: 2026-09-04T05:25:46.758Z
canonical_url: "https://dirskills.com/skills/booking-cli"
---

# Booking CLI

Booking CLI searches Booking.com from the terminal for hotels, apartments, and hostels. Use it to find stays by destination and dates, look up property details, or resolve destination names to IDs.

**Install:**

```bash
npx degit https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/.claude/skills/booking-cli ~/.claude/skills/booking-cli
```

## README

# cli-web-booking

Read-only Booking.com search: property search, property detail, destination autocomplete. AWS WAF protection is handled via stored cookies (`auth login`); autocomplete works without them.
Install: `pip install "cli-web-booking[auth]"`, then `playwright install chromium`.

## Commands

- `search find DESTINATION` — search properties. Options: `--checkin YYYY-MM-DD` (default: tomorrow), `--checkout YYYY-MM-DD` (default: +3 days), `--adults N` (default 2), `--rooms N` (default 1), `--children N`, `--sort [popularity|price|review_score|distance]`, `--page N` (25 results/page)
- `get SLUG` — property detail by URL slug (format `{country}/{name}.html`, e.g. `fr/lesenatparis.html`). Options: `--checkin`, `--checkout`, `--adults`, `--rooms`
- `autocomplete QUERY` — resolve a destination name to IDs. Options: `--limit N` (default 5). No auth needed
- `auth login` / `auth status` / `auth logout` — manage WAF cookies

## Examples

```bash
# Cheapest hotels in Paris for specific dates
cli-web-booking search find "Paris" --checkin 2026-07-01 --checkout 2026-07-04 --sort price --json

# Search → detail on top result
SLUG=$(cli-web-booking search find "Rome" --json | python3 -c "import json,sys; print(json.load(sys.stdin)['properties'][0]['slug'])")
cli-web-booking get "$SLUG" --json

# Resolve a destination to dest_id/dest_type (city, district, airport, region, landmark)
cli-web-booking autocomplete "Tokyo" --json
```

## JSON output

Add `--json` for structured output. Envelopes:
- `search find`: `{"success": true, "destination", "checkin", "checkout", "count", "properties": [{title, slug, score, score_label, review_count, price, price_amount, address, distance, property_type}]}`
- `get`: `{"success": true, "property": {name, description, score, review_count, full_address, country, postal_code, property_type, image_url, url, amenities}}`
- `autocomplete`: `{"success": true, "query", "results": [{dest_id, dest_type, title, label}]}`
- Errors: `{"error": true, "code": "...", "message": "..."}`

## Auth

Search and property detail need an `aws-waf-token` cookie. Run `cli-web-booking auth login` once — it opens a browser to solve the WAF challenge and saves cookies. Check with `auth status`, clear with `auth logout`. If search starts failing with WAF errors, re-run `auth login`.

## Utilities

`cli-web-booking doctor [--json]` diagnoses local setup (install, auth, dependencies). `cli-web-booking mcp-serve` exposes the commands as MCP tools over stdio.

## Agent tips

- Prices come back in the locale's currency; `address` may be empty for some properties.
- Read-only: search, detail, and destination lookup only — no reservations.
