Merge PDFs Locally with PaperPilot: Browser or CLI?
You just want to combine a few PDFs, but uploading work documents to an unfamiliar web tool feels wrong. Does PaperPilot’s browser app keep them on your machine, or is the CLI safer?

- PaperPilot exposes a Rust PDF engine through a browser app, CLI and MCP server, among other interfaces. Merging files does not require AI.
- The browser version processes PDFs in browser memory; the CLI merge reads and writes local files.
- The current CLI source uses
--input, while the README shows--inputs. Check your executable’s help before copying a command.
Browser for a one-off job, CLI for a repeatable one
If merging a few PDFs makes you hesitate at an upload button, local processing offers another route. PaperPilot, featured on Hacker News on October 26, is a Rust document toolkit available through a browser app, command line and MCP server.
Choose the interface around how you work. A browser is a convenient starting point for selecting a few files once. A CLI lets you express the same operation as a repeatable command. MCP makes sense when you want an assistant you already use to invoke the file operation.
| Job | Starting point | Interaction |
|---|---|---|
| Combine a few PDFs without installing an app | Browser | Select files in the web tool and download the result. |
| Repeat a merge from commands or scripts | CLI | Specify input files and an output path. |
| Ask an assistant to perform PDF operations | MCP | The client calls the local tool and receives its result. |
Loading a web app does not require uploading the document
The official browser app is designed to process PDFs in browser memory using WebAssembly. Downloading the application and sending a selected document to a server are separate operations.
In the published worker implementation, a merge request passes the file data to WasmPdfEngine.merge. The processing runs through the browser’s worker. The project’s documentation suggests inspecting the Network tab during a job to check for file uploads.
For a one-off task, start with the web app’s PDF merge tool and inspect the resulting page order and contents. Local processing answers where the operation happens; opening the output answers whether you assembled the document you intended.
Check the installed binary before copying the README
The CLI takes a list of inputs and an output path, but there is a documentation mismatch. As of October 26, the README example uses --inputs, while the current main-branch command definition uses --input. Start with the help for the executable you installed:
paperpilot merge --help If it lists --input, the corresponding command is:
paperpilot merge --input doc1.pdf doc2.pdf --output merged.pdf Replace the example names with your PDFs and a new output filename. The merge handler loads the first file, merges the remaining inputs and saves to the output path. Keeping the originals separate makes it easier to compare the result. Check page count and order with the documents you intend to process before putting the command into a recurring workflow.
A local engine and an AI connection are separate choices
MCP lets an AI client invoke PaperPilot’s operations. Running that tool locally does not establish where the connected assistant’s model runs or what the client sends to it.
It also does not mean every merge automatically sends the original PDFs to the model. The current MCP merge handler returns success status, a message and the output path after processing local files. The server serializes the operation result as JSON text for the client.
When choosing an AI workflow, check the tool’s returned information, any additional files the client reads, and the model’s processing location. Even filenames and paths can contain work information. For simple merging, the browser or CLI completes the job without adding an assistant to the workflow.