Dethrottled
Dethrottled gives agents one interface for web discovery, source reading and browser interaction. It returns traceable evidence and concrete continuation steps, rather than writing an answer on the agent's behalf.
The default search and reading stack is self-hosted and keyless. There are no purchased search quotas or required model APIs. Public websites can still block requests, and local queues, timeouts and storage limits apply. Optional metered discovery providers are available only when an operator configures keys and a caller explicitly selects them.
What agents can do
- Discover sources through web, news and academic search, or a bounded site crawl.
- Read pages, documents, tables, archives, captions and direct media files.
- Continue retained documents by question, text offset, PDF page or table row.
- Inspect source structure and retained source pixels where available.
- Operate a headed browser: navigate, use controls, inspect frames and popups, read application responses, collect downloads and restore checkpoints. Navigation recovery also applies when the reading ladder reaches the browser.
- Assemble research evidence with source references and explicit coverage gaps.
Recovery escalates from direct HTTP through TLS, rendering and the headed browser when appropriate. Challenges and script-only shells can trigger browser recovery automatically. A failed or partial read remains visible in the result; HTTP 200 and extracted text alone do not establish answer accuracy.
Run locally
docker compose up -d --build
curl -fsS http://127.0.0.1:8787/health
curl -fsS http://127.0.0.1:8787/v2/capabilities
Base Compose runs the API, headed browser worker, SearXNG, Crawl4AI and MSG/XLSB reader. The API
binds to 127.0.0.1:8787 and has no caller authentication. Use the optional
public adapters and an authenticated TLS deployment for
remote clients. Speech and PDF layout have optional local
workers; see configuration.
curl -sS http://127.0.0.1:8787/fetch \
-H 'Content-Type: application/json' \
-d '{"urls":["https://docs.python.org/3/library/sqlite3.html"],"focus":"in-memory database"}'
Ordinary reads run an observed-gap recovery loop: acquire, inspect, select a justified publisher or browser strategy, then reassess. The loop can discover primary representations, scroll lazy content, open standard details and read observed primary JSON responses. It preserves partial evidence and records why recovery stopped. Optional GPU setup is described in the same guide.
An agent should inspect quality, warnings, read_plan, source_partial, truncated,
document_id and workflow.next_actions. The agent guide
explains the workflow and what an MCP client must forward to its model.
Coverage limits
allow up to 50 search results, 30 research sources and million-character reads.
Documentation
Start at the documentation home. The 1.0 release gates describe measured capabilities and limits.
| Page | Use it for |
|---|---|
| Agent integration | Autonomous workflow, tool selection and client contracts |
| Reading and evidence | Formats, OCR, tables, media, citations and resumable jobs |
| HTTP API | Routes, examples, response semantics and generated request reference |
| Browser operation | Actions, sessions, scope, checkpoints, screenshots and downloads |
| Configuration | Base stack, optional workers, models and workload controls |
| Operations | Build, verification, backups, updates and remote deployment |
| Architecture | Search/read/research paths, corpus models and service boundaries |
| Evidence and limits | Dated measurements, raw results and unresolved failures |
Deployment and limits
Default Compose also starts the MSG/XLSB reader. Speech/layout are selected with
--profile full (or individually with media/layout) and connect automatically.
No .env file, worker URL or GPU is required for the default stack.
The API image includes document libraries, Tesseract and MiniLM/E5 corpus models. Mutable evidence, jobs, cache and corpus live in a named data volume; browser checkpoints use a separate volume. Source installs require Python 3.10+ and explicitly installed optional dependencies and services.
Dethrottled does not guarantee access to every website or file. OCR and speech can be wrong, scans and charts may require visual inspection, and interactive challenges may remain unresolved. The 1.0 evaluation recovered predefined Reddit thread facts and exercised native controls in three fresh sessions each on software and GPU rendering. Crunchbase and G2 remained blocked; CarGurus yielded no usable text. See the recorded evidence for methods and limits. Neural live-web reranking remains disabled.
The fetch ladder does not consult robots.txt. The raw API can access trusted
LAN targets; public adapters enforce a narrower policy, which is not a substitute
for deployment-level network isolation.
This checkout is 1.1.1. Check /health and /v2/capabilities
on the installation you use; a repository branch or remote plugin may differ
from the deployed service. Historical reports describe their recorded versions.
License
Metadata
Release files for dethrottled 1.1.1
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 |
|---|---|---|---|---|
| dethrottled-1.1.1.tar.gz | 244.0 kB | With provenance | Details for dethrottled-1.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dethrottled-1.1.1-py3-none-any.whl | Python 3 | none | any | Details for dethrottled-1.1.1-py3-none-any.whl |
Total release size: 408.6 kB
Release files / dethrottled-1.1.1.tar.gz
| Download URL | dethrottled-1.1.1.tar.gz |
|---|---|
| Size | 244.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e31a33f3ffc2f14f051748942d57632bc1cb884c7c0497efd929f86da485f3e5
|
|
BLAKE2b-256 checksum How to use checksums |
1b950788a01c998572ccbbb54de09ebc91bfb3989f58033cc1268e60e99f901e
|
| 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 2, 2026.
Transparency logRelease files / dethrottled-1.1.1-py3-none-any.whl
| Download URL | dethrottled-1.1.1-py3-none-any.whl |
|---|---|
| Size | 164.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
464efb89e816b1e6752ce0862a7b4f9624c507a2864499226141b756937a31a4
|
|
BLAKE2b-256 checksum How to use checksums |
ffe05774ffb4b075b482686052e6eb670e0f7263c19946bd0fa37f04dc5ae0e2
|
| 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 2, 2026.
Transparency logSecurity for dethrottled 1.1.1
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
All 2 files in this release have been uploaded with provenance metadata.
Attestation for dethrottled-1.1.1.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 2, 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.