gpt-researcher-keenable
Keenable web search as a GPT Researcher retriever plugin. It works without an API key.
pip install gpt-researcher-keenable
export RETRIEVER=keenable
That's the whole setup. GPT Researcher (0.16.1 or later) finds the plugin via the
gpt_researcher.retrievers entry point, so nothing in GPT Researcher changes. It
combines with built-in retrievers like any other name, e.g.
RETRIEVER=keenable,arxiv.
Configuration
| Variable | Default | Purpose |
|---|---|---|
KEENABLE_API_KEY |
unset | Optional. Without it the public endpoint is used; a key from the Keenable console lifts the rate limits. |
KEENABLE_API_URL |
https://api.keenable.ai |
Override for a proxy or self-hosted gateway. Must be https:// (plain http:// only for localhost). |
Behaviour
- Results come back as
{"title", "href", "body"}withrequires_scraping = True:bodyis a single-line preview capped at 500 characters, and GPT Researcher scrapes each page for its content, the same as with the built-in web retrievers. max_resultsfrom GPT Researcher (MAX_SEARCH_RESULTS_PER_QUERY) is passed to the API, clamped to its 1-50 range.- With
query_domains, the search is restricted to the first domain. - Any network, HTTP or parsing failure, and an invalid
KEENABLE_API_URL, is logged and yields[], so one provider cannot abort a research run.
Development
uv sync
uv run pytest
KEENABLE_LIVE_TESTS=1 uv run pytest -k live # hits the keyless endpoint
License
MIT
Metadata
Release files for gpt-researcher-keenable 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gpt_researcher_keenable-0.1.0.tar.gz | 6.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gpt_researcher_keenable-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.3 kB
Release files / gpt_researcher_keenable-0.1.0.tar.gz
| Download URL | gpt_researcher_keenable-0.1.0.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f566971698c1c2198c4c8c43b55847fa3a16ea2cf43917f3db41cd1596a861fe
|
|
BLAKE2b-256 checksum How to use checksums |
38b5de612c99d80472f5a1de1c739c09e80e50eda22bd7fc378bb9e39f10ad05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / gpt_researcher_keenable-0.1.0-py3-none-any.whl
| Download URL | gpt_researcher_keenable-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
14a5a97c1f89c4586b932aec48373dfffffc24d510310c336a186fe09c49c75b
|
|
BLAKE2b-256 checksum How to use checksums |
a6ca1a3c8a01c1956afdd6e318cb3e540031593215fb4e68212be2bb8de83735
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency log