Raw capture β€” raw/xberg.md


url: https://github.com/xberg-io/xberg date_fetched: 2026-08-07


Xberg

Bindings Rust Python Node.js WASM Java Go C# PHP Ruby Elixir Dart Kotlin Swift Zig C FFI Docker Helm chart License Documentation Hugging Face Join Discord Live Demo GitHub Stars **The fast, precise document-intelligence engine β€” for every language.** Point Xberg at anything β€” a PDF, a scanned image, a spreadsheet, an audio file, a URL, a whole archive, or a source tree β€” and get back clean text, tables, metadata, and structured data. One engine handles format detection, reading, OCR, and extraction, so you never stitch a pipeline together from a dozen libraries. **101 formats Β· 115 file extensions** Β· **371 code languages** Β· **15 language bindings** Β· **6 output formats** Β· OCR Β· transcription Β· embeddings The fastest, most precise open-source document and PDF-to-Markdown engine β€” [see the benchmarks](https://xberg.io/benchmarks). [Install](#installation) Β· [What you get](#what-you-get) Β· [Capabilities](#capabilities) Β· [CLI](#cli-reference) Β· [Docs](https://docs.xberg.io)

Xberg is the next iteration of Kreuzberg. Same document-intelligence engine, rebuilt and rebranded under a fresh v1 line.


What you get

Point Xberg at anything β€” a PDF, a spreadsheet, a scanned image, an audio file, a URL, an archive, a source tree β€” and get back clean, structured content you can use right away. One core does the format detection, reading, and extraction, so you don't assemble a pipeline yourself. Call it from Rust, Python, Node.js, Go, Java, C#, Ruby, PHP, Elixir, Dart, Swift, Zig, WASM, Kotlin, or C FFI, and run it as a library, CLI tool, REST API, or MCP server.

Capability What you get
101 document formats PDFs, Office, images, HTML, email, e-books, scientific publications, structured data across 115 file extensions β€” intelligent MIME detection, streaming for multi-GB files.
URLs & the web Point Xberg at an http(s) URL β€” it fetches and extracts a single document, or crawls and follows links (Auto / Document / Crawl modes via the crawlberg engine). Requires the url-ingestion feature.
Audio & video transcription Speech-to-text from MP3, M4A, WAV, WebM, and MP4 tracks via Whisper ONNX (tiny β†’ large-v3). Requires the transcription feature.
Archives, traversed List and recursively extract nested .zip, .tar, .gz, .7z β€” documents inside documents β€” guarded by zip-bomb, compression-ratio, and nesting-depth limits.
OCR on demand Tesseract, PaddleOCR, Sceptre, Candle, or VLM backends β€” fallback chains, confidence scores, language auto-detection, extensible via plugins.
Layout & tables ML layout models (PP-DocLayout-V3, RT-DETR) and table structure (TATR, SLANet) reconstruct reading order and cell grids for clean Markdown.
Code intelligence Functions, classes, imports, symbols, docstrings from 371 programming languages. Syntax-aware chunking for RAG pipelines.
Embeddings & search Local (ONNX) or provider-hosted embeddings (165 providers via liter-llm), sparse and late-interaction, cross-encoder reranking.
Enrichment NER, keyword extraction (YAKE/RAKE), summarization, translation, redaction, page classification, QR detection, language detection, token reduction (TOON).
Structured extraction Schema-driven JSON straight from any document via local (Ollama, LM Studio, vLLM) or hosted LLMs β€” no prompt engineering.
6 output formats Plain text, Markdown, Djot, HTML, JSON tree, or Structured (JSON with OCR metadata and bounding boxes).
Runs anywhere Library, CLI (13 commands), REST API (xberg serve), MCP server, Docker, Helm β€” no GPU needed. Content-hash caching, parallel batch, per-file timeouts.

Capabilities marked requires a feature are Cargo feature flags on the core crate (url-ingestion, transcription, reranker, layout/ORT). Prebuilt language packages and the Docker image bundle the common set; a from-source build enables only what you select.


Installation

Language Packages

Python
pip install xberg
See [Python README](https://github.com/xberg-io/xberg/tree/main/packages/python) for full documentation. Node.js / TypeScript
npm install @xberg-io/xberg
See [Node.js README](https://github.com/xberg-io/xberg/tree/main/crates/xberg-node) for full documentation. Rust
cargo add xberg
See [Rust README](https://github.com/xberg-io/xberg/tree/main/crates/xberg) for full documentation. Go
go get github.com/xberg-io/xberg/packages/go@latest
> ⚠️ The repository root is not a Go module β€” `go get github.com/xberg-io/xberg` will fail. > Always target the `/packages/go` subdirectory as shown above. See [Go README](https://github.com/xberg-io/xberg/tree/main/packages/go) for full documentation. Java Available on Maven Central as `io.xberg:xberg`. See [Java README](https://github.com/xberg-io/xberg/tree/main/packages/java) for the dependency snippet. C#
dotnet add package Xberg
See [C# README](https://github.com/xberg-io/xberg/tree/main/packages/csharp) for full documentation. Ruby
gem install xberg
See [Ruby README](https://github.com/xberg-io/xberg/tree/main/packages/ruby) for full documentation. PHP
composer require xberg-io/xberg
See [PHP README](https://github.com/xberg-io/xberg/tree/main/packages/php) for full documentation. Elixir Add `{:xberg, "~> 1.0"}` to your `mix.exs` dependencies. See [Elixir README](https://github.com/xberg-io/xberg/tree/main/packages/elixir) for full documentation. WebAssembly
npm install @xberg-io/xberg-wasm
See [WebAssembly README](https://github.com/xberg-io/xberg/tree/main/crates/xberg-wasm) for full documentation. Kotlin (Android) Available on Maven Central as `io.xberg:xberg-android`. See [Kotlin README](https://github.com/xberg-io/xberg/tree/main/packages/kotlin-android) for the dependency snippet. Swift Add via Swift Package Manager. See [Swift README](https://github.com/xberg-io/xberg/tree/main/packages/swift) for full documentation. Dart / Flutter
dart pub add xberg
See [Dart README](https://github.com/xberg-io/xberg/tree/main/packages/dart) for full documentation. Zig Add via `zig fetch`. See [Zig README](https://github.com/xberg-io/xberg/tree/main/packages/zig) for full documentation. C/C++ (FFI) Build from source as part of this workspace. See [C (FFI) README](https://github.com/xberg-io/xberg/tree/main/crates/xberg-ffi) for full documentation.

CLI & Deployment

CLI Tool
brew install xberg-io/tap/xberg
13 commands: `extract`, `batch`, `detect`, `formats`, `version`, `cache` (stats/clear/manifest/warm), `doctor`, `serve`, `mcp`, `api`, `embed`, `chunk`, `completions`. See [CLI usage guide](https://docs.xberg.io/cli/usage/) for detailed documentation. Docker
docker pull ghcr.io/xberg-io/xberg:latest
Run in API, CLI, or MCP modes. See [Docker guide](https://docs.xberg.io/guides/docker/) for examples. REST API Server
xberg serve --host 0.0.0.0 --port 8000
One POST endpoint handles all formats. Returns JSON or Markdown. Stream large files. See [API server guide](https://docs.xberg.io/guides/api-server/). MCP Server
xberg mcp --transport stdio
9 tools (extract, extract_batch, detect_mime_type, cache_stats, list_formats, cache_clear, get_version, cache_manifest, cache_warm). 3 prompts (extract_document, extract_with_ocr, semantic_search). 4 resources (formats, models, OCR languages, embedding presets). Add to Claude Desktop or Cursor:
{
  "mcpServers": {
    "xberg": { "command": "xberg", "args": ["mcp"] }
  }
}
See [MCP integration guide](https://docs.xberg.io/guides/mcp-integration/).

AI Coding Assistants

Install the Xberg plugin from xberg-io/xberg. Ships extraction APIs, OCR backends, configuration, and language conventions.

Claude Code
/plugin marketplace add xberg-io/xberg
/plugin install xberg@xberg
Codex CLI
/plugins add https://github.com/xberg-io/xberg
Search for `xberg` and select **Install Plugin**. Cursor Settings β†’ Plugins β†’ Add from URL β†’ `https://github.com/xberg-io/xberg`, then select **xberg**. Gemini CLI
gemini extensions install https://github.com/xberg-io/xberg
Factory Droid
droid plugin marketplace add https://github.com/xberg-io/xberg
droid plugin install xberg@xberg
GitHub Copilot CLI
copilot plugin marketplace add https://github.com/xberg-io/xberg
copilot plugin install xberg@xberg
opencode Add to `opencode.json`:
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["@xberg-io/opencode-xberg"]
}

Quick Start

Extract text from a document:

use xberg::{extract, ExtractInput, ExtractionConfig};

#[tokio::main]
async fn main() -> xberg::Result<()> {
    let config = ExtractionConfig::default();
    let output = extract(
        ExtractInput::from_uri("document.pdf"),
        &config
    ).await?;

    println!("{}", output.results[0].content);
    Ok(())
}

Common use cases β€” see Quick start guide for language-specific examples, OCR, batch processing, and API configuration.


Capabilities

Full feature list ### Supported File Formats (101 formats Β· 115 file extensions) 101 formats across 115 file extensions in 8 major categories with intelligent format detection and comprehensive metadata extraction. #### Office Documents | Category | Formats | Capabilities | |----------|---------|--------------| | **Word Processing** | `.docx`, `.docm`, `.doc`, `.dotx`, `.dotm`, `.dot`, `.odt`, `.pages`, `.wpd`, `.wp`, `.wp5`, `.wp6` | Full text, tables, images, metadata, styles | | **Spreadsheets** | `.xlsx`, `.xlsm`, `.xlsb`, `.xls`, `.xla`, `.xlam`, `.xltm`, `.xltx`, `.xlt`, `.ods`, `.numbers` | Sheet data, formulas, cell metadata, charts | | **Presentations** | `.pptx`, `.pptm`, `.ppt`, `.ppsx`, `.potx`, `.potm`, `.pot`, `.odp`, `.key` | Slides, speaker notes, images, metadata | | **PDF** | `.pdf` | Text, tables, images, metadata, OCR support | | **eBooks** | `.epub`, `.fb2` | Chapters, metadata, embedded resources | | **Database** | `.dbf` | Table data extraction, field type support | | **Hangul** | `.hwp`, `.hwpx` | Korean document format, text extraction | #### Images (OCR-Enabled) | Category | Formats | Features | |----------|---------|----------| | **Raster** | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.bmp`, `.tiff`, `.tif` | OCR, table detection, EXIF metadata, dimensions, color space | | **Advanced** | `.jp2`, `.jpx`, `.jpm`, `.mj2`, `.jbig2`, `.jb2`, `.pnm`, `.pbm`, `.pgm`, `.ppm` | OCR via pure-Rust JPEG2000 decoder, JBIG2 support, table detection | | **HEIC family** | `.heic`, `.heics`, `.heif`, `.avif`, `.avcs` | EXIF metadata, optional pixel decoding | | **Vector** | `.svg` | DOM parsing, embedded text, graphics metadata | #### Audio & Video | Category | Formats | Features | |----------|---------|----------| | **Audio** | `.mp3`, `.mpga`, `.m4a`, `.wav`, `.webm` | Whisper transcription | | **Video audio track** | `.mp4`, `.mpeg`, `.webm` | Audio-track transcription only | #### Web & Data | Category | Formats | Features | |----------|---------|----------| | **Markup** | `.html`, `.htm`, `.xhtml`, `.xml`, `.svg` | DOM parsing, metadata (Open Graph, Twitter Card), link extraction | | **Structured Data** | `.json`, `.yaml`, `.yml`, `.toml`, `.csv`, `.tsv` | Schema detection, nested structures, validation | | **Text & Markdown** | `.txt`, `.md`, `.markdown`, `.djot`, `.mdx`, `.rst`, `.org`, `.rtf` | CommonMark, GFM, Djot, MDX, reStructuredText, Org Mode | #### Email & Archives | Category | Formats | Features | |----------|---------|----------| | **Email** | `.eml`, `.msg`, `.pst` | Headers, body (HTML/plain), attachments, threading | | **Archives** | `.zip`, `.tar`, `.tgz`, `.gz`, `.7z` | File listing, nested archives, metadata, recursive extraction | #### Academic & Scientific | Category | Formats | Features | |----------|---------|----------| | **Citations** | `.bib`, `.ris`, `.nbib`, `.enw` | Structured parsing: RIS, PubMed/MEDLINE, EndNote XML, BibTeX/BibLaTeX | | **Scientific** | `.tex`, `.latex`, `.typ`, `.typst`, `.jats`, `.ipynb` | LaTeX, Typst, Jupyter notebooks, PubMed JATS | | **Publishing** | `.fb2`, `.docbook`, `.dbk`, `.docbook4`, `.docbook5`, `.opml` | FictionBook, DocBook XML, OPML outlines | ### Code Intelligence (371 Languages) Extract structure from 371 programming languages via tree-sitter: | Feature | Description | |---------|-------------| | **Structure Extraction** | Functions, classes, methods, structs, interfaces, enums | | **Import/Export Analysis** | Module dependencies, re-exports, wildcard imports | | **Symbol Extraction** | Variables, constants, type aliases, properties | | **Docstring Parsing** | Google, NumPy, Sphinx, JSDoc, RustDoc, and 10+ formats | | **Syntax-Aware Chunking** | Split code by semantic boundaries for RAG pipelines | | **Diagnostics** | Parse errors with line/column positions | Powered by [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack). ### Output Formats (6) | Format | Use case | Example | |--------|----------|---------| | **Plain** | Raw text, no markup | `"Chapter 1\nIntroduction"` | | **Markdown** | Readable, structured, RAG-friendly | `"# Chapter 1\n## Introduction"` | | **Djot** | Modern lightweight markup | Similar to Markdown but stricter | | **HTML** | Styled, browser-ready | `

Chapter 1

` | | **JSON** | Machine-readable tree structure | Hierarchical sections with heading levels | | **Structured** | OCR metadata, bounding boxes | JSON with `elements[]` containing `{text, bbox, confidence}` | ### Deployment Modes | Mode | Command | Transport | Use case | |------|---------|-----------|----------| | **Library** | `xberg::extract()` | Async functions | Embed in your application | | **CLI** | `xberg extract document.pdf` | 12 commands | Scripts, batch jobs, CI/CD | | **REST API** | `xberg serve` | HTTP POST | Microservice, serverless deployment | | **MCP Server** | `xberg mcp` | stdio or HTTP | Claude, Cursor, IDE agents | | **Docker** | `docker run ghcr.io/xberg-io/xberg` | All modes | Container deployment | ### OCR Backends - **Tesseract** β€” Native C FFI (Linux/macOS/Windows) and WASM (browser) - **PaddleOCR** β€” ONNX Runtime, mobile-optimized models - **Sceptre** β€” EasyOCR Gen2 CRAFT + CRNN: ONNX Runtime on desktop/server, tract on Android/iOS, and an opt-in WebAssembly worker API - **Candle** β€” Pure Rust, CPU-only, lightweight - **VLM** β€” GPT-4 Vision, Claude Vision, Gemini Vision, or 165 providers via liter-llm Fallback chains. Extensible via plugin system. ### Embeddings **Local (ONNX Runtime):** - Preset models: fast, balanced (default), quality, multilingual - Dimensions: 384, 768, 1024 **Provider-hosted:** - OpenAI, Anthropic, Google, Hugging Face, Mistral, Cohere, and 165 providers total - Via [liter-llm](https://github.com/xberg-io/liter-llm) integration **Reranking:** - Local ONNX rerankers (cross-encoder models) - Provider-hosted: Cohere Rerank, others ### Structured LLM Extraction Local engines: Ollama, LM Studio, vLLM Remote: OpenAI, Anthropic, Google, Mistral, Cohere, and 165 providers via liter-llm Schema validation. Temperature, top-p, frequency penalty tuning. ### Enrichment - **NER** β€” GLiNER or LLM-based entity recognition - **Redaction** β€” Mask PII (phone, email, SSN, credit card, addresses) - **Summarization** β€” Document and section summaries via LLM - **Translation** β€” Multi-language via LLM - **Page Classification** β€” Tag document pages (cover, toc, content, etc.) - **QR Code Detection** β€” Extract and decode QR codes from images - **Keyword Extraction** β€” YAKE or RAKE algorithms - **Language Detection** β€” Detect document language - **Layout Detection** β€” RT-DETR + TATR models for document structure - **Table Extraction** β€” Cell-level structure and content - **Token Reduction** β€” TOON wire format (~30–50% fewer tokens than JSON)

CLI Reference

All 13 commands | Command | Subcommands | Purpose | |---------|-------------|---------| | `extract` | β€” | Extract text from a single document (path, URL, or stdin) | | `batch` | β€” | Extract from multiple documents in parallel | | `detect` | β€” | Identify MIME type of a file | | `formats` | β€” | List all supported formats and MIME types | | `version` | β€” | Show Xberg version | | `cache` | `stats`, `clear`, `manifest`, `warm` | Manage extraction cache and models | | `doctor` | β€” | Probe configured backends and report what will actually execute | | `serve` | β€” | Start REST API server (default: ) | | `mcp` | β€” | Start MCP server (stdio or HTTP transport) | | `api` | `schema` | Output OpenAPI 3.1 specification | | `embed` | β€” | Generate embeddings for text (local or provider-hosted) | | `chunk` | β€” | Split text into chunks (text, markdown, YAML, or semantic) | | `completions` | β€” | Generate shell completion scripts | Run `xberg --help` or `xberg --help` for detailed options.

Documentation

Full guides, API references for every binding, format reference, and configuration docs live at xberg.io.


Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Join our Discord community for questions and discussion.


Part of Xberg.dev

Xberg is one of six open-source projects from Kreuzberg, Inc.:


License

MIT License (MIT) β€” see LICENSE for details.