Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Coding
Serper Clone
Try itWeb search via a self-hosted Serper-compatible API (powered by SearXNG). Free, no rate limits, runs on your own infrastructure. Use for: web searches, news,...
What it does
Web search using a self-hosted Serper-compatible API. Uses SearXNG as the search backend with a lightweight bridge that exposes the familiar Serper API format.
The skill document
Serper Clone Skill
Web search using a self-hosted Serper-compatible API. Uses SearXNG as the search backend with a lightweight bridge that exposes the familiar Serper API format.
Why Self-Hosted Search?
- Free & unlimited — no API quotas, no per-query costs
- Private — queries never leave your infrastructure
- No rate limits — search as much as you need
- Drop-in compatible — same API format as serper.dev
Setup
1. Deploy a Serper Clone Instance
You need a running instance of the Serper Clone API. Options:
- StartOS (recommended for home servers): Install from serper-startos
- Docker: See the serper-startos README for Docker deployment
- Any SearXNG + bridge setup that exposes a Serper-compatible API
After deployment, note your:
- Base URL (e.g.,
https://search.example.comorhttp://192.168.1.50:8080) - API key (configured during setup)
2. Configure the Skill
Create the API key file:
echo "API_KEY=your-api-key-here" > ~/.openclaw/workspace/.serper-clone-api-key
echo "BASE_URL=https://your-serper-clone-host" >> ~/.openclaw/workspace/.serper-clone-api-key
chmod 600 ~/.openclaw/workspace/.serper-clone-api-key
The skill will not activate until this file exists.
Endpoints
All endpoints accept POST requests with a JSON body.
| Endpoint | Description |
|---|---|
/search | General web search |
/news | News articles |
/images | Image search |
/videos | Video search |
/places | Local places/businesses |
/maps | Maps/location search |
/shopping | Shopping results |
/scholar | Academic papers |
/patents | Patent search |
/autocomplete | Query autocomplete suggestions |
Usage
Reading Configuration
API_KEY=$(grep '^API_KEY=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
BASE_URL=$(grep '^BASE_URL=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
Web Search
curl -s -X POST "$BASE_URL/search" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "search query", "num": 10}' | jq .
Search Parameters
{
"q": "search query", // Required: search terms
"gl": "us", // Country code
"hl": "en", // Language code
"num": 10, // Number of results (1-100)
"page": 1, // Result page number
"autocorrect": true, // Enable/disable spell correction
"location": "Austin, Texas" // Location hint
}
Response Format
{
"searchParameters": { "q": "...", "gl": "us", "hl": "en", "num": 10 },
"organic": [
{
"title": "Result Title",
"link": "https://example.com",
"snippet": "Description of the result...",
"position": 1,
"date": "2026-02-16T00:00:00"
}
],
"answerBox": { "answer": "...", "snippet": "..." },
"relatedSearches": [ { "query": "related search" } ],
"credits": 0
}
News Search
curl -s -X POST "$BASE_URL/news" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "latest AI news", "num": 5}'
Image Search
curl -s -X POST "$BASE_URL/images" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "neural network architecture diagram"}'
Scholarly Articles
curl -s -X POST "$BASE_URL/scholar" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "mixture of experts transformer", "num": 10}'
Helper Function
For convenience in shell scripts:
serper_search() {
local endpoint="${1:-search}"
local query="$2"
local num="${3:-10}"
local api_key=$(grep '^API_KEY=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
local base_url=$(grep '^BASE_URL=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
curl -s -X POST "$base_url/$endpoint" \
-H "X-API-KEY: $api_key" \
-H "Content-Type: application/json" \
-d "{\"q\": \"$query\", \"num\": $num}"
}
# Examples:
# serper_search search "OpenClaw agent framework" 10
# serper_search news "AI releases 2026" 5
# serper_search scholar "large language models" 10
Security Notes
- The API key file should be
chmod 600(owner-read only) - All requests stay between your OpenClaw instance and your Serper Clone instance
- No data is sent to any third-party service
- The skill only activates when the API key file exists
Related
- Serper Clone server: github.com/paulscode/serper-startos
- SearXNG: github.com/searxng/searxng — the search backend
Related skills
Save, search, and manage personal notes and knowledge bases in Get笔记 on explicit request.
cli-creator
OfficialScaffold a durable, installable CLI from API docs, OpenAPI specs, SDKs, or curl examples for Codex to run by name.
skill-creator
OfficialDraft, test, and iterate on agent skills with parallel with-skill vs baseline evals.
figma-use
OfficialLoad the Figma Plugin API rules before any use_figma call to avoid hard-to-debug failures.
aspnet-core
OfficialBuild, review, or refactor ASP.NET Core apps using current Microsoft-recommended patterns and app models.
More from paulscode
Browse all skillsA one-file income ledger and milestone registry for solo founders tracking their way to their first $1,000. Stdlib-only Python, no accounts, no SaaS — one JSON file for your data.
A dependency-free Python tool that tracks a numeric goal (like a first revenue milestone) and a date-based budget guard, printing a one-line reminder and exiting with a branchable code for the calling agent or script.