PDF 업로드 없이 합치기, PaperPilot 웹과 CLI 고르는 법
PDF 몇 개만 묶으면 되는데, 웹 도구에 올리자니 문서를 외부 서버로 보내도 되는지 망설여진다. PaperPilot의 웹 버전과 CLI는 파일을 어디서 처리할까?

- PaperPilot은 브라우저·CLI·MCP 등에서 쓰는 Rust 기반 PDF 도구다. 파일 병합만 하려면 AI가 필요 없다.
- 웹 버전은 브라우저 안에서, CLI 병합은 로컬 파일을 읽고 저장하는 방식으로 처리한다.
- 현재 저장소의 CLI는
--input을 사용한다. README 예제와 다르므로 설치한 실행 파일의 도움말부터 확인한다.
일회성 병합은 웹에서, 반복 작업은 명령으로 시작한다
PDF 몇 개를 한 파일로 묶으려는데 낯선 서버에 문서를 올리기 꺼려진다면, 파일을 사용자 기기에서 처리하는 도구가 선택지가 된다. 10월 26일 Hacker News에 소개된 PaperPilot은 Rust로 만든 PDF 엔진을 브라우저와 명령줄, AI 연결용 MCP 서버 등으로 제공한다.
먼저 한 번 할 작업인지, 같은 방식으로 반복할 작업인지를 정하면 된다. 한 번 합칠 파일을 고르는 일은 브라우저에서 시작하기 쉽다. 같은 입력·출력 규칙을 반복하려면 CLI가 적합하고, 이미 쓰는 AI에게 파일 작업을 지시하려는 경우에 MCP를 검토하면 된다.
| 지금 할 일 | 출발점 | 작업 방식 |
|---|---|---|
| 설치 없이 PDF 몇 개를 합친다. | 브라우저 | 웹 도구에서 파일을 선택하고 결과를 받는다. |
| 같은 병합을 명령이나 스크립트로 반복한다. | CLI | 입력 파일과 출력 경로를 지정한다. |
| AI 대화에서 PDF 작업을 요청한다. | MCP | 클라이언트가 로컬 도구를 호출하고 결과를 받는다. |
웹페이지를 열어도 PDF는 브라우저에서 가공할 수 있다
PaperPilot의 공식 웹 도구는 WebAssembly로 PDF를 브라우저 메모리에서 처리하는 방식이다. 웹에서 앱을 불러오는 것과 선택한 문서를 서버로 전송하는 것은 별개의 동작이다.
공개된 웹 워커 구현에서는 병합 요청을 받으면 파일 데이터를 WasmPdfEngine.merge에 전달한다. 문서 가공을 브라우저에서 실행하도록 만든 구조다. 개발자는 공식 안내에서 Network 탭을 열어 작업 중 파일 업로드가 발생하는지 확인할 수 있다고 설명한다.
일회성 작업이라면 웹 도구의 PDF 병합 기능으로 시작해 결과 파일의 페이지 순서와 내용을 확인하면 된다. 서버에 올리지 않는다는 특성과 결과 문서가 원하는 순서로 만들어졌다는 확인은 따로 챙길 일이다.
README를 복사하기 전에 실행 파일의 옵션을 확인한다
CLI에서는 입력 파일 목록과 출력 파일 경로를 명시한다. 다만 10월 26일 기준 README는 병합 예제에 --inputs를 쓰고, 현재 main 브랜치의 명령 정의는 --input을 사용한다. 설치한 실행 파일에서는 먼저 다음 도움말을 확인해야 한다.
paperpilot merge --help 도움말에 --input이 표시되는 실행 파일이라면 다음과 같이 입력한다. 파일명은 실제 병합할 PDF와 새 결과 파일명으로 바꾼다.
paperpilot merge --input doc1.pdf doc2.pdf --output merged.pdf 병합 처리 코드는 첫 파일을 읽고 나머지 입력을 병합한 뒤 지정한 경로에 저장한다. 결과를 원본과 비교할 수 있도록 출력에는 새 파일명을 사용하는 편이 좋다. 명령을 반복 업무에 넣기 전에는 실제 사용할 파일로 순서와 페이지 수를 확인한다.
로컬 도구의 결과는 연결한 AI 클라이언트로 돌아간다
MCP는 AI 클라이언트가 PaperPilot의 기능을 호출하는 연결 방식이다. PDF를 합치는 엔진이 로컬에서 실행된다는 사실만으로 연결한 AI 서비스까지 기기 안에서 작동한다고 볼 수는 없다.
그렇다고 병합 요청마다 원본 PDF 전체가 자동으로 AI에 전달되는 것도 아니다. 현재 MCP 병합 구현은 로컬 파일을 합친 뒤 성공 상태와 메시지, 출력 경로를 반환한다. 도구 결과는 JSON 형태의 텍스트로 클라이언트에 전달된다.
따라서 AI 연결을 선택할 때는 도구가 반환하는 정보와 클라이언트가 추가로 읽는 파일, 사용하는 모델의 처리 위치를 함께 봐야 한다. 파일명이나 경로도 업무 정보를 담을 수 있다. 단순 병합이라면 브라우저나 CLI로 끝낼 수 있고, AI를 연결하려면 그 연결이 필요한 작업부터 정하는 편이 분명하다.