CLI-only Google Hotels search using direct RPC calls
Project description
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:
pipx install hotl
or:
python -m pip install hotl
For local development:
cd /home/arajan/hotl
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
Usage
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:
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:
hotl details "ENTITY_KEY_FROM_SEARCH" \
--check-in 2026-09-01 \
--check-out 2026-09-04
Search and fetch details for the top results:
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 oneentity_key.enrich: search plus parallel detail lookup for top results.
Development
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.
- In PyPI, add a trusted publisher for
art22s/hotl, workflow.github/workflows/publish.yml, environmentpypi. - Optional: add a TestPyPI trusted publisher with environment
testpypi. - Create and push a version tag:
git tag v0.1.0
git push origin v0.1.0
- 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:
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
AtySUcRPC through thestayslibrary. - No HTML scraping, no browser automation, and no MCP registration.
- Network calls may be blocked in restricted shells unless network access is allowed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hotl-0.1.0.tar.gz.
File metadata
- Download URL: hotl-0.1.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0d3cc36b170f52d9902a08d8c214272e7d14fdbeddf85620b30ba6da2d5e176
|
|
| MD5 |
422c0b99de07352ce72b4248bd15ddfe
|
|
| BLAKE2b-256 |
027403543a6192e3be8eb5d012cc3b22b96c50758550f048c5401ce50b38b1f5
|
Provenance
The following attestation bundles were made for hotl-0.1.0.tar.gz:
Publisher:
publish.yml on art22s/hotl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hotl-0.1.0.tar.gz -
Subject digest:
c0d3cc36b170f52d9902a08d8c214272e7d14fdbeddf85620b30ba6da2d5e176 - Sigstore transparency entry: 1704326835
- Sigstore integration time:
-
Permalink:
art22s/hotl@398e8e399901e5b4e950a2415aa68ccf2d873275 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/art22s
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@398e8e399901e5b4e950a2415aa68ccf2d873275 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hotl-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hotl-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b2f250a6d103463cfdc29780f8cc7547b507304b36d1af8cf5c24ccf7698320
|
|
| MD5 |
75e18389199bf1b62051ac27dc31e5fd
|
|
| BLAKE2b-256 |
e1ca97cf66e512e2578b2382bee5b81700436429dd6f795a5791fceb117b8cea
|
Provenance
The following attestation bundles were made for hotl-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on art22s/hotl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hotl-0.1.0-py3-none-any.whl -
Subject digest:
8b2f250a6d103463cfdc29780f8cc7547b507304b36d1af8cf5c24ccf7698320 - Sigstore transparency entry: 1704326873
- Sigstore integration time:
-
Permalink:
art22s/hotl@398e8e399901e5b4e950a2415aa68ccf2d873275 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/art22s
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@398e8e399901e5b4e950a2415aa68ccf2d873275 -
Trigger Event:
release
-
Statement type: