$ show openclaw/goplaces
goplaces is a production-grade Go client and CLI for the Google Places API (New) and selected Routes API workflows. It provides typed request/response structs, deterministic field masks for cost control, context support, and pluggable HTTP. The CLI offers eight commands (search, nearby, autocomplete, details, photo, resolve, route, directions) with both human-readable and JSON output. The repository includes an extensive release pipeline with code signing, notarization, reproducible builds, and Homebrew distribution. The codebase is well-structured with clear separation between CLI rendering, API client logic, and validation. It demonstrates strong engineering practices: high test coverage (≥90%), linting, vulnerability scanning, and hardened release scripts with pinned tool versions and multi-phase verification. The project is actively maintained with frequent releases and comprehensive documentation.
The LLM identified 3 files worth highlighting for reuse:
Defines custom error types (ValidationError, APIError) and sentinel errors (ErrMissingAPIKey) for the Places API client. This pattern is cleanly isolated, uses Go's error wrapping, and can be extracted into any Go project needing structured error handling for external API calls.
Contains parameterized validation functions (e.g., validateCircle, validateDirectionsRequest) that check request fields before API calls. These are self-contained, testable, and not tied to specific business logic, making them reusable for any Go project requiring input validation for geographic or API requests.
Implements human-readable output rendering for CLI commands (search results, directions, details). Uses shared formatting functions and color helpers. This module is decoupled from the API client and can be reused in other CLI tools that need structured, colorized terminal output.