Open-source · Go · multi-agent

Research reports
you can audit.

Give Boku a question. A team of agents plans the research, searches in parallel, lets an independent critic reject weak claims, and writes a typeset PDF where every sentence cites its source and every chart traces to evidence.

$go install github.com/riteshsonawane1372/boku/cmd/boku@latest
How it works

Ten roles, one evidence store, a critic with a veto.

This is a replay of a real run, compressed about 30×: 11 agent calls, 72 findings from 77 sources, two follow-up tasks requested by the fact-checker, $7.73 reported by Claude Code. Switch modes to see what changes.

Full mode timings and costs are the recorded values from run 2026-09-23T024958 (--depth quick).
Cost

What a report costs.

Spend is dominated by the research agents reading the web, not by writing. Numbers below are from real runs, as reported by Claude Code (total_cost_usd) and recorded in each run's manifest.json.

Recorded runs, by agent role

Each bar is one report; segments are the cost of each role.

Modes at a glance

Pick per report with a flag. Default is full.

ModeTypical spendWhat you get
Fulldefault$8–31measuredPlanner, up to 6 researchers, fact-check rounds with follow-ups, 15–40 page report.
Short--short≈ $4–6estimate3 researchers, one fact-check round, a compact 3–8 page brief.
Quick--quick$0localEvery agent on your Ollama model with Boku's own web search. No fact-check. A first pass.
Whitepaperboku whitepaper—newDeep research, up to 6 researchers, two follow-up rounds. A 10–20+ page paper with abstract and references. Not yet measured; expect at least full-report cost.
Explainerboku explain—newUp to 4 researchers, one follow-up round. A diagram-led explainer of a topic or a local codebase. Not yet measured.

Short estimate: per-role costs of the --depth quick run above with 3 researchers and one fact-check round. Quick spends no API money; it uses your machine. On a Claude subscription, Claude Code usage counts against your plan rather than being billed at these figures.

Modes

One command. Five ways to run it.

No flag gives you the full report. Add one when you want something faster or cheaper, a whitepaper in research-paper form, or an explainer of a topic or a codebase. Combine with --save-ref to print the source list inside the PDF.

Full report

The default. Built for decisions that need evidence.

  • Planner chooses 1–6 research roles
  • Fact-checker rejects claims, orders follow-ups
  • Cover, contents, charts, diagrams, methodology
$ boku report "How are banks deploying GenAI?"

Short search report

A cited brief when you need the answer, not a book.

  • 3 workstreams, quick depth
  • One fact-check round, no follow-ups
  • Compact layout: no cover, sections flow
$ boku report "Is Postgres 18 AIO worth it?" --short

Quick, on your machine

Every agent runs on a local Ollama model. Zero Claude tokens.

  • Boku searches and fetches pages itself
  • Models may only cite pages Boku fetched
  • No fact-check: treat it as a first pass
$ boku report "GPU sharing on Kubernetes" --quick

Explainer new

Understand how a topic — or your codebase — works.

  • Big picture, key ideas, glossary
  • Architecture and step-by-step process diagrams
  • Given a directory, agents read the repo (read-only) and cite files
$ boku explain ./my-service "auth flow"

Whitepaper new

The most detailed format, laid out like a conference paper.

  • Abstract, keywords, numbered sections 1, 1.1, …
  • Captioned figures and tables, [n] citations, references
  • Deep research; results always carry their conditions
$ boku whitepaper "Sparse attention for long context"
Output

A typeset PDF, and a references file beside it.

Citations in the text are numbers. The sources behind them go to a compact <report>.references.json, cheap to hand to another model or tool. Pass --save-ref to print them in the PDF as well.

Report cover page
Cover
Key findings page
Key findings
Section with table and callout
Table and callout
Chart built from evidence
Chart from evidence

Pages from a real 32-page report, unedited. Open the full PDF.

kubernetes-platform-ai-infrastructure.references.jsonJSON
{"title":"Kubernetes as the Platform for AI Infrastructure",
 "run_id":"2026-09-23T024958-kubernetes-used-ai-infrastructure",
"references":[
{"n":2,"title":"The CNCF Annual Cloud Native Survey: The Infrastructure of AI's Future",
 "publisher":"CNCF","url":"https://www.cncf.io/reports/the-cncf-annual-cloud-native-survey/",
 "published":"2026-01-01","accessed":"2026-09-23","tier":1},
{"n":5,"title":"Gartner Forecasts Worldwide AI-Optimized IaaS Spending to Grow 96% in 2026",
 "publisher":"Gartner", …}
],
"evidence":[
{"id":"F052","claim":"Gartner forecasts worldwide AI-optimised IaaS spending will grow 96% in 2026 to about $42B…",
 "status":"Estimated","as_of":"2026","refs":[5]}
]}
Web interface

Every option, in a browser.

boku ui opens a local web app, embedded in the binary. Start runs with any setting, watch stages, cost and the log live, then browse the plan, evidence and report. It shows runs started from the CLI too.

Boku web interface: mode cards, the settings form and a summary of the run
$boku ui
Bring your own model

Claude Code by default. Anything else with a config file.

Point Boku at Ollama or any OpenAI-compatible endpoint — vLLM, LM Studio, llama.cpp, OpenRouter. Nothing changes unless you pass a config.

  • Boku's own web search (DuckDuckGo or SearXNG) for models without web tools
  • Sources are re-grounded: a model cannot invent a URL
  • Per-token prices in config give you cost tracking and --max-cost
  • A local model fixes style problems so the main model isn't called again
config.yamlboku report "…" --config config.yaml
agents:
  provider: openai            # claude-code | ollama | openai
  endpoint: http://localhost:8000/v1
  model: Qwen/Qwen2.5-72B-Instruct
  api_key_env: OPENROUTER_API_KEY
  price_input_per_mtok: 0.35
  price_output_per_mtok: 0.40

local:                       # small model for --quick and formatting
  model: llama3.1:8b

search:
  engine: duckduckgo          # or searxng
  max_pages: 12
Why trust it

Evidence first, prose second.

Claims keep their sources

Researchers return structured findings. The editor can cite only findings that survived fact-checking; citations are resolved by code.

Freshness is computed

Every finding carries the date it describes. Boku labels it current or historical against your window — the model never decides.

A critic with a veto

An independent fact-checker rejects unsupported claims and sends targeted follow-up research. What it still can't verify is published in a red Not verified box, never as fact.

Charts that trace

A chart is drawn only if every value appears in the cited evidence. Agents supply data, never layout.

Shaped by your question

A comparison opens with its matrix, a decision with the recommendation, a one-pager stays one page. Headings follow the request.

Inspectable and resumable

Every artifact lands in a run directory. Interrupted runs resume where they stopped; re-rendering costs nothing.