Skip to main content

CiteVahti — citation-integrity and provenance for research synthesis: a blinded human->AI->adjudication dual-rating workflow with decision-gated, undoable Zotero write-back (single-user, local-first; searches PubMed, OpenAlex, Semantic Scholar, Crossref).

Project description

CiteVahti

Run unit tests on your manuscript citations.

CiteVahti checks whether each manuscript claim is actually supported by the paper cited for it. You rate first, AI gives a blinded second opinion, and every decision is recorded in an auditable local ledger.

CiteVahti inline review panel — the manuscript on the left, the evidence-and-decision card on the right.

Free beta. CiteVahti is free to use while in beta. Local-first: your manuscript never leaves your device unless you choose to use an external AI model.

Why use it?

  • Catch citations that do not support the sentence they are attached to.
  • Review claim by claim, inside the manuscript.
  • Keep the human decision primary.
  • Use optional AI without letting it silently decide.
  • Write to Zotero only after preview and confirmation.
  • Export a citation-integrity report for methods, review, or audit.

Build an evidence map you can use again

Stop losing evidence work after each project. Most evidence checks disappear after one manuscript, one review, or one grant deadline. CiteVahti turns them into something reusable.

Every claim you assess is saved to your own evidence map. Next time you work on the same topic you don't start from zero: pull back earlier judgments, see which evidence you already checked, and spot where the literature is still thin, contradictory, or overclaimed. You're not filling someone else's database — you're building a private research asset that gets more useful each time you use it.

What you get immediately

  • Less repeated work — reuse past claim–evidence judgments in later searches, reviews, manuscripts, and replies to reviewers.
  • A clearer view of your own coverage — which claim areas, study types, and evidence gaps you have already worked through.
  • A memory layer for evidence work — assessments stay tied to the public study identifiers, ratings, and agreement status instead of being buried in notes, PDFs, or spreadsheets.
  • Control before sharing — your evidence map stays on your machine; contribution is a separate opt-in step, and you preview the exact payload before anything is sent.

What changes when others contribute. When enough researchers assess overlapping claims, CiteVahti can show where your judgments align with the field, where they diverge, and where your expertise is rare. These comparisons appear only when there is enough independent overlap — thin data stays hidden. The shared corpus is built from de-identified contributions, never from manuscripts, search histories, patient data, registry data, or private project identifiers.

Why contribute. Contributing is not a donation of free labour: it lets your local evidence work join a larger evidence map while you keep control of what you send. If you opt in to commercial use, your contributions may also support aggregate evidence products — but only as de-identified, group-level outputs. Your individual judgments are never sold, shown, or shared as individual data.

How your data is handled →

Start here

Which one? Most researchers want the Claude Desktop extension — one click, no terminal, and your AI assistant runs the review through it. Want a standalone app window (no Claude Desktop)? Use the desktop app. Comfortable in a terminal, or scripting a pipeline? Use pip. All three drive the same local-first, human-first review.

No terminal — Claude Desktop

Download the CiteVahti extension for your computer from the latest release, double-click it, choose a CiteVahti folder, then ask: "Run claim tests on my manuscript using CiteVahti."

  • Windowscitevahti-<version>-windows-x64.mcpb
  • Linuxcitevahti-<version>-linux-x64.mcpb
  • macOS (Apple Silicon) — citevahti-<version>-macos-arm64.mcpb (signed + notarized)
  • macOS (Intel) — no separate bundle; install via pip install citevahti[mcp], or run the Apple-Silicon .mcpb under Rosetta.

First open on macOS may show a one-time security prompt — the .mcpb is a zip, which macOS can't pre-stamp even though the app inside is signed and notarized. If it appears: right-click the file → Open, or System Settings → Privacy & Security → "Open Anyway". Once allowed, it installs and runs normally.

Desktop app — a real window, no browser

A standalone CiteVahti window: the review panel in a native OS window (not a browser tab, and no Claude Desktop needed). Install once, then launch it:

pip install "citevahti[app]"
citevahti-app

Drag a .md or .docx onto the window to begin. The AI second opinion is optional — point it at a local Ollama model in AI settings (nothing leaves your machine), or let an MCP chat client provide it. (Installing takes the terminal once; after that it's just the app window.)

Terminal

pip install "citevahti[mcp]"
citevahti run

CiteVahti opens the local review panel at 127.0.0.1. It tells you the one next thing to do — no command to remember.

A "what's next" banner above the manuscript names the next action and takes you there.

Update to a new version

For a clean update — uninstall, clear the cached wheel, then reinstall:

pip uninstall -y citevahti
pip cache remove citevahti
pip install "citevahti[mcp]"
pip show citevahti          # confirm the new version

Or in one line: pip install --no-cache-dir --upgrade "citevahti[mcp]".

Your review data in .citevahti/ is not touched by this — updating only replaces the program.

Claude Desktop (the .mcpb): uploading a new extension can leave the old one cached and still running. For a clean swap: remove the existing CiteVahti extension, fully quit and reopen Claude Desktop, then add the newest .mcpb for your platform from the latest release. To confirm you're on the latest, ask your assistant to run the status tool — it now reports the running version (and the startup log shows citevahti-mcp v<version>).

The workflow

  1. Paste or open a manuscript.
  2. Extract claim-like statements.
  3. Link candidate evidence.
  4. Rate support yourself.
  5. Reveal the AI second opinion.
  6. Decide: accept, caution, review, or reject.
  7. Preview Zotero or manuscript changes.
  8. Export the report.

The card walks a visible Rate → Reveal → Decide → Write stepper, one claim at a time, so you always know where you are and what comes next.

The right-hand card showing the Rate → Reveal → Decide → Write stepper.

Starting from nothing is just as guided: paste a paragraph and CiteVahti takes it from there — no account, nothing uploaded.

First-run empty state with a box to paste a manuscript paragraph.

Privacy and safety

CiteVahti is local-first.

  • Manuscripts and ratings stay in .citevahti/ on your machine.
  • The panel runs on loopback (127.0.0.1) only.
  • Zotero writes require preview and confirmation.
  • AI is optional and blinded.
  • Local AI and bring-your-own API key modes are supported.
  • No telemetry. The only outbound calls are the literature services you search (PubMed, OpenAlex, Semantic Scholar, Crossref), your Zotero if you connect it, and — only when you ask (the check-update command, the panel's Check for updates button, or the check_update agent tool) — a single request to PyPI to see if a newer release exists (no data about you is sent, and nothing is installed automatically).

What AI does

AI is a second rater, not the judge. You always rate first. CiteVahti can then compare your rating with an optional AI rating from:

  • your MCP assistant,
  • a local model such as Ollama,
  • or your own OpenAI/Anthropic-compatible API key.

The AI rating stays hidden until your rating is in, and the final decision is always yours. There is no hidden AI subscription — pick the mode you want, or leave AI off.

AI second-opinion settings: Off · Local AI · My API key.

Run AI on your own machine (free, private)

Local mode runs the model on your computer — no API key, nothing leaves your device.

  1. Install Ollama (macOS: brew install ollama).
  2. Pull a model — qwen2.5 is recommended for claim checking:
    ollama pull qwen2.5
    
    (Pick a smaller tag if your machine is tight on memory, e.g. ollama pull qwen2.5:3b.)
  3. In the panel, open ✦ AI → Local AI. CiteVahti detects the installed model and pins its exact version so the rating stays auditable.

To update later, re-pull the same name (ollama pull qwen2.5) for the newest build.

What gets written

CiteVahti never silently changes Zotero or your manuscript. Every write follows the same gate:

Preview → Confirm → Audit → Undo available

What you can export

Generate a citation-integrity report (Markdown, print-ready HTML, Word, or a review-packet .zip) for a methods section, a co-author, a supervisor, or a journal. The packet even includes an auto-filled methods paragraph with your review's actual numbers.

The citation-integrity report export.

What it does and does not check

CiteVahti checks citation support, not the truth of the underlying claims. It tests whether the cited paper supports the sentence — it does not certify that every claim in the manuscript was entered, and it is not a clinical or scientific oracle. Blinding is a panel-enforced workflow (the AI value is withheld until you rate), recorded in the ledger with timestamps and comparison status so the order is auditable, not assumed.

Responsibility & disclosure

CiteVahti is a local-first citation-support audit tool for manuscript claims — it helps authors test whether the cited evidence supports each claim before submission.

Use of CiteVahti does not certify scientific truth, manuscript quality, publication suitability, or the absence of citation problems. It provides structured decision support and an audit trail; final responsibility remains with the human author, reviewer, editor, or institution. CiteVahti is developed by the author — any publication, review, teaching, or evaluation that uses it should disclose the tool use and the developer relationship where relevant. Ready-to-adapt disclosure text and the full statement are in docs/DISCLOSURE.md.

Documentation

Feedback & support

CiteVahti is a free beta and your feedback shapes it.

New here? Try citevahti demo (or the 3-minute path) first.

Companion: FullVahti

FullVahti is a sibling Zotero plugin that finds free, legal open-access PDFs for your references and writes CiteVahti's verified results back as tags — so the citation check and the full text live in one place. See the FullVahti README to install (a two-click Zotero plugin, no terminal).

License

Apache License 2.0 — see LICENSE and NOTICE.

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

citevahti-0.42.0.tar.gz (381.1 kB view details)

Uploaded Source

Built Distribution

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

citevahti-0.42.0-py3-none-any.whl (416.8 kB view details)

Uploaded Python 3

File details

Details for the file citevahti-0.42.0.tar.gz.

File metadata

  • Download URL: citevahti-0.42.0.tar.gz
  • Upload date:
  • Size: 381.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for citevahti-0.42.0.tar.gz
Algorithm Hash digest
SHA256 60dac029e9c760b891cbf84beba1934796be2be15d9bbdb44feb58a29ced00b1
MD5 7e546bae3672e2630c31f8ef877e7e2e
BLAKE2b-256 d873114817a29c9a9aea45a49a45936693f91a115576efcc0fef043bf1463b84

See more details on using hashes here.

Provenance

The following attestation bundles were made for citevahti-0.42.0.tar.gz:

Publisher: publish-pypi.yml on heidihelena/citevahti

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

File details

Details for the file citevahti-0.42.0-py3-none-any.whl.

File metadata

  • Download URL: citevahti-0.42.0-py3-none-any.whl
  • Upload date:
  • Size: 416.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for citevahti-0.42.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c246f65dafab6ea50a8140d38e8d70758babf2af65e60f937b1b844b537f98f
MD5 a397a028f753bb7107588baeb02da7ea
BLAKE2b-256 722516f6af3e5e9fda169e3b724bd3cd18a54cd479ea7234f8a3b56bbfc6b098

See more details on using hashes here.

Provenance

The following attestation bundles were made for citevahti-0.42.0-py3-none-any.whl:

Publisher: publish-pypi.yml on heidihelena/citevahti

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