Skip to main content

crw-parse

Parse a local or remote FILE (PDF) into markdown or structured JSON with fastCRW. Use when the source is a file on disk — "parse this PDF", "extract text from this document", "read this report", "convert PDF to markdown". Routing rule: URL → use crw-scrape; file on disk → use crw-parse. Step 5 of the crw workflow ladder.

소스 정보

저장소
fastcrw/crw
최근 소스 활동
2026년 9월 24일 10:37
감지된 SKILL.md 언어
영어
스타
1,134
포크
94

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
crw-parse
description
Parse a local or remote FILE (PDF) into markdown or structured JSON with fastCRW. Use when the source is a file on disk — "parse this PDF", "extract text from this document", "read this report", "convert PDF to markdown". Routing rule: URL → use crw-scrape; file on disk → use crw-parse. Step 5 of the crw workflow ladder.
license
AGPL-3.0
metadata
{"author":"us","version":"0.3.0","homepage":"https://fastcrw.com","repository":"https://github.com/fastcrw/crw"}
allowed-tools
Bash(crw:*) Bash(curl:*) Read
# crw-parse — local file extraction ## When to use - The source is a **file on disk** (PDF), not a web page. - Step 5 in the [crw ladder](../crw/SKILL.md). If you have a URL, use [crw-scrape](../crw-scrape/SKILL.md) (step 2) instead — scrape handles remote PDFs via URL. If you want a typed JSON object from a page, see [crw-extract](../crw-extract/SKILL.md) (step 6). - PDF only. DOCX, XLSX, and other office formats are **not yet supported** (unlike Firecrawl's document endpoint). If you have a non-PDF document, convert it to PDF first or use an external tool. ## Quick start **CLI** — `crw scrape` auto-detects a local file path and routes to the PDF parser; there is no separate `crw parse` subcommand: ```bash crw scrape report.pdf # → markdown to stdout crw scrape report.pdf --format json --extract '{"type":"object","properties":{"title":{"type":"string"}}}' -o out.json ``` **MCP** (inside an agent harness): ``` crw_parse_file( contentBase64="<base64-encoded PDF bytes>", filename="report.pdf", formats=["markdown"], maxLength=0 # For structured JSON output: # formats=["json"], # jsonSchema={"type":"object","properties":{"title":{"type":"string"}}} ) ``` **REST** — multipart upload, 50 MB limit, PDF only: ```bash curl -X POST "$CRW_API_URL/v2/parse" \ -H "Authorization: Bearer $CRW_API_KEY" \ -F "file=@report.pdf" \ -F 'options={"formats":["markdown"]}' ``` ## Options | Need | CLI (`crw scrape <path>`) | MCP field | REST `options` field | |------|--------------------------|-----------|----------------------| | Output format | `--format markdown\|json\|text\|links` | `formats` | `formats` | | Structured JSON | `--extract '<schema>'` | `jsonSchema` + `formats:["json"]` | `jsonSchema` + `formats:["json"]` | | AI summary | `--summary` | `formats:["summary"]` | `formats:["summary"]` | | Summary prompt | `--prompt "TEXT"` | — | `summaryPrompt` | | Limit output chars | — | `maxLength` (0 = unbounded) | `maxContentChars` | | Force parser | — | `parsers:["pdf"]` | `parsers:["pdf"]` | Formats `json` and `summary` require a server-side LLM configured in `[extraction.llm]` of the server config (or via `crw setup` for the CLI). ## Honest gaps - **PDF only.** The server rejects anything without a `%PDF-` magic header. - **No OCR.** Scanned/image-only PDFs have no extractable text layer; they return empty markdown with a warning. There is no `attempt_scanned` option — scanned PDFs are a known gap. - **50 MB cap** on REST uploads (per-route hard limit). The CLI passes bytes in-process, so it shares the same underlying limit. - **LLM required for `json`/`summary`.** Without a configured LLM the request returns a 400. ## Tips - **Read the result, don't stream it.** For large PDFs, write to `.crw/` and `grep`/`head` the output: `crw scrape big.pdf -o .crw/big.md`. - **MCP requires base64.** Read the file in your agent, base64-encode the bytes, pass as `contentBase64`. The `filename` field is optional but helps with error messages. - **Scanned PDFs return empty markdown — no warning field.** If the PDF has no extractable text layer, the REST response returns empty markdown with no `warning` field in the envelope. A warning (e.g. `warning: pdf_partial_text`) only appears on the CLI's stderr, never in the REST/MCP response. If you get empty markdown, assume a scanned/image-only PDF and handle it at call-site. ## See also - [crw-scrape](../crw-scrape/SKILL.md) — fetch a URL (including a remote PDF served over HTTP) - [crw-extract](../crw-extract/SKILL.md) — typed JSON object from a page against a schema - [crw](../crw/SKILL.md) — ladder overview and routing rules
GitHub에서 보기