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
Does the cited paper actually support the claim? Check every citation in your manuscript — before a reviewer does.
CiteVahti walks you through your manuscript one claim at a time. You decide whether each cited source really backs the sentence; an optional AI gives a blinded second opinion (you rate first, it can never overrule you); and every decision is saved as a timestamped, tamper-evident record on your own computer.
Free while in beta. CiteVahti is local-first: your manuscript stays on your device unless you choose to turn on an external AI model. No account. Nothing uploaded.
Who it's for
Researchers, clinicians, and students who write papers and want to be sure every citation holds up — without learning new software or touching a command line. If you can open a file on your computer, you can use CiteVahti.
What it does for you
- Catches citations that don't support the sentence they're attached to — the kind a reviewer or editor will flag.
- Keeps you in charge. You make every call; the AI is only ever a second opinion, shown after you've decided.
- Leaves a clean paper trail — a timestamped record of what you checked and concluded, ready for a supervisor, co-author, journal, or registry.
- Builds a reusable evidence map so you don't re-do the same checks next project.
- Stays private by default — everything lives in a folder on your Mac or PC.
Start in one click — no terminal
Most people should use the Claude Desktop extension. Your AI assistant runs the review for you through it — there's nothing to install from a command line.
- Download the CiteVahti extension for your computer from the
latest release:
- macOS (Apple Silicon) —
citevahti-<version>-macos-arm64.mcpb(signed + notarized) - Windows —
citevahti-<version>-windows-x64.mcpb - Linux —
citevahti-<version>-linux-x64.mcpb
- macOS (Apple Silicon) —
- Double-click the downloaded file to add it to Claude Desktop.
- Choose a folder for your reviews when asked.
- Tell your assistant: "Check the claims in my manuscript using CiteVahti."
First time on macOS you may see a one-time security prompt — the extension 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 go to System Settings → Privacy & Security → "Open Anyway". After that it installs and runs normally.
Other ways to install (standalone app, or the terminal)
Desktop app — a real window, no Claude Desktop
A standalone CiteVahti window (not a browser tab). Installing uses the terminal once; after that you just launch the app:
pip install "citevahti[app]"
citevahti-app
Then drag a .docx or .md onto the window to begin.
Terminal
pip install "citevahti[mcp]"
citevahti run
CiteVahti opens the review panel on your machine at 127.0.0.1 and tells you the one next
thing to do.
Updating
Your review data is never touched by an update — only the program is replaced.
- pip:
pip install --no-cache-dir --upgrade "citevahti[mcp]", thenpip show citevahtito confirm the version. - Claude Desktop extension: remove the existing CiteVahti extension, fully quit and reopen
Claude Desktop, then add the newest
.mcpbfrom the latest release. Ask your assistant to run thestatustool to confirm the running version. (macOS Intel: install viapip install "citevahti[mcp]", or run the Apple-Silicon.mcpbunder Rosetta.)
How it works
CiteVahti always tells you the one next thing to do — there's no command to remember and nothing to set up.
You start by adding your manuscript — choose a Word or Markdown file, drag it onto the window, or paste the text. Nothing is uploaded.
Then you work through each claim on a simple card that walks a visible Rate → Reveal → Decide → Write path, so you always know where you are:
- Rate — you judge whether the cited paper supports the claim.
- Reveal — now the optional AI second opinion appears (never before).
- Decide — accept, caution, review, or reject. The decision is yours.
- Write — optionally update your manuscript or Zotero, always after a preview.
A record you can hand to anyone
Every decision is saved to a timestamped, tamper-evident review record — a plain-language
log of what you reviewed and in what order. Export it as a Word document, a print-ready report,
or a review-packet .zip (which even includes an auto-filled methods paragraph with your
review's real numbers) for a methods section, a co-author, a supervisor, or a journal.
Build an evidence map you can reuse
Stop losing evidence work after each project. Most citation checks vanish after one manuscript or one deadline. Every claim you assess in CiteVahti is saved to your own private evidence map, so next time you work on the same topic you don't start from zero — pull back earlier judgments, see what you already checked, and spot where the literature is thin, contradictory, or overclaimed.
It stays on your machine. Sharing into the wider, de-identified community evidence map is a separate, opt-in step, and you preview the exact payload before anything is sent — never your manuscript, search history, patient data, registry data, or private project identifiers.
The AI is a second opinion — never the judge
You always rate first. CiteVahti can then show a second rating from an AI, and compare the two — but the AI value stays hidden until your rating is in, and the final decision is always yours. There's no hidden AI subscription: pick the mode you want, or leave AI off entirely.
You can get the second opinion from:
- your MCP assistant (e.g. Claude Desktop),
- a local model on your own computer (free, fully private — see below), or
- your own OpenAI/Anthropic-compatible API key.
Run the AI on your own machine (free, nothing leaves your device)
- Install Ollama (macOS:
brew install ollama). - Pull a model —
qwen2.5is 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.) - In the panel, open Settings → AI second opinion → 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).
Your privacy
CiteVahti is local-first.
- Your manuscript, ratings, and review record stay in a folder on your computer.
- The panel runs only on your own machine (loopback,
127.0.0.1). - AI is optional and blinded; local and bring-your-own-key modes are supported.
- Changes to Zotero or your manuscript always require a preview and your confirmation, and can be undone.
- No telemetry. The only outbound calls are the literature services you choose to search (PubMed, OpenAlex, Semantic Scholar, Crossref), your Zotero if you connect it, and — only when you ask — a single check to PyPI for a newer version (no data about you is sent, and nothing is installed automatically).
What CiteVahti writes
CiteVahti never silently changes Zotero or your manuscript. Every write follows the same gate:
Preview → Confirm → Audit → Undo available
What it does and does not check
CiteVahti checks citation support, not the truth of the underlying claims. It tests whether the cited paper backs 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 enforced by the workflow (the AI value is withheld until you rate) and recorded in the review record with timestamps, 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.
Using 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
- Quickstart
- CLI reference
- Safety invariants
- Architecture
- Reporting in your methods section
- Status & capabilities
- Known limitations
- Writing good (atomic) claims
- Responsibility, disclosure & conflict of interest
- Contributor privacy
- Dependencies / SBOM
Feedback & support
CiteVahti is a free beta and your feedback shapes it.
- Found a bug, or a citation judged wrong? Open an issue — there are quick forms for a bug and for a wrong support judgment.
- Have an idea? Request a feature.
- Anything private or security-related? Email privacy@vahtian.com — please don't open a public issue.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file citevahti-0.44.0.tar.gz.
File metadata
- Download URL: citevahti-0.44.0.tar.gz
- Upload date:
- Size: 406.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25682bb49d9208c306bdd061f41e50a9cc25193a8445b3cbef02e0c54687b6ea
|
|
| MD5 |
3901138cc5b223b363e70da20041c045
|
|
| BLAKE2b-256 |
f53e076ae26eddec1bedf8d6dc6e0e10febcf6135e7f6affe355dfdc04d4bbcb
|
Provenance
The following attestation bundles were made for citevahti-0.44.0.tar.gz:
Publisher:
publish-pypi.yml on heidihelena/citevahti
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
citevahti-0.44.0.tar.gz -
Subject digest:
25682bb49d9208c306bdd061f41e50a9cc25193a8445b3cbef02e0c54687b6ea - Sigstore transparency entry: 2014171699
- Sigstore integration time:
-
Permalink:
heidihelena/citevahti@ea7371633eea6f9970feb1796f74516dfd2ccaea -
Branch / Tag:
refs/tags/v0.44.0 - Owner: https://github.com/heidihelena
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ea7371633eea6f9970feb1796f74516dfd2ccaea -
Trigger Event:
release
-
Statement type:
File details
Details for the file citevahti-0.44.0-py3-none-any.whl.
File metadata
- Download URL: citevahti-0.44.0-py3-none-any.whl
- Upload date:
- Size: 446.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77d804a747b2927b35dd2f32c08cf2cb3f683a756b75fd6bcc8a554cc95979d8
|
|
| MD5 |
fbf3417d91a4cff2301926962ee57409
|
|
| BLAKE2b-256 |
514417b1783aa6edec08b44bd31f996c12636a32fc78bb737b32703cb9437442
|
Provenance
The following attestation bundles were made for citevahti-0.44.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on heidihelena/citevahti
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
citevahti-0.44.0-py3-none-any.whl -
Subject digest:
77d804a747b2927b35dd2f32c08cf2cb3f683a756b75fd6bcc8a554cc95979d8 - Sigstore transparency entry: 2014171745
- Sigstore integration time:
-
Permalink:
heidihelena/citevahti@ea7371633eea6f9970feb1796f74516dfd2ccaea -
Branch / Tag:
refs/tags/v0.44.0 - Owner: https://github.com/heidihelena
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ea7371633eea6f9970feb1796f74516dfd2ccaea -
Trigger Event:
release
-
Statement type: