Dr. Claw
Full-stack research workspace. From idea to paper with AI agents.
Open-source pre-publication checks for researchers: plagiarism, AI-writing patterns, citations and grammar, with the evidence and limits shown for every result.
EducationTypeScript · PythonGitHub @KnsravanOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Combination of "veri" (truth, verify) and "tome" (a scholarly book).
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Open-source pre-publication checks for researchers. Look for overlap with published work, AI-style writing patterns, shaky references and grammar slips in your manuscript before a journal or reviewer does. Every flag comes with its evidence and an honest note on how sure it is.
| Tool | What it does | What it cannot do |
|---|---|---|
| Plagiarism (full check) | Finds copied and reworded passages using exact-phrase search of arXiv, Europe PMC full text, Wikipedia, CORE full text (free key), OpenAlex, Crossref and Semantic Scholar, optional Brave or Serper web search, and your own documents, then compares matched papers in full where a free copy exists. Also catches disguised text (look-alike letters, invisible characters, hidden text), paraphrasing-tool phrases ("counterfeit consciousness"), text translated from English sources, reuse of your own earlier papers (ORCID or name), and problems in pictures (the same picture twice, even flipped; figures matching a source; copied text inside pictures, read by OCR). Runs the AI, citation and grammar checks in the same report, shown on the paper in its original layout. | Cannot see paywalled full texts, theses or student-paper databases, and cannot reverse-search pictures across the web. Heavy rewriting can slip through. A low score is not proof of originality. |
| AI writing patterns | A classifier trained on about 90,000 labelled human and machine texts, calibrated so roughly 1 in 100 human texts or fewer is flagged. Undoes evasion tricks (lookalike letters, invisible characters), scores long documents section by section, and shows the wording behind the score. | Cannot prove who wrote a text. Catches about half of machine text in testing; paraphrased text and new models are often "inconclusive". |
| Humaniser | Revises stiff, formulaic prose while citations, maths, URLs and numbers stay locked. Shows the pattern score before and after. | Does not make text human-written. Disclose AI assistance where your publisher asks. |
| Paraphraser | Academic, simple, concise or expanded rewrites with the same protections and checks. | Meaning can drift in ways a number check cannot catch. Read every rewrite. |
| Citations | Verifies each reference against Crossref, OpenAlex, DataCite and arXiv; flags retractions, wrong DOIs and mismatched details; cross-checks in-text citations; finds papers for uncited claims; formats in six styles and BibTeX. | "Not found" is not "fabricated": books and reports are often missing from these databases. Suggested papers may not support your claim. |
| Compare papers (coming soon) | For teachers: compares a class's papers with each other in the browser (nothing uploaded), with a heatmap and side-by-side shared passages; assignment text can be left out. | Finds passages shared word for word (with small edits), not reworded or translated sharing. |
| Grammar (coming soon) | High-precision academic-style rules, common misspellings and readability scores, plus LanguageTool when connected. Fixes apply in place. | The built-in rules are not a full grammar parser; readability formulas are rough guides. |
The Plagiarism check is the full report: it runs every check on a whole paper (paste it, or upload .docx, .pdf including scanned PDFs, .tex, .md or .txt), shows every finding underlined on the paper in its original layout, and exports PDF, Markdown or JSON. Word and PDF files are read in the browser; only the text is sent for checking.
No plagiarism checker or AI detector is 100% accurate, commercial ones included. Veritome is built to show its evidence, give every score a range, and say what each check cannot see. Measured on text it never saw in training, the AI-pattern check wrongly flagged 0.2% of 1,387 human passages and caught 46% of 2,261 machine-written ones (86% for Llama-3, about half for GPT-4o). In a small live plagiarism test, every copied sentence taken from two well-known papers. Read docs/ACCURACY.md for the method, numbers and caveats before relying on any result.
OPENALEX_API_KEY, CORE_API_KEY and
CONTACT_EMAIL for better searches, and LLM_BASE_URL, LLM_MODEL, LLM_API_KEY for real rewriting.
For Google Gemini: LLM_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai,
LLM_MODEL=gemini-3.8-flash, LLM_API_KEY=<your Gemini key>, and optionally LLM_REASONING_EFFORT=low.UPSTASH_REDIS_REST_URL and
UPSTASH_REDIS_REST_TOKEN from an Upstash database you made yourself works too.On Vercel, uploads are limited to about 4 MB (Vercel's request limit) and each check can run for up to 5 minutes.
The shared document library (LIBRARY_DIR) is not available there; users can still attach their own documents.
Vercel's free Hobby plan is for non-commercial use.
git clone https://github.com/Knsravan/Veritome.git && cd Veritome
cp .env.example .env # optional: add CONTACT_EMAIL, LLM settings, API keys
docker compose up -d # http://localhost:3000
Add the optional services with profiles:
# Local LanguageTool for grammar (set LANGUAGETOOL_URL=http://languagetool:8010 in .env)
docker compose --profile languagetool up -d
# Local language model with Ollama (set LLM_BASE_URL=http://ollama:11434/v1 and LLM_MODEL=llama3.1:8b in .env)
docker compose --profile ollama up -d
docker compose exec ollama ollama pull llama3.1:8b
Put earlier papers in ./library (.txt, .md, .tex, .docx or .pdf) and every plagiarism check compares against
them too. The folder is mounted read-only.
All settings are environment variables and all are optional; see .env.example for the full list.
| Variable | Purpose |
|---|---|
LLM_BASE_URL, LLM_MODEL, LLM_API_KEY | Any OpenAI-compatible endpoint for the paraphraser, humaniser and optional detector opinion. Without one, rewriting falls back to light rule-based edits and says so. For Gemini use https://generativelanguage.googleapis.com/v1beta/openai with a Gemini API key. |
LLM_REASONING_EFFORT | Optional reasoning_effort for thinking models. Set low for Gemini so thinking does not use up the short detector reply. |
ALLOW_CLIENT_LLM, ALLOW_PRIVATE_LLM | Let visitors bring their own model from Settings (off by default). Their URLs pass an SSRF guard; cloud metadata addresses are always refused. |
LANGUAGETOOL_URL | A LanguageTool server for broader grammar and spelling checks. |
CONTACT_EMAIL | Sent to Crossref and OpenAlex for their polite pools. Recommended. |
OPENALEX_API_KEY | Free and effectively required: without it OpenAlex shares a tiny daily budget across your server's IP address. |
CORE_API_KEY | Free: lets plagiarism checks search the full text of 30+ million open-access papers. |
SEMANTIC_SCHOLAR_API_KEY | Higher rate limits and full-text snippet search for plagiarism checks. |
BRAVE_API_KEY, SERPER_API_KEY | Optional web search for plagiarism checks. |
LIBRARY_DIR | Folder of documents every plagiarism check also compares against. |
SITE_URL | The public address, for the sitemap, canonical links and link previews. On Vercel the production domain is used automatically; set it for your own domain or when self-hosting. |
RATE_LIMIT_PER_MINUTE, TRUST_PROXY | Abuse protection. Only trust X-Forwarded-For behind a proxy you control. |
UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN | Shared rate-limit counts across server instances (needed on Vercel). KV_REST_API_URL and KV_REST_API_TOKEN from Vercel's Upstash integration also work. |
Check that every configured service is reachable with node --env-file=.env scripts/smoke-sources.ts.
Requires Node.js 22.18 or newer (the engine tests run TypeScript directly with node --test).
npm install
npm run dev # http://localhost:3000
npm test # engine (node --test), server and web (Vitest) tests
npm run typecheck
npm run build
npm run e2e # Playwright smoke test with axe accessibility checks (after build)
node scripts/evaluate-detector.ts data.jsonl --neural # measure the AI detector (as on the site) on labelled text
The checking engine in src/core has no dependencies and runs in Node or the browser. See
docs/ARCHITECTURE.md for how the pieces fit and CONTRIBUTING.md for
how to help. Labelled evaluation data for the AI-pattern check is the most valuable contribution.
MIT. See LICENSE.