Skip to main content
Search provider and content scraper Keenable ships inside LibreChat’s web-search pipeline as both a search provider and a content scraper — the only entry in either category that needs no key. View the change on GitHub LibreChat authenticates three categories for web search: a provider, a scraper, and a reranker. Every other provider and scraper requires an account; rerankers all do. Keenable fills the first two keylessly, and the None reranker choice completes the stack — so web search works on a fresh LibreChat install with no signup for any of the three.
Merged to dev on 2026-08-27, after v0.8.8-rc1 — available now in the librechat-dev Docker images, and in the next tagged release. The backend package @librechat/agents carries the provider since 3.2.58 and the scraper since 3.3.5.

Setup

Pin the keyless stack for every user

In librechat.yaml:
That is the whole setup — no key for any category. An optional KEENABLE_API_KEY in .env lifts the rate limit; KEENABLE_API_URL and KEENABLE_FETCH_URL override the endpoints.

Or let each user pick it

Leave the providers unpinned and every user can save the same keyless combination themselves: in the agent search dialog, choose Keenable as the search provider and the scraper, and None as the reranker. The selection persists without a key.

Mixing categories

Each category is configured independently, so Keenable search with a Firecrawl scraper works, and so does the reverse — another provider’s search with the Keenable scraper:
Set KEENABLE_API_KEY to authenticate — this removes the hourly request cap. Without a key, calls run on the shared public tier at lower rate limits.