The ecosystem

railreader2 is the reader. Two sibling projects take the same ideas further.

railreader2 is a thin desktop shell. The reading engine underneath it — rail navigation, layout analysis, OCR, search, annotations and Markdown export — lives in its own library, and a separate command-line tool uses that same engine to move review markup in and out of PDFs. All three are free and open source (MIT).

Library · .NET / NuGet

RailReaderCore

The portable libraries that power railreader2, built to be reused by other apps. Nothing in them depends on a UI toolkit, so the same engine can sit behind a desktop app, a command-line tool, or a future web or mobile reader.

  • Rail navigation — line detection, reading order, semi-automatic scroll, the reading guide, freeze panes and portals.
  • Layout analysis — Docling Heron, PP-DocLayoutV3 and PP-DocLayout-S behind one interface, with optional WebGPU acceleration and a model-free fallback that works from the PDF's text layer.
  • Scanned pages — optional OCR that supplies the missing text layer, with skew correction and language packs.
  • Everything else — search, annotations stored in the PDF itself, vision-model transcription of equations and tables, and structured Markdown export.

Packages: RailReader.Core, RailReader.Core.Pdfium, RailReader.Core.Analysis (and .WebGpu), RailReader.Core.Ocr.RapidOcr, RailReader.Core.Vlm.OpenAI, RailReader.Renderer.Skia and RailReader.Export.

Command-line tool · Linux & Windows

RailMark

PDF review markup for AI agents, in both directions. RailMark reads the highlights and comments in a PDF out as Markdown or JSON, exports any PDF to layout-aware Markdown, and writes an AI reviewer's markup back in as native PDF annotations. It ships as one self-contained binary.

  • Read markup out — every annotation in the file, filed under the document's headings in reading order, with a summary table.
  • Export a PDF — layout-aware Markdown from any PDF, ready for an AI to summarise.
  • Write markup back — highlights, underlines, strikeouts, replacements and notes applied from a plan, with quoted text resolved to exact PDF geometry.

It is built directly on the RailReaderCore packages, and the repository includes a Claude Code skill so an agent can produce review markup for you.

How they fit together

railreader2 also has its own command-line tool for rendering pages, extracting structure and annotations, and exporting Markdown. RailMark is the one to reach for when the job is review markup rather than reading.