Ocr
Claude Skills for case.dev — legal AI vaults, OCR, transcription, and search
npx -y skills add CaseMark/legal-plugin --skill ocrAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Processes documents through case.dev OCR for text and table extraction. Supports PDF and image files up to 500MB with page-level and word-level output. Use when the user mentions "OCR", "text extraction", "scan document", "digitize", "extract text from PDF", or needs word-level positional data from documents.
SKILL.md
3.0 KB, 711 tokens by cl100k_base, as published. Nobody here has run it
case.dev OCR
Production-grade document OCR with table extraction and word-level positional data. Processes PDFs and images (PNG, JPG, TIFF, BMP, WEBP) up to 500MB.
Requires the casedev CLI. See setup skill for installation and auth.
Process a Document
Submit a document URL for OCR:
casedev ocr process --document-url "https://example.com/contract.pdf" --json
Flags:
--document-url/--url(required) — publicly accessible URL or presigned vault URL--document-id— optional identifier to tag the job--engine— OCR engine override
Returns a job ID and initial status.
Check Job Status
casedev ocr status JOB_ID --json
Returns: ID, status, page count, created/completed timestamps.
Statuses: queued -> processing -> completed or failed.
Watch Until Complete
casedev ocr watch JOB_ID --json
Polls until the job finishes. Flags:
--interval/-i— poll interval in seconds (default: 3)--timeout/-t— max wait in seconds (default: 900)
Word-Level Data
Retrieve word-level OCR output for a vault object:
casedev ocr words --vault VAULT_ID --object OBJECT_ID --json
This requires the document to be in a vault and have completed OCR ingestion. The object must be a PDF or image (audio/video files are rejected).
Flags:
--page— specific page number--word-start— starting word index--word-end— ending word index
Returns per-page word arrays with text, word index, and confidence scores.
Uses focused vault if set via casedev focus set --vault.
Common Workflow
OCR a document from a vault
# 1. Upload to vault (triggers automatic ingestion + OCR)
casedev vault object upload ./scanned-contract.pdf --vault VAULT_ID --json
# 2. Check ingestion status
casedev vault object list --vault VAULT_ID --json
# 3. Get word-level data
casedev ocr words --vault VAULT_ID --object OBJECT_ID --json
# 4. Get specific page range
casedev ocr words --vault VAULT_ID --object OBJECT_ID --page 3 --json
OCR an external document
# 1. Submit
casedev ocr process --document-url "https://storage.example.com/doc.pdf" --json
# 2. Watch
casedev ocr watch JOB_ID --json
Troubleshooting
"Invalid file type for OCR": OCR only supports PDFs and images (application/pdf, image/*). Check the object's content type with casedev vault object list.
"Invalid object ID for this vault": Run casedev vault object list --vault VAULT_ID to see valid object IDs.
Job stuck in "processing": Increase watch timeout with --timeout 1800. Large documents (100+ pages) take longer.
"OCR job failed": The document may be corrupted or in an unsupported format. Re-upload and retry.
Gives 0 of the 12 instructions most pdf office docs skills give in 711 tokens
Counted across 636 of the 690 authors here whose files we hold, read 2026-08-07
- extract text using pdfplumberin 89 of 636, across 23 files
- create PDFs using reportlabin 83 of 636, across 16 files
- read forms.md to fill out pdf formsin 80 of 636, across 13 files
- OCR scanned PDFs using pytesseractin 77 of 636, across 10 files
- merge or split PDFs using qpdfin 70 of 636, across 3 files
- use excel formulas instead of hardcoded calculated valuesin 68 of 636, across 13 files
- unpack edit xml and repack existing documentsin 63 of 636, across 8 files
- document sources for hardcoded valuesin 61 of 636, across 9 files
- write minimal python code without unnecessary commentsin 59 of 636, across 7 files
- run the recalculation script after adding or modifying formulasin 59 of 636, across 7 files
- fix all identified formula errors and recalculatein 58 of 636, across 6 files
- format years as text stringsin 57 of 636, across 5 files
Said here and by no other author read
- use the casedev CLI
- submit the document URL for OCR
- check job status until complete
- watch the job until finished
- retrieve word-level OCR output from the vault
- increase watch timeout for large documents
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.