PaperPilot README

The project's README from github.com/KrushnaVardhanReddy/PaperPilot. As one markdown file: README.md.

PaperPilot

PDF tools for your AI agent — and for you. Pure Rust. Runs locally. Files never leave your machine.

PaperPilot demo

Try it in your browser → · Download · Roadmap

PaperPilot is a PDF and document toolkit written in Rust. The same engine runs as:

Surface Use it for
MCP server Give Codex, Claude Code, Kimi Code, Pi, Claude Desktop, Cursor, or any MCP client the ability to merge, split, OCR, and compress PDFs
CLI Batch and scripted workflows
Browser (WASM) Zero-install tools; files are processed in browser memory, nothing is uploaded
Desktop app Tauri + Svelte GUI with viewer, markup, and diff
Local REST API Call it from Python, Node, or n8n at localhost:7823

No Chromium, no C++ runtime, no cloud calls.


Quick start

1. Use it with your coding agent (MCP)

Codex, Claude Code, Kimi Code, and current Pi releases connect to the same local stdio server. See the coding agent setup guide for each client's configuration and verification steps. Builds from this source can also print ready-to-merge configuration:

paperpilot-mcp --client-config codex
# Also: claude-code, kimi-code, pi, claude-desktop, cursor

Download paperpilot-mcp from Releases, then add it to claude_desktop_config.json:

{
  "mcpServers": {
    "paperpilot": {
      "command": "/path/to/paperpilot-mcp"
    }
  }
}

Restart Claude and try: "Merge these two PDFs and compress the result."

2. Use the CLI

# Merge
paperpilot merge --inputs doc1.pdf doc2.pdf --output merged.pdf

# Compress
paperpilot compress --input in.pdf --quality 75 --output compressed.pdf

# Rotate pages 1, 3–5 by 90°
paperpilot rotate --input in.pdf --pages 1,3-5 --angle 90 --output out.pdf

3. Use it in the browser

Go to usepaperpilot.com. Open your browser's Network tab while you work — you'll see no file uploads.

4. Build from source

git clone https://github.com/KrushnaVardhanReddy/PaperPilot.git
cd PaperPilot
cargo build --release -p paperpilot-cli -p paperpilot-mcp -p paperpilot-gateway

Desktop app:

cd apps/desktop && pnpm install && pnpm tauri dev

Requires Rust 1.75+, Node.js, and pnpm.


What it can do today (v0.6)

Organize: merge, split, rotate, delete pages, reorder pages, extract pages, booklet imposition, N-up grid Optimize: compress Extract: plain text, OCR (pure-Rust PaddleOCR via rten) Security: watermark, validate signatures, remove signatures, PII scan, deep sanitize Office data: Excel → JSON, Excel → CSV

Coming next (see ROADMAP.md):


Why another PDF tool?

Benchmarks

Run cargo bench --workspace to reproduce. Methodology and results: SYSTEM_BENCHMARK_REPORT.md.


Architecture

Desktop (Tauri) · CLI · REST (Axum) · MCP (stdio) · WASM (browser / edge)
                              │
                       Rust core workspace
   paperpilot-core · paperpilot-pdf · paperpilot-nlp · paperpilot-gateway
   paperpilot-mcp · paperpilot-wasm · paperpilot-storage

Embed in your own site

<script src="https://cdn.usepaperpilot.com/embed.js" data-tools="merge,compress,ocr"></script>
<div id="paperpilot-widget"></div>

Local REST API

paperpilot serve --port 7823
curl -X POST http://localhost:7823/api/v1/pdf/merge \
  -H "Content-Type: application/json" \
  -d '{"inputs": ["a.pdf", "b.pdf"], "output": "out.pdf"}'

Swagger docs at http://localhost:7823/docs.


Contributing

Issues and PRs are welcome. Good first contributions: bug reports with a sample PDF, new tool requests, and docs fixes.

License

Community Edition (this repo): Apache 2.0. It includes the CLI, MCP server, REST gateway, WASM engine, and desktop app.

An Enterprise Edition (SSO, RBAC, audit logs, DLP) is developed separately.

PaperPilot (KrushnaVardhanReddy/PaperPilot)

Searching Database…

What is this?PaperPilot is a PDF and document toolkit written in pure Rust that merges, splits, OCRs, compresses and otherwise manipulates PDFs entirely on your own machine.
Is this a single app, or several different tools?The same Rust engine ships as five surfaces: an MCP server for AI agents, a CLI for scripts, a WASM build that runs in the browser, a Tauri+Svelte desktop app, and a local REST API.
How do I start using it?You can try the tools instantly in your browser at usepaperpilot.com with no install, download the desktop app or MCP server binary from Releases, or build the CLI and REST API from source with Cargo.
What can it not do yet?Encryption, decryption, signing, redaction, forms, annotations, rendering, repair, comparison, PDF/A and Bates numbering are all still on the roadmap for v0.9 and v1.0 and aren't in the current v0.6 release.
Which coding agents can use it over MCP?It runs as a local stdio MCP server that Codex, Claude Code, Kimi Code, Pi, Claude Desktop, Cursor, and any other MCP-compatible client can connect to.
Where do my documents go when I use it?Nowhere - the Rust core and WASM build process files entirely on your machine or in browser memory, with no uploads and no cloud calls.
What's the difference between the Community and Enterprise editions?The Community Edition in this repo (CLI, MCP server, REST gateway, WASM engine, desktop app) is free and Apache 2.0; a separately developed Enterprise Edition adds SSO, RBAC, audit logs and DLP for organizations.
What document operations are supported right now?v0.6 covers PDF organizing (merge, split, rotate, reorder, extract, booklet, N-up), compression, plain-text and OCR extraction, watermarking, signature validation/removal, PII scanning, deep sanitize, and Excel to JSON/CSV conversion.
Why did the author build another PDF tool?To be private by default, treat AI agents (MCP) as a first-class use case rather than an afterthought, and keep one Rust engine shared across CLI, MCP, REST, WASM and desktop so behavior stays consistent everywhere.
How does the OCR work without any cloud service?It uses a pure-Rust implementation of PaddleOCR via the rten crate, so text extraction from scanned pages runs locally without any external API.
Which topics is it in?rust
Size
62.9 MB
Stars
570
Updated
CommitOct 26
Age
28d
Commits · 90 Days