logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·28.10.26
← Back to news

PaperPilot – Zero-Cloud, Pure-Rust PDF Engine with WASM and MCP

Original article
github.com|218 points|77 comments|by vardhan1237|Oct 26, 2026

PaperPilot: The Local-First, Rust-Powered PDF Engine

Developer

PaperPilot is a comprehensive toolkit for PDF and document manipulation, engineered entirely in Rust. It is designed to function as a local AI copilot for your documents, ensuring that your data never leaves your machine.

The core philosophy of PaperPilot is expressed as: Privacy=Local Processing−Cloud Dependencies\text{Privacy} = \text{Local Processing} - \text{Cloud Dependencies}Privacy=Local Processing−Cloud Dependencies

Cloud-based processing →\rightarrow→ Zero-Cloud Architecture. No Chromium dependencies, no C++ runtimes, and absolutely no external API calls for core processing.


🛠️ Versatile Deployment "Surfaces"

The same high-performance Rust engine powers multiple interfaces depending on your workflow:

InterfacePrimary Use CaseKey Characteristic
MCP ServerAI Agents (Claude, Cursor, etc.)Enables agents to merge, split, and OCR PDFs
CLIAutomation & ScriptingHigh-speed batch processing
WASMBrowser-based ToolsZero-install; processed in browser memory
Desktop AppVisual ManagementTauri + Svelte GUI with markup and diffing
Local REST APIThird-party IntegrationAccessible via Python, Node, or n8n

🤖 AI Agent Integration (MCP)

PaperPilot leverages the Model Context Protocol (MCP) to give coding agents like Codex, Claude Code, Kimi Code, Pi, and Cursor direct access to PDF manipulation tools via a local stdio server.

Quick Setup

You can generate the necessary configuration for your specific client using the following command: paperpilot-mcp --client-config codex (Replace codex with claude-code, kimi-code, pi, claude-desktop, or cursor).

To manually integrate with Claude Desktop, append the following to your claude_desktop_config.json:

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

Once restarted, you can simply tell your AI: "Merge these two PDFs and compress the result."


💻 Command Line Interface (CLI)

For those who prefer the terminal, PaperPilot offers powerful one-liners:

# Combine multiple documents
paperpilot merge --inputs doc1.pdf doc2.pdf --output merged.pdf

# Reduce file size (75% quality)
paperpilot compress --input in.pdf --quality 75 --output compressed.pdf

# Rotate specific pages (1, 3, 4, 5) by 90 degrees
paperpilot rotate --input in.pdf --pages 1,3-5 --angle 90 --output out.pdf

🏗️ Build and Installation

Prerequisites

  • Rust 1.75+
  • Node.js
  • pnpm

From Source

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

For the Desktop GUI:

cd apps/desktop
pnpm install
pnpm tauri dev

🚀 Capabilities & Roadmap

Current Features (v0.6)

  • Organization: Merge, split, rotate, delete, reorder, extract, N-up grid, and booklet imposition.
  • Optimization: Advanced compression.
  • Extraction: Plain text and OCR (utilizing pure-Rust PaddleOCR via rten).
  • Security: PII scanning, deep sanitization, watermarking, and signature validation/removal.
  • Office Data: Conversion of Excel files to JSON or CSV.

Future Milestones

  • v0.7: PDF↔Markdown / HTML / JSON\text{PDF} \leftrightarrow \text{Markdown / HTML / JSON}PDF↔Markdown / HTML / JSON
  • v0.8: Export to Word, Excel, and PowerPoint.
  • v0.9: Encryption, decryption, redaction, and form annotations.
  • v1.0: Rendering, flattening, repair, PDF/A compliance, and Bates numbering.

📐 System Architecture

PaperPilot uses a modular workspace to ensure consistent behavior across all platforms.


🔌 Integration Options

Web Embedding

Integrate PDF tools directly into your website with a simple script:

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

Local REST API

Start the server: paperpilot serve --port 7823. Example request:

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

Full documentation is available via Swagger at http://localhost:7823/docs.


🤝 Contribution & Enterprise

  • Open Source: Contributions are welcome! Please provide bug reports with sample PDFs or suggest new tools.
  • Enterprise Edition: A separate version is under development featuring SSO, RBAC, Audit Logs, and DLP.