{"id":"bae9ea87-1ba9-4862-9c5b-a9cb9e625203","slug":"searxng-plugin","kind":"skill","name":"searxng-plugin","summary":"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","owner":"furkankaynak","repoUrl":"https://github.com/furkankaynak/searxng-plugin","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-06-11T05:24:08.000Z","addedAt":"2026-10-22T03:04:01.873Z","logoUrl":"https://avatars.githubusercontent.com/u/1827380?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["search","developer-tools"],"tags":[],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T10:03:05.615Z","sample":false,"url":"https://conduits.dev/tools/searxng-plugin","language":"JavaScript","transports":["stdio"],"install":{"npm":"searxng-plugin"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# searxng-plugin\n\n**Self-hosted, unlimited, private web search for AI coding agents.**\n\nGive Claude Code, Cursor, OpenCode, Codex, and Antigravity a local SearXNG\nsearch engine — zero API keys, zero rate limits, zero third-party tracking.\n\n---\n\n## The problem\n\nEvery major AI coding agent needs web search, but every built-in option has a catch:\n\n| Option | Who sees your queries | Rate limit | Cost | API key needed |\n|---|---|---|---|---|\n| Claude Code WebSearch (built-in) | Anthropic | Plan‑based token budget | $20–200/mo plan | N/A |\n| OpenCode websearch (built-in) | Exa AI cloud | 1 000 req/mo free tier | $7/1k after free | No (free) / Yes (paid) |\n| **Exa Search MCP** | Exa AI cloud | 1 000 req/mo free tier | $7/1k requests | Yes |\n| **Brave Search MCP** | Brave cloud | 5 000 req/mo free credit | $5/1k after credit | Yes |\n| **Tavily MCP** | Tavily / Nebius cloud | 1 000 credits/mo free | $0.008/credit | Yes |\n| **searxng-plugin** | **your own machine** | **unlimited** | **free** | **none** |\n\n---\n\n## How it works\n\n```\n  SearXNG ──→ MCP Server  ──→ searxng-plugin ──→ Your agent\n  (your host)    (@anthropic/     (web-search-local      (Claude Code,\n                  searxng-mcp)     skill + semantik-web    Cursor, OpenCode,\n                                   subagent)               Codex, …)\n```\n\n1. You already have (or set up) a [SearXNG](https://github.com/searxng/searxng) instance — a meta‑search engine that aggregates ~247 sources.\n2. The plugin wires that instance into your AI coding agent via the standard MCP protocol.\n3. The bundled `web-search-local` skill ensures every web search goes through your instance.\n4. The `semantic-web` subagent expands vague queries into 4–7 sharper searches for better results.\n\n---\n\n## What you get\n\n| Artifact | What it does |\n|---|---|\n| `web-search-local` skill | Routes all web searches through your SearXNG instance |\n| `semantic-web` subagent | Context‑aware query expansion for broader, smarter discovery |\n| SearXNG MCP config | Pre‑built MCP configuration for every supported platform |\n\n---\n\n## Quick start (30 seconds)\n\n```bash\n# Install with skills.sh (recommended — works on any MCP agent)\nnpx skills add furkankaynak/searxng-plugin\n```\n\nThat's it. The skill is placed into `.agents/skills/web-search-local/` and your\nagent discovers it automatically.\n\n### Manual install\n\nClone, build, and install for one or all platforms:\n\n```bash\ngit clone https://github.com/furkankaynak/searxng-plugin.git\ncd searxng-plugin\n\n# (Optional) point to your SearXNG instance\nnpm run configure -- --url http://myhost:8888\n\n# Build platform bundles\nnpm run build\n\n# Install for your agent\nnode scripts/install.mjs --platform claude-code\nnode scripts/install.mjs --platform cursor\nnode scripts/install.mjs --platform opencode\nnode scripts/install.mjs --platform codex\nnode scripts/install.mjs --platform antigravity\n\n# Or all at once\nnode scripts/install.mjs --platform all\n```\n\n### Install a specific scope\n\n```bash\n# Global / user-level install (e.g. ~/.claude/)\nnode scripts/install.mjs --platform claude-code --scope global\n\n# Preview what would happen\nnode scripts/install.mjs --platform claude-code --dry-run\n```\n\n---\n\n## Supported platforms\n\n| Platform | Skill | Subagent | MCP | Format |\n|---|---|---|---|---|\n| Claude Code | ✅ | ✅ | `.mcp.json` | Plugin bundle |\n| Cursor | ✅ | ✅ | `mcp.json` | Plugin bundle |\n| OpenAI Codex | ✅ | ✅ (TOML) | `.codex/config.toml` | Plugin bundle |\n| OpenCode | ✅ | ✅ | `opencode.json` | Project layout |\n| Antigravity (Gemini CLI) | ✅ | — | — | Agent Skills |\n| Any MCP‑compatible agent | ✅ | — | `.mcp.json` | Agent Skills |\n\n---\n\n## Configuring the SearXNG URL\n\nYour SearXNG instance might not be at `http://localhost:8888`. Change it with\none of these methods (highest priority first):\n\n```bash\n# 1. CLI flag (single build)\nnpm run build -- --url http://mysearxng:4000\n\n# 2. Environment variable (single build)\nSEARXNG_URL=http://mysearxng:4000 npm run build\n\n# 3. Config file (permanent)\nnpm run configure -- --url http://mysearxng:4000\nnpm run build\n```\n\n---\n\n## Smart merging\n\nWhen you install, shared config files are **merged**, not overwritten:\n\n| File | Behavior |\n|---|---|\n| `.mcp.json`, `mcp.json` | Deep‑merge `mcpServers` — existing servers are preserved |\n| `opencode.json` | Deep‑merge `mcp` key, append to `plugin` array |\n| `config.toml` | Append `[mcp_servers.searxng]` if not already present |\n| Everything else | Normal copy |\n\nUse `--no-merge` to overwrite instead:\n\n```bash\nnode scripts/install.mjs --platform claude-code --no-merge\n```\n\n---\n\n## Why not just use Exa / Brave / Tavily?\n\n| Need | Those services | searxng-plugin |\n|---|---|---|\n| Monthly cost | $5–200+ depending on volume | **$0** |\n| Rate limit | 500–5 000 req/mo free tier | **Unlimited** |\n| Data sovereignty | Your queries go to a third‑party API | **Your machine, your data** |\n| API key | Always required (except OpenCode free) | **None** |\n| Index breadth | Single engine (Brave, Exa, …) | **~247 engines** via SearXNG |\n| Offline capable | No | **Yes** (if SearXNG is on‑prem) |\n\n---\n\n## Project structure\n\n```\nsrc/                              # Canonical source (edit these)\n  skills/web-search-local/        #   SKILL.md\n  agents/                         #   semantic-web.md\n  mcp/                            #   MCP config templates\nscripts/                          # Build, configure, install tools\n  build.mjs                       #   src/ → platform bundles\n  configure.mjs                   #   SearXNG URL configuration\n  install.mjs                     #   Deploy bundles to agent (with merge)\nplugin.config.json                #   Default SearXNG URL\n.agents/skills/web-search-local/  # Universal discovery path (skills.sh)\nclaude-code/                      # Generated platform bundles\ncursor/\ncodex/\nopencode/\nantigravity/\nagent-skills/\n```\n\n---\n\n## Development\n\n```bash\n# Edit sources in src/, then rebuild\nnpm run build\nnode scripts/install.mjs --platform <name> --dry-run\nnode scripts/install.mjs --platform <name>\n```\n\n---\n\n## License\n\nMIT\n"}