FAQ¶
Does kogo send my PDFs anywhere?¶
No. All processing happens locally, whether you use the CLI, the library, or the self-hosted web app. The hosted demo is a convenience deployment of the same open-source code — self-host if you'd rather not use it.
Can kogo diff scanned PDFs with no text layer?¶
Not at word precision — scan-only PDFs are compared visually (figures,
layout) since there's no embedded text to extract. Add an OCR text layer
first (e.g. with ocrmypdf) if you need word-level text diffs. OCR support
built into kogo itself is tracked on
ROADMAP.md.
Does kogo handle password-protected PDFs?¶
No — remove the password first. compare_pdfs raises ComparisonError for
this (and other user-facing problems: corrupted, empty, or oversized files).
Why is a moved paragraph reported as delete + add instead of "moved"?¶
Exact-line matching (see How it works) already suppresses this for unchanged text that moved. A paragraph that was both edited and moved doesn't have a byte-identical line to match against, so it's currently reported as a delete in the old position and an add in the new one. Dedicated moved-text detection is tracked on ROADMAP.md.
How do I use kogo without writing the marked PDFs?¶
kogo.compare_pdfs(..., artifacts=False) — see the
CI integration recipe.
Where do I report a bug or request a feature?¶
GitHub Issues using the bug report or feature request template. For general questions, use Discussions instead. For security vulnerabilities, see SECURITY.md — please don't file a public issue.