Extract PDF text in your browser with LiteParse for the web

Source: simonwillison.net, 2026-04-23 Type: article By: simon-willison Valid as of: 2026-04-23

핵심 Takeaway

  • liteparse를 완전 브라우저 실행 버전으로 포팅 — PDF.js + Tesseract.js 기반, 서버리스, 개인정보 외부 전송 없음
  • “Spatial text parsing”: 멀티컬럼 PDF 레이아웃 휴리스틱 인식 → 텍스트를 의미 있는 선형 순서로 추출 (AI 모델 불사용)
  • claude-code + Opus 4.7로 59분 만에 완성 — 코드 한 줄도 보지 않은 순수 vibe coding, 단 plan.md + red/green TDD + small commits 규율 적용
  • “small commits along the way” 프롬프팅 패턴: 에이전트가 하나씩 문제 해결하도록 유도하며 코드 이해·리뷰를 쉽게 만듦
  • Vibe coding 책임성 기준 실증: 블래스트 레이디어스 최소화(정적 웹앱) + 개인정보 미전송 + 명확한 요구사항 → “코드 리뷰 없이도 평판을 걸 수 있는” 결과물 가능

상세 요약

LiteParse 개요

liteparse는 LlamaIndex의 오픈소스 PDF 텍스트 추출 도구. Node.js CLI로 설계되어 에이전트용 도구로 사용된다. AI 모델 불사용이 특징이며, PDF.js를 기반으로 OCR 필요 시 Tesseract.js(또는 다른 OCR 엔진)로 폴백한다.

핵심 기능은 Spatial text parsing: PDF 레이아웃 특성상 텍스트가 논리적 순서와 다르게 저장되는 문제를 영리한 휴리스틱으로 해결. 멀티컬럼 감지, 텍스트 그룹핑 등을 통해 선형 흐름으로 재구성. Visual Citations with Bounding Boxes 패턴도 지원 — RAG Q&A 답변에 PDF 크롭 이미지를 함께 제공해 신뢰도 향상.

브라우저 포팅

Simon Willison이 Claude와의 탐색 대화에서 “CLI에만 머물 이유 없다”는 결론 도달. LiteParse가 PDF.js + Tesseract.js 기반인데, 둘 다 브라우저에서 동작하는 라이브러리이기 때문.

결과물: https://simonw.github.io/liteparse/ — 드래그앤드롭으로 PDF 업로드, OCR 선택, 텍스트+JSON 출력, 복사 버튼. 모든 처리가 브라우저에서 완결.

Vibe coding 워크플로우 실증

Claude Code(Opus 4.7)를 사용한 순수 vibe coding 과정:

  1. iPhone에서 시작: Claude 앱으로 LiteParse 탐색, 브라우저 가능성 확인
  2. plan.md 작성: Claude Code에게 plan.md 파일로 구현 계획 작성 지시 → 계획을 반복적으로 수정 (“WILL do the canvas-encode swap”)
  3. build it: 단 두 단어 프롬프트로 구현 시작, 이후 대부분 자율 작동
  4. small commits along the way: 코드 이해·리뷰 용이, 에이전트 집중도 향상 (검증되지 않은 직관)
  5. npx vite: 별도 Claude Code 세션에서 개발 서버 운영 — 실시간 변경 반영 확인
  6. OpenAI Codex(GPT-5.5)로 독립 검증: “node.js CLI와 web 버전의 차이점 설명해줘” → 단축키 없이 구현됨 확인

총 소요 시간: 59분 (빌드 단계만).

Vibe coding 정의 재확인

Simon Willison은 Karpathy 원래 정의에 엄격히 따른다: vibe coding = AI를 사용하고 코드를 전혀 보지 않는 것. AI 보조 개발은 vibe coding이 아님.

이 프로젝트가 “순수 vibe coding”에도 책임감 있을 수 있는 이유:

  • 정적 웹앱 → 버그 블래스트 레이디어스 최소 (그냥 안 됨, 그 이상의 피해 없음)
  • 개인정보 외부 미전송 → 보안 감사 불필요
  • 경험·지식이 여전히 필요 (“LiteParse를 브라우저로 포팅할 수 있다”는 인식 자체가 엔지니어링 역량)

연결되는 위키 페이지