webscout-serper
v0.1.0Kickside WebScout — Serper search provider. A registry-declared search provider (descriptor + its own API key) for the kickside/webscout core.
Run
wippy run kickside/webscout-serperkickside/webscout-serper
Google web search results through Serper for kickside/webscout. WebScout itself knows nothing about Serper: this module declares a search
provider descriptor and owns the Serper API key in its own settings namespace.
Install it and Serper becomes selectable in the WebScout settings card. Remove it and WebScout falls back to its default provider — nothing in WebScout changes either way.
What it declares
| Entry | What it is |
|---|---|
| provider | The kickside.webscout:search_provider descriptor — id: serper, a 10-result ceiling, and the ids of the two functions below |
| search | One Serper /search query (q and num, one credit), its organic results normalized into WebScout's shared result shape |
| available | Whether the key is set; answers the descriptor's available_func |
| setting_api_key | Serper API key, in kickside.webscout.providers.serper |
| settings_block | The Settings page section this key appears in — "Serper", under Integrations |
Serper is not marked default: installing this module makes it selectable, it does not change the selection.
Choose it by setting kickside.webscout / search_provider to serper.
Configuration
One setting, kickside.webscout.providers.serper / api_key. It is read through the WebScout config reader with
this module's namespace, the one the descriptor names in settings_ns, so the key leaves with the module.
Serper answers a missing or wrong key with 403, and possibly spent credits too; the search reports it as "Serper rejected the request (403)" followed by Serper's own message. Serper returns results scraped from Google Search and is not affiliated with Google; under its privacy policy you are the controller of personal data in queries, so send personal names only where you have a lawful basis.
Development
From this module directory, make test runs its harness and make lint checks its registry namespace.
The harness mounts this module and resolves its dependencies. Its provider descriptor test verifies the
shared WebScout protocol and the module's credential namespace. Transport fixtures cover result normalization
and provider errors without live Serper calls.
The suites live in test/suites/; module packaging excludes test entries. PostgreSQL validation uses the
harness's postgres profile with a dedicated scratch database that is removed after the run.