Skip to content

Citra

Give your AI agent eyes for PDFs — with proof.

Citra is the local-first PDF evidence tool for AI agents. One read_pdf call returns structured text, tables with cells and geometry, optional OCR with its own provenance, and page-level citations your agent can defend — not invent.

Ten minutes to a citable claim

Start with the Quickstart. It walks one document from install to a claim a human can check.

Who this is for

You are building agents that read contracts, filings, research papers, invoices, or scanned records — and you have been burned by an agent that confidently quoted a number it invented. Citra exists for that failure.

What makes it different

A text extractor answers "what characters are on this page?" Citra answers "what can my agent safely assert, and where does the proof live?"

Every claim in a response can carry:

  • page — where it is in the document
  • bounding box — where on the page, in PDF coordinates
  • table / cell indices — for numbers that came from a grid
  • provenance — which engine and which layer (selectable text vs OCR) produced it
  • quality signals — when the evidence is weak (sparse cells, merged cells, incomplete geometry)
  • gaps — what it could not prove, named instead of guessed

That is the evidence contract, and it is the whole point of the product.

The three tools

ToolJob
read_pdfSmart default read — markdown, tables, structure, optional OCR, citation-ready chunks
search_pdfCheap literal retrieval with page and bounding-box locators
pdf_evidenceFocused verification: inspect, render_page, extract_regions, ocr_pages, analyze_regions

Few, powerful, obvious. Advanced work lives behind one op enum instead of accumulating near-duplicate tool names — see the tool surface.

Local-first

Reading a local PDF needs no network, no API key, and uploads no document. OCR and region analysis are opt-in providers you choose. See the local-first frontier.

Native and fail-closed

The PDF engine is native Rust, selected per platform at install. The launcher ships zero production JS dependencies. If the matching native binary is missing, the process refuses to start — there is no silent fallback to a different engine.

Install in 30 seconds

bash
npx -y @sylphx/citra

Full per-client setup: Installation

Where to go

If you want…Go to
to use it right nowQuickstart
every option and result fieldAPI reference
to know what "proof" means hereThe evidence contract
the speed claims and their boundsPerformance
why not the alternativesComparison
to report a vulnerabilitySecurity reporting

MIT licensed · local-first by design · no external calls from these docs