npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

hotella

v0.1.3

Published

Search hotel prices and availability from the terminal via Google Hotels

Readme

hotella

Search hotel prices and availability from the terminal via Google Hotels.

Compare prices from Booking.com, Expedia, Hotels.com, and direct hotel sites in a single command.

Unofficial service: hotella is not affiliated with, endorsed by, or supported by Google. It retrieves publicly available Google Hotels pages, so results may be incomplete, inaccurate, rate-limited, or stop working when Google changes its site. Searches send your requested location and travel dates to Google, which also receives your IP address. You are responsible for ensuring your use complies with applicable terms and laws.

Quick Start

npx hotella search "Taipei" --checkin <future-checkin-date> --checkout <future-checkout-date>

Replace the placeholders with your travel dates in YYYY-MM-DD format.

Installation

# npm
npm install -g hotella

# pnpm
pnpm add -g hotella

# Or run directly with npx
npx hotella --help

Requires Node.js 22 or later.

Usage

Use future dates in YYYY-MM-DD format.

Basic Search

hotella search "Paris" --checkin 2026-04-01 --checkout 2026-04-03

Sort and Limit Results

# Cheapest 5 hotels
hotella search "Tokyo" --checkin 2026-03-01 --checkout 2026-03-05 --sort price-asc --limit 5

# Highest rated
hotella search "London" --checkin 2026-05-01 --checkout 2026-05-05 --sort rating --limit 10

Airport Codes

Use IATA airport codes instead of city names — hotella resolves them automatically:

# NRT → Tokyo/Narita
hotella search "NRT" --checkin 2026-06-01 --checkout 2026-06-07

# CDG → Paris/Charles de Gaulle
hotella search "CDG" --checkin 2026-04-01 --checkout 2026-04-03

Filters

# Hotels under $150/night with 4+ stars
hotella search "Berlin" --checkin 2026-06-01 --checkout 2026-06-05 \
  --max-price 150 --min-rating 4

# Price range
hotella search "NYC" --checkin 2026-07-01 --checkout 2026-07-03 \
  --min-price 100 --max-price 300

Currency

# Prices in Euros
hotella search "Berlin" --checkin 2026-06-01 --checkout 2026-06-05 --currency EUR

# Prices in Japanese Yen
hotella search "Tokyo" --checkin 2026-03-01 --checkout 2026-03-05 --currency JPY

Supported currencies: USD, EUR, GBP, JPY, TWD.

JSON Output for Scripting

# Pipe to jq
hotella search "Paris" --checkin 2026-04-01 --checkout 2026-04-03 --json | jq '.hotels[].name'

# Save to file
hotella search "Tokyo" --checkin 2026-03-01 --checkout 2026-03-05 --json > results.json

JSON is automatically selected when output is piped.

CLI Reference

hotella search [options] <location>

Arguments

| Argument | Description | | ---------- | ----------------------------------------- | | location | City name, location, or IATA airport code |

Options

| Flag | Default | Description | | ------------------- | -------- | --------------------------------------------- | | --checkin <date> | required | Check-in date (YYYY-MM-DD) | | --checkout <date> | required | Check-out date (YYYY-MM-DD) | | --adults <n> | 2 | Number of adults (1–9) | | --children <n> | 0 | Number of children (0–8) | | --sort <mode> | value | price-asc, price-desc, rating, value | | --limit <n> | 20 | Max results to show | | --min-price <n> | — | Minimum price per night | | --max-price <n> | — | Maximum price per night | | --min-rating <n> | — | Minimum rating (0–5) | | --currency <code> | USD | Currency code: USD, EUR, GBP, JPY, TWD | | --browser <type> | chrome | Browser to impersonate: chrome or firefox |

Global Options

| Flag | Description | | ------------ | -------------------------------------------- | | --json | Structured JSON output | | --plain | Human-readable list output | | --table | Aligned columnar table output | | --verbose | Show operational progress | | --debug | Show debug information (implies --verbose) | | --no-color | Disable colors | | --version | Show version number | | --help | Show help |

Environment Variables

| Variable | Description | | ---------- | --------------------------------------------------- | | NO_COLOR | Disable all color output (see https://no-color.org) |

Output Formats

Plain (default in TTY)

Hotels in Taipei · Feb 10, 2026–Feb 17, 2026 · 2 adults

  1. MEANDER Taipei
     $32/night · ★ 4.6 · Free Wi-Fi, Air conditioning, Smoke-free property

  2. Grand Hyatt Taipei
     $271/night · ★ 4.4 · Breakfast ($), Free Wi-Fi, Free parking

Found 20 hotels · Lowest: $22/night

Table

hotella search "Tokyo" --checkin 2026-03-01 --checkout 2026-03-05 --table

Displays results in an aligned columnar table with hotel name, price, rating, and amenities.

JSON

{
  "query": {
    "location": "Taipei",
    "checkin": "2026-02-10",
    "checkout": "2026-02-17",
    "adults": 2,
    "children": 0
  },
  "hotels": [
    {
      "name": "MEANDER Taipei",
      "price": 32,
      "currency": "USD",
      "rating": 4.6,
      "amenities": ["Free Wi-Fi", "Air conditioning", "Smoke-free property"],
      "url": "https://www.google.com/travel/hotels/..."
    }
  ],
  "summary": {
    "total": 20,
    "lowestPrice": 22
  }
}

Development

Setup

git clone https://github.com/crcatala/hotella.git
cd hotella
pnpm install

Refreshing airport data (maintainers)

The airport dataset is pinned to an immutable upstream commit. To refresh it, start from a clean working tree and run:

pnpm run iata:refresh

The command resolves the latest upstream commit, validates its schema and mapping count, and updates the pin locally. Review the revision and reported mapping count, run pnpm run verify, then open a dedicated PR. Watch for schema changes, unexpectedly low mapping counts, and city-name changes that could affect search locations.

Running

# Development mode
pnpm dev search "Taipei" --checkin 2026-02-10 --checkout 2026-02-17

# Build
pnpm build

Testing

# Run all non-live tests
pnpm test

# Run tests with verbose output
pnpm test:verbose

# Run live tests (makes real HTTP requests)
pnpm test:live

# Watch mode
pnpm test:watch

Verification

# Run all checks: tests, linting, formatting, type checking
pnpm run verify

Contributing

Hotella is personally maintained and is not accepting code contributions, pull requests, or feature requests. Bug reports with a clear reproduction are welcome. See CONTRIBUTING.md for details.

Releasing

Maintainers can follow RELEASING.md for the manual release process.

License

MIT