Skip to main content

Claude Code harness for disciplined, adversarially-audited deep research with full provenance.

Project description

HYPERRESEARCH

The Most Powerful Deep Research Harness

PyPI version Python 3.11+ License: MIT GitHub stars


Hyperresearch turns Claude Code into a deep research agent. and currently leads the DeepResearch-Bench RACE leaderboard (benchmarked internally). A tier-adaptive 16-step pipeline produces adversarially-audited reports with full source provenance. Every fetched source lands in a persistent, searchable vault that compounds across sessions.

DeepResearch-Bench top-5 — hyperresearch leads the chart ahead of Grep Deep Research, Cellcog Max, nvidia-aiq, Gemini Deep Research, and OpenAI Deep Research

Forward-looking projection from a stratified pilot against the DeepResearch-Bench leaderboard snapshot (https://huggingface.co/spaces/muset-ai/DeepResearch-Bench-Leaderboard). Third party validation is pending.

Install

cd your-project
pip install hyperresearch && hyperresearch install

Then /hyperresearch <anything> in Claude Code.

Python 3.11–3.13. (3.14 not yet supported — use pyenv install 3.13, uv venv -p 3.13, or py -3.13 -m venv .venv.)

Power users: hyperresearch install --global makes /hyperresearch reachable from every Claude Code session anywhere, at the cost of ~15 lines in every session's system reminder. Per-project install (above) keeps unrelated CC sessions clean.


The 16-step research pipeline

The entry skill is a thin router. It bootstraps the canonical research query, then invokes one step skill per pipeline phase via Claude Code's Skill tool. Each step's procedure is loaded fresh into context only when needed defeating context-rot problems that makes long pipelines silently drop steps.

# Step What it does Tiers
1 Decompose Canonical query → atomic items + coverage matrix + tier classification both
2 Width sweep Multi-perspective search plan + parallel fetcher waves (Haiku) both
3 Contradiction graph Pair contradictions across the corpus into ranked clusters full
4 Loci analysis Two parallel loci-analysts → scored loci with source budgets full
5 Depth investigation K parallel depth-investigators → interim notes with committed positions full
6 Cross-locus reconcile Reconcile committed positions → comparisons.md full
7 Source tensions Extract expert disagreements → source-tensions.json full
8 Corpus critic "What source would overturn this?" + targeted gap-fill fetch full
9 Evidence digest Top claims + verbatim quotes → evidence-digest.md full
10 Triple draft Per-angle source curation + 3 parallel draft sub-orchestrators (light: single draft) both
11 Synthesize Plan + outline + spawn synthesizer subagent → final_report.md full
12 Critics 4 adversarial critics in parallel → findings JSONs full
13 Gap-fetch Targeted fetch wave for critic-identified vault gaps full
14 Patcher Surgical Edit hunks applied to draft (tool-locked Read+Edit) full
15 Polish Hygiene + filler pass (tool-locked Read+Edit subagent) both
16 Readability audit Recommender writes JSON suggestions; orchestrator selectively applies both

Depth Modes

In your prompt, you can request one of two tiers and the rest of the pipeline scales accordingly. Full mode is default.

Tier Steps that run Typical time
light bounded factual queries, surveys, comparisons — 1 → 2 → 10 → 15 → 16 ~30–40 min
full deep argumentative analysis with adversarial review — all 16 steps ~1.5–2.5 hours

The two load-bearing principles

  1. Patch, never regenerate. After step 11 produces the synthesized report (or step 10 for light tier), the only modifications are surgical Edit hunks. The patcher and polish auditor are tool-locked to [Read, Edit] at the Claude Code allowlist level so they physically cannot Write a new draft. Per-hunk caps make "just rewrite it" mechanically impossible. Critic findings that don't fit a small hunk escalate as structural issues.

  2. Canonical research query is gospel. The verbatim user prompt is persisted to research/query-<vault_tag>.md once and re-read by every subsequent step and every spawned subagent. Wrapper requirements (save paths, citation format, terminal sections) are a separate contract.

Subagent roster

Agent Model Role
hyperresearch-fetcher Sonnet URL fetching via crawl4ai; runs 8–12 in parallel per wave
hyperresearch-source-analyst Sonnet (1M ctx) End-to-end digest of any single long source >5000 words
hyperresearch-loci-analyst Sonnet Reads the width corpus, returns 1–8 depth loci with rationale
hyperresearch-depth-investigator Sonnet Investigates one locus, writes one interim note with a committed position
hyperresearch-corpus-critic Sonnet "What source would overturn the current direction?" pre-draft gap analysis
hyperresearch-draft-orchestrator Opus One per draft angle; reads its curated source list and writes one draft
hyperresearch-synthesizer Opus Reads all 3 drafts, writes the final report (two-pass write, Read+Write locked)
hyperresearch-dialectic-critic Opus Counter-evidence the draft missed
hyperresearch-depth-critic Opus Shallow spots interim notes could fill
hyperresearch-width-critic Opus Topical corners the corpus supports but the draft ignores
hyperresearch-instruction-critic Opus Structural mismatches against the prompt's atomic items
hyperresearch-patcher Opus Tool-locked [Read, Edit]. Applies critic findings as surgical Edit hunks
hyperresearch-polish-auditor Opus Tool-locked [Read, Edit]. Cuts filler, strips hygiene leaks
hyperresearch-readability-recommender Opus Writes JSON suggestions for paragraph rhythm and list/table conversion

The vault: persistent, searchable, compounding

Hyperresearch is not a one-shot report generator like most other Deep research harnesses. Every fetched source lands in a SQLite-indexed vault that every future research session can reuse.

hyperresearch search "ion-trap gate fidelity" -j           # Full-text search
hyperresearch search "quantum" --include-body -j           # Full-body search
hyperresearch note show <id1> <id2> <id3> -j               # Batch-read notes
hyperresearch graph hubs -j                                # Most-connected notes
hyperresearch graph backlinks <id> -j                      # Reverse links
hyperresearch lint -j                                      # Health check (broken links, missing tags)

Markdown is truth, SQLite is cache. Notes live as plain markdown with YAML frontmatter in research/notes/. The SQLite index is fully rebuildable. Delete it and hyperresearch sync reconstructs it from the markdown. The vault is inspectable in any editor, version-controllable in git, and readable without the tool installed.

PDFs fetch directly. hyperresearch fetch auto-detects PDF URLs (arXiv, NBER, SSRN, direct .pdf links) and extracts full text via pymupdf. Raw PDFs land in research/raw/<note-id>.pdf and the note's raw_file: frontmatter links back.

Provenance breadcrumbs. Every fetched source carries a --suggested-by link back to whatever surfaced it. The chain forms a rooted tree from seed fetches; the provenance lint rule catches disconnected components.


What's structurally enforced

  • Verbatim prompt as gospelscaffold-prompt lint blocks if the scaffold doesn't open with the user's exact prompt
  • Locus coverage — every step 4 locus must have a step 5 interim note; missing interims flag as errors
  • Patch-only modification — steps 14, 15, 16 are tool-locked to [Read, Edit]. They cannot regenerate the draft
  • Critical findings never silently skippatch-surgery lint surfaces any critical finding the patcher couldn't apply
  • Schema integritytier, content_type, and type are SQLite CHECK-constrained vocabularies; corrupted frontmatter cannot poison the index
  • Hygiene leaks caught on the way out — scaffold sections, YAML frontmatter, and prompt echoes are stripped by step 15 before ship

Authenticated crawling

Fetch from LinkedIn, Twitter, paywalled sites or anything you can log into:

hyperresearch setup       # Browser opens. Log into your sites. Done.

LinkedIn, Twitter, Facebook, Instagram, and TikTok automatically use a visible browser to avoid session kills.


Academic APIs before web search

For any topic with a research literature, hit academic APIs BEFORE web search. They return citation-ranked canonical papers; web search returns derivative commentary.

  • Semantic Scholarhttps://api.semanticscholar.org/graph/v1/paper/search
  • arXivhttps://export.arxiv.org/api/query
  • OpenAlexhttps://api.openalex.org/works
  • PubMedhttps://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi

After the academic sweep, run web searches for context, news, non-academic angles, and at least one adversarial search ("criticism of X", "limitations of X").


What it doesn't do

  • It doesn't replace your judgment on which sources matter. The agent picks, you steer.
  • It can't fetch what's behind a paywall you haven't logged into.
  • It runs on Anthropic models Opus + Sonnet + Haiku via the subagent roster. Costs scale with tier and corpus size. If anyone wants to port this to Codex, put up a PR!
  • The lint gate catches structural failures (missing scaffold, broken provenance, unresolved CRITICALs). It cannot guarantee factual accuracy, that's still your call.

Requirements


License

MIT


Star History

Star History Chart

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

hyperresearch-0.8.4.tar.gz (370.3 kB view details)

Uploaded Source

Built Distribution

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

hyperresearch-0.8.4-py3-none-any.whl (260.3 kB view details)

Uploaded Python 3

File details

Details for the file hyperresearch-0.8.4.tar.gz.

File metadata

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

File hashes

Hashes for hyperresearch-0.8.4.tar.gz
Algorithm Hash digest
SHA256 ea9219390f20c792f3a7941bf6a19b7b8324aa64772b748132157e10591437b8
MD5 907349fa8a0d4e65b5520ba03246a0d7
BLAKE2b-256 29a339cf5bdc56c6df1636ba101e44664f606209d379b363517cc2d0c8b08d75

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyperresearch-0.8.4.tar.gz:

Publisher: publish.yml on jordan-gibbs/hyperresearch

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

File details

Details for the file hyperresearch-0.8.4-py3-none-any.whl.

File metadata

  • Download URL: hyperresearch-0.8.4-py3-none-any.whl
  • Upload date:
  • Size: 260.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hyperresearch-0.8.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c6732631e7a5ec2c8797c5fb76ae0ae03d9743266c12c9047950513b99e7c857
MD5 84b759068ff37dda6ccc00c684548968
BLAKE2b-256 c627b08738862e4ea4cda8266b58149204700435624e608dd4bddd67125bcb2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyperresearch-0.8.4-py3-none-any.whl:

Publisher: publish.yml on jordan-gibbs/hyperresearch

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