gpt-researcher-cloro
cloro retrievers for GPT Researcher. The package adds two retrievers:
RETRIEVER |
cloro endpoint | Returns | Credits per search |
|---|---|---|---|
cloro |
POST /v1/monitor/google |
Google organic results (about 10 links per search) | 5 |
cloro_aimode |
POST /v1/monitor/aimode |
The Google AI Mode answer, then the sources it cites | 6 |
GPT Researcher (0.16.1 or later) finds the retrievers through the gpt_researcher.retrievers
entry point. You do not change GPT Researcher.
Setup
- Get an API key at dashboard.cloro.dev. The free plan includes 500 credits each month.
- Install the package in the same Python environment as GPT Researcher:
pip install gpt-researcher-cloro
export CLORO_API_KEY="your-cloro-key"
export RETRIEVER=cloro # or cloro_aimode, or cloro,cloro_aimode
You can combine the retrievers with built-in retrievers, for example RETRIEVER=cloro_aimode,arxiv.
Configuration
| Variable | Default | Purpose |
|---|---|---|
CLORO_API_KEY |
unset | Required. Sent as Authorization: Bearer <key>. |
CLORO_COUNTRY |
US |
ISO 3166-1 alpha-2 country code for the Google or AI Mode location. |
Behaviour
cloro:
- Each result is
{"title", "href", "body"}.bodyis the Google snippet, cut to 500 characters. The retriever setsrequires_scraping = True, so GPT Researcher scrapes each page. - One search returns one page of Google results.
MAX_SEARCH_RESULTS_PER_QUERYabove 10 gives no more results. - With
query_domains, the query getssite:filters joined withOR. - Results with an empty link or a Google redirect (
google.com/goto) link are skipped.
cloro_aimode:
- The first result is the AI Mode answer (Markdown) under
raw_content. GPT Researcher uses this text without a scrape. Itshrefis the Google AI Mode URL for the query (https://www.google.com/search?udm=50&q=...), so the report cites it as Google AI Mode. - The next results are the sources that the answer cites. They have no
raw_content, so GPT Researcher scrapes them. The retriever setsrequires_scraping = Falsefor this reason. max_resultscounts the answer and the sources together.query_domainsis accepted but not applied.- An AI Mode answer can take 15 seconds or more. The request timeout is 180 seconds.
Both retrievers:
- Each search is one cloro request. With the default
MAX_ITERATIONS=3, aresearch_reportmakes 5 searches per retriever (1 initial search, 3 sub-queries and the original query). That is 25 credits withcloroand 30 credits withcloro_aimode. Other report types can make more searches. - A missing key, a network error, an HTTP error (for example
INSUFFICIENT_CREDITS) or a response that cannot be read is logged and gives[]. One failed provider does not stop a research run.
Development
uv sync
uv run pytest
uv run ruff check .
uv build
The tests replace requests.post with a stub and do not call the cloro API.
License
MIT
Metadata
Release files for gpt-researcher-cloro 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 | Provenance | Actions |
|---|---|---|---|---|
| gpt_researcher_cloro-0.1.0.tar.gz | 9.9 kB | With provenance | Details for gpt_researcher_cloro-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gpt_researcher_cloro-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for gpt_researcher_cloro-0.1.0-py3-none-any.whl |
Total release size: 16.3 kB
Release files / gpt_researcher_cloro-0.1.0.tar.gz
| Download URL | gpt_researcher_cloro-0.1.0.tar.gz |
|---|---|
| Size | 9.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bcb7a1dd16774275eb104184bebf5795b3e8d3cf97d89bf64be6667d4262fdcd
|
|
BLAKE2b-256 checksum How to use checksums |
a1f93f45fec5e5649cb41d23d76459574cc9f21ff538853667b65e8458d46334
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 6, 2026.
Transparency logRelease files / gpt_researcher_cloro-0.1.0-py3-none-any.whl
| Download URL | gpt_researcher_cloro-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
09662b17476574abf83262289ccae305823c3d2af9d875d0d4960b60df9a051a
|
|
BLAKE2b-256 checksum How to use checksums |
e29b80568f0d957e5be5e47a240621f8ec89ac7a4022d3432d0332c1a0978dd0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 6, 2026.
Transparency logSecurity for gpt-researcher-cloro 0.1.0
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for gpt_researcher_cloro-0.1.0.tar.gz
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 Nov 6, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.