한 줄 요약
firecrawl/anydoc는 Word·PowerPoint·Excel·OpenDocument·RTF·EPUB·CSV·PDF를 하나의 문서 모델을 거쳐 GitHub-Flavored Markdown으로 바꾸는 Rust 라이브러리·CLI다. Node.js, Python, WebAssembly 바인딩과 Agent Skill을 함께 제공한다.
공식 확인 — anydoc 저장소
지원 범위와 처리 구조
- 지원 형식은
.doc/.docx/.docm,.ppt/.pps/.pot/.pptx계열,.xls/.xlsx/.xlsm/.xlsb,.odt/.ods/.odp,.rtf,.epub,.csv,.pdf다. - 파일 확장자보다 바이트의 시그니처를 우선해 형식을 감지한다. CSV처럼 시그니처가 없는 형식은 확장자나
--format지정이 필요하다. - 포맷별 파서가 공통
Document모델로 모인 뒤 동일한 Markdown serializer를 거친다. 제목·목록·표·각주·speaker notes·내장 asset 등의 구조를 보존하는 설계다. - Rust 크레이트 외에
@firecrawl/anydoc(Node.js),firecrawl-anydoc(Python),@firecrawl/anydoc-wasm(브라우저) 경로가 있다. 저장소의Cargo.toml기준 Rust 1.88 이상, 버전은 캡처 시점0.1.7이다.
로컬 처리와 에이전트 스킬
- README는 anydoc을 순수 Rust·무 ML 모델·무 외부 서비스 변환기로 설명한다. 브라우저 WebAssembly 데모도 파일을 로컬에서 변환하고 머신 밖으로 보내지 않는다고 명시한다.
- Agent Skill은
npx skills add firecrawl/anydoc로 설치하며, CLI는npx -y @firecrawl/anydoc <file>로 실행한다.npx가 첫 실행 때 플랫폼용 사전 빌드 바이너리를 다운로드한다는 점은 공식 README에 명시되어 있다. - 다만 “로컬 처리”는 anydoc 변환 경로에 대한 설명이다. 이미지 전용·스캔 PDF는 anydoc이 OCR하지 못해
Unsupported가 되며, README와 스킬 문서는 OCR이 필요하면 호스팅된 Firecrawl Parse를 사용하라고 구분한다. - CLI는 프롬프트를 표시하지 않고, 변환 실패·지원하지 않는 형식·암호화·리소스 한도 초과 등을 오류로 반환한다. 에이전트 자동화에 넣을 때는 실패 파일을 별도 큐로 보내는 처리가 필요하다.
Hermes Agent 주장과 검증 경계
사용자 제공 주장
사용자가 제공한 메시지는 “Hermes Agent가 PDF, Word, PowerPoint, Excel, OpenDocument, RTF, EPUB을 읽으면 깨끗한 Markdown으로 자동 변환하고, 모두 로컬에서 처리하며, anydoc이 제로 셋업으로 첫 사용 시 자동 설치된다”는 내용이다. 이 원문은 별도 보존했다.
이번 캡처에서 공식적으로 확인한 범위
- anydoc 측은 Agent Skill과 호환 에이전트 목록,
npx첫 실행 시 바이너리 다운로드, 지원 포맷과 변환 경로를 공식적으로 설명한다. - 반면
NousResearch/hermes-agent의 캡처된 main 커밋(eb8421ba9864cd58b0cf246cdffc6d45f6949372)에서 확인한 문서 추출 스킬은web_extract, pymupdf, marker-pdf를 중심으로 설명하고, Word·PowerPoint는 별도 bundled skill로 안내한다. 검토한 Hermes 문서와 저장소 트리에서는firecrawl/anydoc를 직접 명시한 통합 경로를 확인하지 못했다. - 따라서 “anydoc 자체가 에이전트용 문서 변환 스킬을 제공한다”는 공식 확인과 “Hermes Agent가 anydoc을 첫 사용에 자동 설치·호출한다”는 사용자 제공 주장을 분리해 기록한다. 후자는 Hermes의 특정 릴리스·브랜치·로컬 변경분이 제시되기 전까지 미검증으로 둔다.
프로젝트 측정치와 프로젝트 측 벤치마크
GitHub API를 2026-08-07 12:18 KST에 조회한 결과, 저장소는 MIT 라이선스·Rust 프로젝트이며 stars 8,768, forks 414, open issues 36, 생성 시각 2026-08-03T16:36:14Z, 마지막 push 2026-08-06T20:16:04Z였다. 이 수치는 빠르게 변하는 라이브 스냅샷이다.
README의 100개 실문서·14개 형식 벤치마크는 anydoc의 median 4.4ms, 지원 형식 14/14, 점수 81을 제시한다. 다른 변환기와의 품질 점수는 Claude Sonnet 5 기반 블라인드 LLM judge로 산출했다고 프로젝트가 설명하므로, 독립 재현 결과가 아니라 저장소가 보고한 프로젝트 주장으로 분류한다. 이번 저장 과정에서는 벤치마크나 패키지 설치·실행을 재현하지 않았다.
실무적 판단
- 혼합 문서 입력 파이프라인에 적합: 여러 Office 계열 파일을 포맷별 예외 처리 없이 Markdown·문서 모델로 통일해야 할 때 유용하다.
- Hermes 연동의 후보 레이어: Agent Skill 표준과 CLI가 있어 Hermes 같은 스킬 기반 에이전트에 연결하기 쉽지만, 자동 설치·자동 라우팅은 실제 Hermes 릴리스 또는 실행 로그로 별도 검증해야 한다.
- OCR 경계가 명확함: 텍스트 기반 PDF는 로컬 처리 대상이지만 스캔·이미지 전용 PDF는 OCR 서비스나 별도 OCR 도구가 필요하다. 이 경계는 기존 2026-07-15-pytorchkr-topic-11255-pdf-inspector-rust-pdf-markdown와 함께 비교할 수 있다.
- 운영 전 확인: Node CLI는 Node 20+가 필요하고,
npx첫 실행 시 플랫폼 바이너리를 받는다. 공급망·실행 권한·네트워크 사용 정책에 맞춰 패키지와 버전을 고정하는 편이 안전하다.
관련 노트
- hermes-agent — Hermes Agent의 스킬·게이트웨이·파일 처리 생태계
- moc-dev-tools — 개발 도구 MOC의 데이터·문서 섹션
- moc-ai-agents — AI 에이전트 관련 MOC
- 2026-07-15-pytorchkr-topic-11255-pdf-inspector-rust-pdf-markdown — Firecrawl의 PDF 처리 인접 프로젝트
출처 및 무결성
- 원 저장소: https://github.com/firecrawl/anydoc
- 캡처 커밋:
4a45addbd607e8b59f0c263bca26aab228e10370 - README 원문 URL: https://raw.githubusercontent.com/firecrawl/anydoc/4a45addbd607e8b59f0c263bca26aab228e10370/README.md
- README 원문 바이트 SHA-256:
175908aa41459fa8485cba002c1bd8306f78a189b87b923c4ec81895ab35721c - 저장된 raw 본문 SHA-256(앞의 separator newline 포함):
103097dc59f642cef519ce5458f28f47aa9965a0e5009da784d9ab176635a8c6 - Hermes 검증 포인터: raw source:
github-nousresearch-hermes-agent-file-reading