with one click
local-places
// Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
// Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Send SMS messages and make outbound phone calls via Twilio
Merge a GitHub PR via squash after /preparepr. Use when asked to merge a ready PR. Do not push to main or modify code. Ensure the PR ends in MERGED state and clean up worktrees after success.
Review-only GitHub pull request analysis with the gh CLI. Use when asked to review a PR, provide structured feedback, or assess readiness to land. Do not merge, push, or make code changes you intend to keep.
Prepare a GitHub PR for merge by rebasing onto main, fixing review findings, running gates, committing fixes, and pushing to the PR head branch. Use after /reviewpr. Never merge or push to main.
Use when you need to control Discord from OpenClaw via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, create/edit/delete channels and categories, fetch permissions or member/role/channel info, set bot presence/activity, or handle moderation actions in Discord DMs or channels.
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
| name | local-places |
| description | Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost. |
| homepage | https://github.com/Hyaxia/local_places |
| metadata | {"openclaw":{"emoji":"📍","requires":{"bins":["uv"],"env":["GOOGLE_PLACES_API_KEY"]},"primaryEnv":"GOOGLE_PLACES_API_KEY"}} |
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.