Inspiration
I forgot to renew my Perplexity subscription. Instead of renewing, I asked a stubborn question: every AI search provider sees a different slice of the web and gives a confident, partial answer — what if I asked all of them at once and merged the results? researchkit is that experiment grown into a tool. It turned out the merged report beats any single provider I was paying for: more sources, disagreements surfaced instead of smoothed over, and every claim carries a link I can check.
What it does
One command fans a research topic out to up to 12 AI search providers in parallel — OpenAI, Gemini, Grok, Perplexity, Tavily, Claude, GitHub, GLM, Kimi, Brave, OpenAlex, Exa — then synthesizes one citation-backed markdown report: per-provider findings, a consolidated analysis with consensus and
dissent, and the source list. --materials archives every cited page as frontmattered markdown. A doctor command preflights keys, CLI logins, and pinned model ids before any spend.
There is also a mode I did not plan for: subscription-only research. If you are logged into Codex, Claude Code, Antigravity, Grok CLI, or Kimi Code, researchkit runs entirely on those subscriptions — zero API keys. advise asks every harness the same question side by side, council runs a lensed deliberation with a boss synthesis, explore does full fan-out research on CLI harnesses alone.
Every finished run is a versioned "research pack" that two sibling tools consume: brainkit grows packs into a portable cited memory, [skillskit (https://github.com/Paldom/skillskit) turns a pack into an installable agent skill.
How we built it
Codex was in the loop twice — as a builder and as a product feature.
As a builder: the project was developed agent-first (AGENTS.md is the source of truth; CLAUDE.md just points at it), and the load-bearing design decisions — provider contracts, citation integrity, rankings — went through a cross-vendor review with Codex running GPT-5.6 Sol at ultra reasoning on the panel. The advise/advise-max commands researchkit ships are the same mechanism I used to build it: the Kimi provider design, the citation-integrity hardening, and the README itself were all reviewed by GPT-5.6 before merge. That panel caught a real merge-blocker: a pipeline notice I had placed inside the untrusted data block, where injected web content could have forged it.
As a feature: codex: model specs route research through codex exec with web search — GPT-5.6 Sol is the default OpenAI-slot model, the meta-summarizer, and the topic-improver in the subscription-only preset. The stack: Python 3.11 (uv, mypy strict, 374 tests), FastAPI + React for the web UI, an MCP server so any agent can call research(topic) as a tool.
Challenges we ran into
Citation integrity is the product, and it fights you. Documented citation-hallucination rates across providers plus link rot mean you cannot trust the generator to cite itself — so providers that return zero verifiable sources get flagged in a trusted prompt channel instead. Harness model ids also drift under you: three breakages in one week (grok-build deleted, Antigravity switched to display names, an effort tier removed). That pain became the doctor command.
Also i had to research a lot about if citations are overlapping or not. After 100+ reseraches, stats shows that only
What we learned
Provider disagreement is signal, not noise — the consolidated report explicitly separates consensus from dissent, and that section is consistently the most useful part. And a panel of rival models reviewing each other's vendor integrations (Codex reviewing the Kimi provider, Claude reviewing the Codex path) catches bugs a single-model loop misses.
What's next
Native structured citations from every provider API, a report-quality eval suite with citation-precision metrics, and deeper pack integration with brainkit and skillskit.
Built With
- brave-search
- codex
- exa
- fastapi
- gemini
- github-api
- gpt-5.6
- grok
- mcp
- moonshot-kimi
- mypy
- openai
- openalex
- perplexity
- python
- react
- tavily
- typescript
- uv
- vite
Log in or sign up for Devpost to join the conversation.