xberg (formerly Kreuzberg)
A local document extraction engine that reads PDFs, scans, and source code, with OCR and structured JSON extraction through local or hosted LLMs.

xberg, formerly Kreuzberg, is a local document extraction engine for developers building AI search and document processing applications. It turns files into text and structured content that those applications can use.
- Documents and web pages: Extract text, images, tables, and metadata from PDFs, Office files, email, and nested archives; optional URL ingestion also fetches documents and crawls linked pages.
- OCR and layout: Read scanned pages with Tesseract, PaddleOCR, Candle, or VLM backends, and use layout and table models to reconstruct reading order and table cells for Markdown output.
- Structured extraction: Produce JSON according to a schema using Ollama, LM Studio, or vLLM locally, or send the extraction to a hosted LLM provider.
- Search and source code: Create embeddings locally with ONNX or through hosted providers, rerank search results, and extract code symbols and docstrings with chunks split at syntax boundaries.
- Speech transcription: An optional Whisper ONNX capability converts audio files and video audio tracks to text; video support covers audio-track transcription only.
The Rust-based engine is open source under the MIT license. It works as an embedded library, CLI, self-hosted REST API, or MCP server, with bindings including Python, Node.js, Go, Java, and Swift. Hosted LLM and embedding options send the relevant processing to external providers. Output formats include plain text, Markdown, HTML, Djot, JSON trees, and Docling DocTags.