Start from the citation problem in front of you
Check one claim, right here
A worked example, running entirely in your browser. Nothing is sent anywhere. You rate first; the AI's opinion stays hidden until you do, exactly as the tool works.
“Low-dose CT screening reduces lung-cancer mortality in adults over 50 with any smoking history.”1
National Lung Screening Trial — NEJM 2011. Three annual low-dose CT scans vs chest X-ray gave a 20% relative reduction in lung-cancer mortality. Enrolled adults aged 55–74 with ≥30 pack-years, current smokers or those who quit within 15 years (n = 53,454).
Does the cited paper support this claim, as written?
The AI's second opinion is hidden until you rate.
You rated:
Partially supports. The paper does show low-dose CT cuts lung-cancer mortality, but for a narrower population than the claim states. NLST enrolled 55–74-year-olds with ≥30 pack-years, not “over 50 with any smoking history.” As written, the claim overstates the evidence: the population (the P in PICO) doesn't match.
This is the catch keyword-matching misses: the paper is about the topic, yet it doesn't support the claim as worded.
Your decision, you're the decider:
Wording tightened to match the source
As written“…in adults over 50 with any smoking history.”
Revised“…in adults aged 55–74 with ≥30 pack-years, the population studied in the cited trial.”
A sound finding behind an overstated claim usually isn't rejected. You tighten the wording to match the evidence, then accept. CiteVahti records the revision and the accept as one decision-gated, undoable write.
This claim is now
That was one claim. CiteVahti runs this across your whole manuscript: real PubMed candidates instead of a baked example, an undoable Zotero write, and a hash-chained audit trail you can cite in a methods section.
How it works — the manuscript as a test suite
- Claim detected. Each manuscript claim becomes a test case.
- Evidence found. Staged from PubMed, OpenAlex, Semantic Scholar, and Crossref — candidates, not citations; often abstracts, which are leads to confirm in the full text, not proof.
- Support, not just topic. Does the paper actually support this claim? (PICO match)
- You decide, blinded. The AI's opinion stays hidden until you rate. The human is the decider.
- Guarded write. Preview → confirm → write to Zotero, with undo. No silent writes; dedupe fails closed.
- Integrity report. Every claim, its state, and a hash-chained audit trail.
Not a reference manager
Zotero and EndNote store and format your references. CiteVahti does the part they don't: it checks whether the paper you cited actually supports the sentence you attached it to, claim by claim, and records who decided what. It reads your Zotero library and writes back to it; it doesn't replace it.
- Your reference manager answers "is this reference stored and formatted right?"
- CiteVahti answers "does this source support this claim, as written?", the question a reviewer asks.
Doing a systematic review? CiteVahti checks the claims; its siblings handle the rest: ReviewVahti for reviewer agreement, ExtractVahti for data extraction, and SynthVahti for synthesis.
Get started
Free while in beta. No account, no card. The core is open-source and runs on
your machine, so checking your own manuscript stays free. A good time to try it is now, before
you're mid-submission. Works on a Word (.docx) or Markdown manuscript, or pasted text;
nothing has to leave your device.
macOS app — no terminal
Download the app (.app.zip) from the
latest release
(Apple Silicon, signed & notarized), unzip it, drag CiteVahti.app to
Applications, and open it.
Claude Desktop — no terminal
Download the CiteVahti extension (.mcpb) for macOS, Windows, or Linux from the
same release, double-click to install, choose a CiteVahti folder, then ask Claude:
“Run claim tests on my manuscript using CiteVahti.”
Prefer the terminal?
pip install "citevahti[mcp]" citevahti demo # 3-minute worked example — no Zotero, AI, or setup citevahti run # review panel on your own manuscript
Installs from PyPI. run
opens the local review panel and names the next step for you.
Using CiteVahti in Claude Code or Claude Desktop
Install the MCP server (pip install "citevahti[mcp]") and connect it in Claude Code, or
double-click the Claude Desktop extension — the
Quickstart has the
exact steps. Then you drive it in plain language: ask for the outcome, not a command.
Run claim tests on my manuscript.docx with CiteVahti. Which of my claims have no citation, or overstate the source? Check whether this citation supports the sentence — rate it blind first. Write the accepted references to Zotero, and let me confirm each one. Draft this paragraph using only my accepted claims.
You stay the decider: CiteVahti stages the evidence and gives a blinded second opinion, but nothing is rated or written to Zotero without you.
Keep the AI on-device (optional)
The AI second opinion is off by default. Point it at your own API key, or run a local model
with Ollama (ollama pull qwen2.5) — then even
the second opinion stays on your machine.
Beta means updates are manual for now — the app doesn't update itself, so new versions come from the same releases page; your review data is never touched. Found a bug, or a support judgment you'd call wrong? Open an issue — the feedback shapes the beta.
Safe by design
- You decide. The AI is a blinded, advisory second rater, never decisive, never silent.
- No silent writes. Every Zotero write is preview → confirm → commit, and undoable.
- Your key is yours. Stored only in the OS keychain; reads need no key at all.
- Local-first & private. Runs on your laptop. No account, no telemetry, no fabricated citations.
- Auditable. A hash-chained log records the reasoning, reportable in a methods section.
- Made to disclose. Export the audit trail for your methods, and tell your supervisor or journal you used it — there's a ready template in the disclosure guide.
Common questions
Does CiteVahti work with Zotero?
Yes. When a reference belongs in your library, CiteVahti writes it to Zotero as a preview → confirm → commit step you can undo. Reads need no key, and there are no silent writes — dedupe fails closed.
What does CiteVahti export?
A hash-chained audit log of the checking process — the claims, the human rating, the AI second opinion, and the adjudication — which you can export for your methods section. A disclosure template ships with the tool.
Does my manuscript leave my device?
No. CiteVahti runs on your laptop with no account and no telemetry; your manuscript, claims, and ratings stay local. Only the reference lookups you ask for make a network call.
Does CiteVahti decide whether a citation is correct?
No. You rate first; the AI is a blinded, advisory second rater; the adjudication is recorded. CiteVahti checks whether the cited source supports the claim and records who decided what — it does not certify that a claim is true.