restaurant-search · git:20260604.0da3398 · 2026-06-04 · sha256 f369917d18450b8f
restaurant-search git:20260604.0da3398A
Immutable. This exact content is served forever at /api/v1/blob/f369917d18450b8f.
--- name: restaurant-search license: MIT description: Search for Japanese restaurants using the `hpp` CLI (HotPepper Gourmet API). Use when the user wants to find a restaurant, plan a dinner, search for izakayas, or book a group meal in Japan. Triggers on requests like "find a restaurant near Shibuya", "search for izakayas in 新宿", "restaurant for 10 people in 浜松町", "dinner spot near Tokyo station". argument-hint: "<area> [--people N] [--budget <range>] [--genre <cuisine>]" allowed-tools: Bash compatibility: Requires hpp CLI and HOTPEPPER_API_KEY environment variable metadata: author: jackchuka scope: generic layer: primitive --- # Restaurant Search Find Japanese restaurants using the `hpp` CLI (HotPepper Gourmet API). https://github.com/jackchuka/hpp ## Prerequisites - `hpp` CLI installed and `HOTPEPPER_API_KEY` env var set ## Workflow ### 1. Parse the request Extract from the user's request: - **Location**: Station name, area name, or coordinates - **Party size**: Number of people (maps to `--party-capacity`) - **Day/time**: Determines which restaurants are open (check `open`/`close` fields) - **Genre preference**: e.g., izakaya, Chinese, Italian (maps to `--genre`) - **Budget**: Price range (maps to `--budget`) - **Features**: Private rooms (`--private-room`), non-smoking (`--non-smoking`), WiFi (`--wifi`), free drink (`--free-drink`), etc. - **Keywords**: Free text like "ramen", "sushi" (maps to `--keyword`) ### 2. Resolve the area code The API requires area codes, not free-text location names. Resolve the location: ```bash hpp area small --keyword "<location-name>" ``` This returns small area codes (e.g., `X085` for 浜松町) along with parent middle/large area codes. If no small area matches, try middle area: ```bash hpp area middle --keyword "<location-name>" ``` If the user provides coordinates (lat/lng), skip area lookup and use `--lat`, `--lng`, `--range` instead. ### 3. Resolve genre codes (if needed) If the user requests a specific cuisine type: ```bash hpp genre ``` Common genre codes: | Code | Genre | | ---- | -------------------- | | G001 | 居酒屋 | | G002 | ダイニングバー・バル | | G003 | 創作料理 | | G004 | 和食 | | G005 | 洋食 | | G006 | イタリアン・フレンチ | | G007 | 中華 | | G008 | 焼肉・ホルモン | | G009 | アジア・エスニック | | G010 | 各国料理 | | G011 | カラオケ・パーティ | | G012 | バー・カクテル | | G013 | ラーメン | | G014 | カフェ・スイーツ | | G016 | お好み焼き・もんじゃ | | G017 | 韓国料理 | If unsure, run `hpp genre` to get the full list. ### 4. Resolve budget codes (if needed) If the user specifies a budget: ```bash hpp budget ``` Common budget codes: | Code | Range | | ---- | ------------- | | B001 | ~1500円 | | B002 | 2001~3000円 | | B003 | 3001~4000円 | | B008 | 4001~5000円 | | B004 | 5001~7000円 | | B005 | 7001~10000円 | | B006 | 10001~15000円 | | B012 | 15001~20000円 | | B013 | 20001~30000円 | | B014 | 30001円~ | ### 5. Search restaurants Build the `hpp search` command with resolved codes and flags: ```bash hpp search --small-area <code> --party-capacity <N> --count 10 ``` Key flags to apply based on user needs: | Need | Flag | | ----------------------- | --------------------------------------- | | Party size | `--party-capacity <N>` | | Genre | `--genre <code>` | | Budget | `--budget <code>` | | Private room | `--private-room` | | Non-smoking | `--non-smoking` | | WiFi | `--wifi` | | All-you-can-drink | `--free-drink` | | All-you-can-eat | `--free-food` | | English menu | `--english` | | Card payment | `--card` | | Late night (after 11pm) | `--midnight` | | Lunch | `--lunch` | | Keyword | `--keyword "<text>"` | | Coordinates | `--lat <lat> --lng <lng> --range <1-5>` | Range values for coordinate search: 1=300m, 2=500m, 3=1km, 4=2km, 5=3km. Always use JSON output (default) for parsing, then present results as a table. ### 6. Present results Display results as a markdown table with these columns: | Column | Source | | ------------ | ------------------------------------------- | | # | Row number | | Restaurant | `name` | | Genre | `genre.name` | | Budget | `budget.average` | | Access | `access` (summarize to station + walk time) | | Private Room | `private_room` (yes/no/semi) | | Hours | `open` (show relevant day only) | | Link | `urls.pc` (as clickable markdown link) | After the table, add brief recommendations highlighting the best options for the user's specific needs (e.g., closest to station, best for groups, has private rooms). ### 7. Refine (if requested) If the user wants to narrow down, add more flags and re-search. Common refinements: - "with private rooms" → add `--private-room` - "under 4000 yen" → add `--budget B001,B002,B003` - "non-smoking" → add `--non-smoking` - "show me more" → increase `--count` or use `--start` for pagination ## Other Useful Commands - `hpp shop --name "<name>"` — Look up a specific restaurant by name - `hpp special list` — Browse special features/tags - `hpp creditcard` — List accepted credit card types ## Important Notes - Always use `--count` to limit results (default 10, max 100) - The API returns Japanese text — present it as-is, do not translate unless asked - Monday = 月, check `open`/`close` fields to verify the restaurant is open on the requested day - When the user specifies a day, check the `close` field for regular holidays (e.g., 日 = Sunday) - Coupon links are available in `coupon_urls.sp` — mention if the user asks about deals