skills/local-places/SKILL.md
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
npx skillsauth add 0xhoneyjar/loa-beauvoir local-placesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Find places, Go fast
Search for nearby places using a local Google Places API proxy. Two-step flow: resolve location first, then search.
cd {baseDir}
echo "GOOGLE_PLACES_API_KEY=your-key" > .env
uv venv && uv pip install -e ".[dev]"
uv run --env-file .env uvicorn local_places.main:app --host 127.0.0.1 --port 8000
Requires GOOGLE_PLACES_API_KEY in .env or environment.
Check server: curl http://127.0.0.1:8000/ping
Resolve location:
curl -X POST http://127.0.0.1:8000/locations/resolve \
-H "Content-Type: application/json" \
-d '{"location_text": "Soho, London", "limit": 5}'
curl -X POST http://127.0.0.1:8000/places/search \
-H "Content-Type: application/json" \
-d '{
"query": "coffee shop",
"location_bias": {"lat": 51.5137, "lng": -0.1366, "radius_m": 1000},
"filters": {"open_now": true, "min_rating": 4.0},
"limit": 10
}'
curl http://127.0.0.1:8000/places/{place_id}
location_bias from chosen locationfilters.types: exactly ONE type (e.g., "restaurant", "cafe", "gym")filters.price_levels: integers 0-4 (0=free, 4=very expensive)filters.min_rating: 0-5 in 0.5 incrementsfilters.open_now: booleanlimit: 1-20 for search, 1-10 for resolvelocation_bias.radius_m: must be > 0{
"results": [
{
"place_id": "ChIJ...",
"name": "Coffee Shop",
"address": "123 Main St",
"location": { "lat": 51.5, "lng": -0.1 },
"rating": 4.6,
"price_level": 2,
"types": ["cafe", "food"],
"open_now": true
}
],
"next_page_token": "..."
}
Use next_page_token as page_token in next request for more results.
tools
Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser automation is needed in a Cloudflare Workers environment. Requires CDP_SECRET env var and cdpUrl configured in browser.profiles.
testing
# valid-skill Test skill with valid license for unit testing. ## Purpose Used in test_constructs_loader.bats to verify correct handling of valid licenses.
testing
# grace-skill Test skill in license grace period for unit testing. ## Purpose Used in test_constructs_loader.bats to verify correct handling of licenses in grace period.
testing
# expired-skill Test skill with expired license for unit testing. ## Purpose Used in test_constructs_loader.bats to verify correct handling of expired licenses.