Metadata-Version: 2.4
Name: hotl
Version: 0.1.0
Summary: CLI-only Google Hotels search using direct RPC calls
Project-URL: Homepage, https://github.com/art22s/hotl
Project-URL: Repository, https://github.com/art22s/hotl
Project-URL: Issues, https://github.com/art22s/hotl/issues
Author-email: Ajay Rajan <ajayrajanar3@gmail.com>
License: MIT
License-File: LICENSE
Keywords: cli,google-hotels,hotel-search,hotels,travel
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: stays>=0.1.1
Provides-Extra: dev
Requires-Dist: build>=1.3.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Requires-Dist: twine>=6.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# hotl

CLI-only Google Hotels search using direct Google Hotels `batchexecute` RPC calls.

This project intentionally does not expose or register an MCP server. It wraps the
public `stays.SearchHotels` Python API and provides only terminal commands.

## Install

After the package is published:

```bash
pipx install hotl
```

or:

```bash
python -m pip install hotl
```

For local development:

```bash
cd /home/arajan/hotl
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
```

## Usage

```bash
hotl search "tokyo hotels" \
  --check-in 2026-07-22 \
  --check-out 2026-07-26 \
  --stars 4 \
  --sort-by LOWEST_PRICE \
  --max-results 5
```

Machine-readable output:

```bash
hotl search "paris hotels" \
  --check-in 2026-09-01 \
  --check-out 2026-09-04 \
  --format json
```

Fetch room and rate details for a hotel returned by search:

```bash
hotl details "ENTITY_KEY_FROM_SEARCH" \
  --check-in 2026-09-01 \
  --check-out 2026-09-04
```

Search and fetch details for the top results:

```bash
hotl enrich "new york hotels" \
  --check-in 2026-09-01 \
  --check-out 2026-09-04 \
  --max-hotels 3 \
  --format json
```

## Commands

- `search`: list-view hotel search.
- `details`: room/rate detail lookup for one `entity_key`.
- `enrich`: search plus parallel detail lookup for top results.

## Development

```bash
python -m pip install -e ".[dev]"
ruff check .
pytest
python -m build
twine check dist/*
```

## Release

`hotl` is configured for PyPI Trusted Publishing through GitHub Actions.

1. In PyPI, add a trusted publisher for `art22s/hotl`, workflow
   `.github/workflows/publish.yml`, environment `pypi`.
2. Optional: add a TestPyPI trusted publisher with environment `testpypi`.
3. Create and push a version tag:

```bash
git tag v0.1.0
git push origin v0.1.0
```

4. Create a GitHub Release from the tag. The release event publishes to PyPI.

The publish workflow can also be run manually from GitHub Actions for TestPyPI
smoke tests.

## ClawHub

The agent skill bundle lives at `skills/hotl/SKILL.md`. Publish it with:

```bash
npm i -g clawhub
clawhub login
clawhub publish ./skills/hotl --slug hotl --name "hotl" --version 0.1.0 --tags latest,travel,hotels,cli
```

## Notes

- Uses the Google Hotels `AtySUc` RPC through the `stays` library.
- No HTML scraping, no browser automation, and no MCP registration.
- Network calls may be blocked in restricted shells unless network access is allowed.
