skill
searxng-plugin
Self-hosted SearXNG plugin for AI coding agents — zero API keys, zero rate limits, zero third-party tracking. Gives Claude Code, Cursor, OpenCode, Codex and Antigravity Exa-like semantic web search th
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/furkankaynak/searxng-plugin itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 23, 2026searxng-plugin
Self-hosted, unlimited, private web search for AI coding agents.
Give Claude Code, Cursor, OpenCode, Codex, and Antigravity a local SearXNG search engine — zero API keys, zero rate limits, zero third-party tracking.
The problem
Every major AI coding agent needs web search, but every built-in option has a catch:
| Option | Who sees your queries | Rate limit | Cost | API key needed |
|---|---|---|---|---|
| Claude Code WebSearch (built-in) | Anthropic | Plan‑based token budget | $20–200/mo plan | N/A |
| OpenCode websearch (built-in) | Exa AI cloud | 1 000 req/mo free tier | $7/1k after free | No (free) / Yes (paid) |
| Exa Search MCP | Exa AI cloud | 1 000 req/mo free tier | $7/1k requests | Yes |
| Brave Search MCP | Brave cloud | 5 000 req/mo free credit | $5/1k after credit | Yes |
| Tavily MCP | Tavily / Nebius cloud | 1 000 credits/mo free | $0.008/credit | Yes |
| searxng-plugin | your own machine | unlimited | free | none |
How it works
SearXNG ──→ MCP Server ──→ searxng-plugin ──→ Your agent
(your host) (@anthropic/ (web-search-local (Claude Code,
searxng-mcp) skill + semantik-web Cursor, OpenCode,
subagent) Codex, …)
- You already have (or set up) a SearXNG instance — a meta‑search engine that aggregates ~247 sources.
- The plugin wires that instance into your AI coding agent via the standard MCP protocol.
- The bundled
web-search-localskill ensures every web search goes through your instance. - The
semantic-websubagent expands vague queries into 4–7 sharper searches for better results.
What you get
| Artifact | What it does |
|---|---|
web-search-local skill | Routes all web searches through your SearXNG instance |
semantic-web subagent | Context‑aware query expansion for broader, smarter discovery |
| SearXNG MCP config | Pre‑built MCP configuration for every supported platform |
Quick start (30 seconds)
# Install with skills.sh (recommended — works on any MCP agent)
npx skills add furkankaynak/searxng-plugin
That's it. The skill is placed into .agents/skills/web-search-local/ and your
agent discovers it automatically.
Manual install
Clone, build, and install for one or all platforms:
git clone https://github.com/furkankaynak/searxng-plugin.git
cd searxng-plugin
# (Optional) point to your SearXNG instance
npm run configure -- --url http://myhost:8888
# Build platform bundles
npm run build
# Install for your agent
node scripts/install.mjs --platform claude-code
node scripts/install.mjs --platform cursor
node scripts/install.mjs --platform opencode
node scripts/install.mjs --platform codex
node scripts/install.mjs --platform antigravity
# Or all at once
node scripts/install.mjs --platform all
Install a specific scope
# Global / user-level install (e.g. ~/.claude/)
node scripts/install.mjs --platform claude-code --scope global
# Preview what would happen
node scripts/install.mjs --platform claude-code --dry-run
Supported platforms
| Platform | Skill | Subagent | MCP | Format |
|---|---|---|---|---|
| Claude Code | ✅ | ✅ | .mcp.json | Plugin bundle |
| Cursor | ✅ | ✅ | mcp.json | Plugin bundle |
| OpenAI Codex | ✅ | ✅ (TOML) | .codex/config.toml | Plugin bundle |
| OpenCode | ✅ | ✅ | opencode.json | Project layout |
| Antigravity (Gemini CLI) | ✅ | — | — | Agent Skills |
| Any MCP‑compatible agent | ✅ | — | .mcp.json | Agent Skills |
Configuring the SearXNG URL
Your SearXNG instance might not be at http://localhost:8888. Change it with
one of these methods (highest priority first):
# 1. CLI flag (single build)
npm run build -- --url http://mysearxng:4000
# 2. Environment variable (single build)
SEARXNG_URL=http://mysearxng:4000 npm run build
# 3. Config file (permanent)
npm run configure -- --url http://mysearxng:4000
npm run build
Smart merging
When you install, shared config files are merged, not overwritten:
| File | Behavior |
|---|---|
.mcp.json, mcp.json | Deep‑merge mcpServers — existing servers are preserved |
opencode.json | Deep‑merge mcp key, append to plugin array |
config.toml | Append [mcp_servers.searxng] if not already present |
| Everything else | Normal copy |
Use --no-merge to overwrite instead:
node scripts/install.mjs --platform claude-code --no-merge
Why not just use Exa / Brave / Tavily?
| Need | Those services | searxng-plugin |
|---|---|---|
| Monthly cost | $5–200+ depending on volume | $0 |
| Rate limit | 500–5 000 req/mo free tier | Unlimited |
| Data sovereignty | Your queries go to a third‑party API | Your machine, your data |
| API key | Always required (except OpenCode free) | None |
| Index breadth | Single engine (Brave, Exa, …) | ~247 engines via SearXNG |
| Offline capable | No | Yes (if SearXNG is on‑prem) |
Project structure
src/ # Canonical source (edit these)
skills/web-search-local/ # SKILL.md
agents/ # semantic-web.md
mcp/ # MCP config templates
scripts/ # Build, configure, install tools
build.mjs # src/ → platform bundles
configure.mjs # SearXNG URL configuration
install.mjs # Deploy bundles to agent (with merge)
plugin.config.json # Default SearXNG URL
.agents/skills/web-search-local/ # Universal discovery path (skills.sh)
claude-code/ # Generated platform bundles
cursor/
codex/
opencode/
antigravity/
agent-skills/
Development
# Edit sources in src/, then rebuild
npm run build
node scripts/install.mjs --platform <name> --dry-run
node scripts/install.mjs --platform <name>
License
MIT