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.
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.
Start here
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."
- Windows —
citevahti-<version>-windows-x64.mcpb - Linux —
citevahti-<version>-linux-x64.mcpb - macOS (Apple Silicon) —
citevahti-<version>-macos-arm64.mcpb(signed + notarized)
First open on macOS may show a one-time security prompt — the
.mcpbis 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.
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.
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. On Claude Desktop, download the newest extension for your platform and double-click
it to replace the old one.
The workflow
- Paste or open a manuscript.
- Extract claim-like statements.
- Link candidate evidence.
- Rate support yourself.
- Reveal the AI second opinion.
- Decide: accept, caution, review, or reject.
- Preview Zotero or manuscript changes.
- 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.
Starting from nothing is just as guided: paste a paragraph and CiteVahti takes it from there — no account, nothing uploaded.
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.
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.
Run AI on your own machine (free, private)
Local mode runs the model on your computer — no API key, 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 ✦ 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.
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
- 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.22.1.tar.gz.
File metadata
- Download URL: citevahti-0.22.1.tar.gz
- Upload date:
- Size: 338.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47602f7a4ab8458491bd3f1685049168f2954252bd8fbc6275c175b1ff47f527
|
|
| MD5 |
5a7accab31e99c8dc6bc37ec43a15e44
|
|
| BLAKE2b-256 |
6607778bdf0015e0ae825fa8d5c2b2146b6872c67d49af01b5b3850d1133c1e8
|
Provenance
The following attestation bundles were made for citevahti-0.22.1.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.22.1.tar.gz -
Subject digest:
47602f7a4ab8458491bd3f1685049168f2954252bd8fbc6275c175b1ff47f527 - Sigstore transparency entry: 1917246741
- Sigstore integration time:
-
Permalink:
heidihelena/citevahti@41c8d885ef3bc8f0ea36baba7e1194f1ddf15f5b -
Branch / Tag:
refs/tags/v0.22.1 - Owner: https://github.com/heidihelena
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@41c8d885ef3bc8f0ea36baba7e1194f1ddf15f5b -
Trigger Event:
release
-
Statement type:
File details
Details for the file citevahti-0.22.1-py3-none-any.whl.
File metadata
- Download URL: citevahti-0.22.1-py3-none-any.whl
- Upload date:
- Size: 381.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30b22971a0857f2bf43cbfb49f935eca123acbdd2de9d2b13d19a5d11fb3f27c
|
|
| MD5 |
8da14efbbe6d65db600bee314b5beaa2
|
|
| BLAKE2b-256 |
43cca3d34ea44a07ab9be16bb305a719dd1e163f3c6522c12653f2e30603b4be
|
Provenance
The following attestation bundles were made for citevahti-0.22.1-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.22.1-py3-none-any.whl -
Subject digest:
30b22971a0857f2bf43cbfb49f935eca123acbdd2de9d2b13d19a5d11fb3f27c - Sigstore transparency entry: 1917247052
- Sigstore integration time:
-
Permalink:
heidihelena/citevahti@41c8d885ef3bc8f0ea36baba7e1194f1ddf15f5b -
Branch / Tag:
refs/tags/v0.22.1 - Owner: https://github.com/heidihelena
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@41c8d885ef3bc8f0ea36baba7e1194f1ddf15f5b -
Trigger Event:
release
-
Statement type: