Skip to main content

LLM plugin: SearXNG search tool returning LLM-friendly markdown output

Project description

llm-tools-searxng-md

An llm plugin that exposes a searxng_search_md tool backed by a self-hosted SearXNG instance.

Output

Returns search results as a numbered markdown list. Each entry has the page title, URL, and snippet from the SearXNG result. The format is directly consumable by an LLM without further parsing.

The URL is read from llm keys (key alias searxng_url) and falls back to the SEARXNG_URL environment variable. The plugin defaults to POST for broad compatibility with SearXNG instances.

Installation

llm install llm-tools-searxng-md

Or in editable mode from source:

llm install -e /path/to/llm-tools-searxng-md

Configuration

Recommended: llm keys

llm keys set searxng_url
# paste your SearXNG instance URL when prompted

Environment variable

export SEARXNG_URL=https://your-searxng.example.com

The URL is resolved in order: llm keys set searxng_urlSEARXNG_URL env var. One of these is required — there is no default.

The endpoint used is $SEARXNG_URL/search with format=json — your instance must have the JSON output format enabled in its settings.

HTTP method

By default the plugin uses POST (better compatibility with most SearXNG instances). To force GET:

export SEARXNG_METHOD=GET

Public SearXNG instances

If you don't run your own instance, several public ones are available. Check the SearXNG instance list for uptime and privacy policies before using one. A few commonly cited options:

  • https://paulgo.io
  • https://search.brave4u.com
  • https://searx.be

Note: public instances vary in uptime and may rate-limit or restrict the JSON API. Check each instance's settings to confirm JSON output format is enabled.

Usage

After installing, the tool is automatically available to any model that supports tool calling:

llm prompt -T searxng_search_md "what is searxng"

Specify a model explicitly if your default does not support tools:

llm prompt -m gpt-4o -T searxng_search_md "latest news on llm tool plugins"

Verify the tool is registered:

llm tools
# should list: searxng_search_md

Tool signature

def searxng_search_md(query: str, max_results: int = 8) -> str

Returns the top max_results results as a numbered markdown list with title, URL, and snippet for each result.

Running tests

pip install -e '.[test]'
pytest tests/

Publishing to PyPI

Build and publish with uv:

uv build
uv publish

Or with the standard toolchain:

pip install build twine
python -m build
twine upload dist/*

Bump version in pyproject.toml before each release.

Related

  • SearXNG — the self-hosted metasearch engine this plugin connects to
  • llm — the CLI and Python library this plugin extends

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llm_tools_searxng_md-0.2.2.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llm_tools_searxng_md-0.2.2-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file llm_tools_searxng_md-0.2.2.tar.gz.

File metadata

  • Download URL: llm_tools_searxng_md-0.2.2.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llm_tools_searxng_md-0.2.2.tar.gz
Algorithm Hash digest
SHA256 3fa9d0017f38dfd9a8f32a56f6a75a2683bbaf19d5d7cff1e2f32d2b38c9b532
MD5 1b2c6ff0b16ea763ecb16522ed7d5dc7
BLAKE2b-256 aa95b57349ec1905a2952b415eea5361fae2422fcd984c91001d11c82e0fe20f

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_tools_searxng_md-0.2.2.tar.gz:

Publisher: publish.yml on stochastic-sisyphus/llm-tools-searxng-md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_tools_searxng_md-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_tools_searxng_md-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 800459ccba6c8514ae311c60f93e2f4d938189415d353e651f080b6dad0ada2f
MD5 b878d59e67f07ea7b7ea78a1d973200a
BLAKE2b-256 d7080558f7290dc3c4b4dd115b6b035384a150d8dc86ea71bdfdd873cdc6de12

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_tools_searxng_md-0.2.2-py3-none-any.whl:

Publisher: publish.yml on stochastic-sisyphus/llm-tools-searxng-md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page