pi-searxng-suite
SearxNG-based web search with category filtering and multi-format URL extraction for pi.
Package details
Install pi-searxng-suite from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-searxng-suite- Package
pi-searxng-suite- Version
0.2.3- Published
- May 17, 2026
- Downloads
- 370/mo · 370/wk
- Author
- blazer2k
- License
- MIT
- Types
- extension
- Size
- 416.2 KB
- Dependencies
- 3 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
],
"image": "https://raw.githubusercontent.com/blazer2k/pi-searxng-suite/main/images/bg.jpg"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-searxng-suite
SearxNG-based web search with category filtering and multi-format URL extraction for pi.
Current version: 0.2.3 · Changelog
Overview
This extension provides two LLM-callable tools:
web_search: Search the web via your SearxNG instance with configurable result limits, timeouts, and SafeSearch.web_extract: Extract content from any URL, supporting multiple formats:
| Format | Output |
|---|---|
| HTML | Denoised, converted to Markdown with metadata (title, author, date, description) |
| Plain text | Raw text with source info |
| Text extracted per page with headers and separators (text-native PDFs only, no OCR) | |
| Images | Attached with metadata (format, size) |

Requirements
- Node.js 20+ (extensions run via jiti)
- A running SearxNG instance (local or remote)
Installation
pi install npm:pi-searxng-suite
Or install locally for development:
git clone https://github.com/blazer2k/pi-searxng-suite.git
cd pi-searxng-suite
bun install
pi -e ./index.ts
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
SEARXNG_URL |
http://localhost:8888 |
Base URL of your SearxNG instance |
SEARXNG_API_KEY |
(none) | Bearer token for authenticated instances |
These must be available to the process running pi – set them in your shell profile, systemd service, or however you launch pi.
Runtime Settings
Run /search-config in pi to adjust settings at runtime:
| Setting | Options | Description |
|---|---|---|
| Results limit | 1, 5, 10, 15, 20 | Maximum results per search |
| LLM can override limit | false, true | Allow the LLM to request fewer results per search |
| Timeout | 5s, 10s, 15s, 30s | Request timeout |
| SafeSearch | 0 (off), 1 (moderate), 2 (strict) | Filter explicit content |
| LLM can pick category | false, true | Allow the LLM to choose a search category |
| Allow private URLs | false, true | Allow requests to localhost and private IP ranges (web_extract only) |
| Verbose | false, true | Show full results instead of compact summary |
Settings persist to ~/.pi/agent/pi-searxng-suite.json.
Note: Changes to LLM can override limit and LLM can pick category require
/reloadto take effect, as they alter the tool schema presented to the LLM. Other settings (limit, timeout, SafeSearch, etc.) apply immediately.

Search Categories
When LLM can pick category is enabled, the LLM can target searches to specific SearxNG categories:
| Category | Use case |
|---|---|
general |
Default – searches all enabled engines |
images |
Image search |
videos |
Video search |
news |
News articles |
it |
IT and programming |
science |
Scientific papers and articles |
files |
File downloads |
social media |
Social media posts |
The LLM receives the category list in the tool description and picks the best match for each query.
Security
- Private IP ranges (localhost, 10.x, 127.x, 192.168.x, 172.16–31.x) are blocked by default for
web_extract. - Content size limits prevent oversized downloads (2 MB HTML, 1 MB text, 50 MB PDF/images).
- All search and extract results are flagged as untrusted content in the LLM context.
License
MIT – see LICENSE
