Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100+ languages.
$ npx -y skills add paddlepaddle/paddleocr --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: paddlepaddle/paddleocr
What's inside

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Русский | Español | العربية
PaddleOCR converts PDF documents and images into structured, LLM-ready data (JSON/Markdown) with industry-leading accuracy. With 70k+ Stars and trusted by top-tier projects like Dify, RAGFlow, and Cherry Studio, PaddleOCR is the bedrock for building intelligent RAG and Agentic applications.
Transforming messy visuals into structured data for the LLM era.
The global gold standard for high-speed, multilingual text spotting.
PP-OCRv6 highlights:
PaddleOCR-VL-1.6 highlights:
PaddleOCR-VL series, PP-StructureV3, and PP-DocTranslation now support exporting parsed results to DOCX for convenient viewing and editing in Microsoft Word.PaddleOCR.js, the official browser inference SDK that supports running PP-OCRv5 directly in the browser.Released PaddleOCR-VL:
Model Introduction:
Core Features:
Released PP-OCRv5 Multilingual Recognition Model:
Significant Model Additions:
Deployment Capability Upgrades:
Benchmark Support:
Bug Fixes:
use_chart_parsing) in the PP-StructureV3 configuration files compared to other pipelines.Other Enhancements:
PaddleOCR official website provides interactive Experience Center and APIs—no setup required, just one click to experience.
For local usage, please refer to the following documentation based on your needs:
⭐ Star this repository to keep up with exciting updates and new releases, including powerful OCR and document parsing capabilities! ⭐
| PaddlePaddle WeChat official account | Join the tech discussion group |
|---|---|
PaddleOCR wouldn't be where it is today without its incredible community! 💗 A massive thank you to all our longtime partners, new collaborators, and everyone who's poured their passion into PaddleOCR — whether we've named you or not. Your support fuels our fire!
| Project Name | Description |
|---|---|
| Dify | Production-ready platform for agentic workflow development. |
| RAGFlow | RAG engine based on deep document understanding. |
| pathway | Python ETL framework for stream processing, real-time analytics, LLM pipelines, and RAG. |
| MinerU | Multi-type Document to Markdown Conversion Tool |
| Umi-OCR | Free, Open-source, Batch Offline OCR Software. |
| cherry-studio | A desktop client that supports for multiple LLM providers. |
| haystack | AI orchestration framework to build customizable, production-ready LLM applications. |
| OmniParser | OmniParser: Screen Parsing tool for Pure Vision Based GUI Agent. |
| QAnything | Question and Answer based on Anything. |
| Learn more projects | More projects based on PaddleOCR |
This project is released under the Apache 2.0 license.
@misc{cui2025paddleocr30technicalreport,
title={PaddleOCR 3.0 Technical Report},
author={Cheng Cui and Ting Sun and Manhui Lin and Tingquan Gao and Yubo Zhang and Jiaxuan Liu and Xueqing Wang and Zelun Zhang and Changda Zhou and Hongen Liu and Yue Zhang and Wenyu Lv and Kui Huang and Yichao Zhang and Jing Zhang and Jun Zhang and Yi Liu and Dianhai Yu and Yanjun Ma},
year={2025},
eprint={2507.05595},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2507.05595},
}
@misc{cui2025paddleocrvlboostingmultilingualdocument,
title={PaddleOCR-VL: Boosting Multilingual Document Parsing via a 0.9B Ultra-Compact Vision-Language Model},
author={Cheng Cui and Ting Sun and Suyin Liang and Tingquan Gao and Zelun Zhang and Jiaxuan Liu and Xueqing Wang and Changda Zhou and Hongen Liu and Manhui Lin and Yue Zhang and Yubo Zhang and Handong Zheng and Jing Zhang and Jun Zhang and Yi Liu and Dianhai Yu and Yanjun Ma},
year={2025},
eprint={2510.14528},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2510.14528},
}
@misc{cui2026paddleocrvl15multitask09bvlm,
title={PaddleOCR-VL-1.5: Towards a Multi-Task 0.9B VLM for Robust In-the-Wild Document Parsing},
author={Cheng Cui and Ting Sun and Suyin Liang and Tingquan Gao and Zelun Zhang and Jiaxuan Liu and Xueqing Wang and Changda Zhou and Hongen Liu and Manhui Lin and Yue Zhang and Yubo Zhang and Yi Liu and Dianhai Yu and Yanjun Ma},
year={2026},
eprint={2601.21957},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2601.21957},
}
@misc{zhang2026paddleocrvl16expandingfrontierdocument,
title={PaddleOCR-VL-1.6: Expanding the Frontier of Document Parsing with Under-Optimized Region Refinement and Progressive Post-Training},
author={Zelun Zhang and Hongen Liu and Suyin Liang and Yubo Zhang and Yiqing Xiang and Jiaxuan Liu and Ting Sun and Manhui Lin and Yue Zhang and Changda Zhou and Tingquan Gao and Cheng Cui and Yi Liu and Dianhai Yu and Yanjun Ma},
year={2026},
eprint={2606.03264},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2606.03264},
}
.clang_format.hook
.github/
actions/
detect-docs-only/
action.yml
dependabot.yml
ISSUE_TEMPLATE/
bug-report.yml
config.yml
workflows/
build_publish_develop_docs.yml
build_publish_release_docs.yml
close_inactive_issues.yml
codestyle.yml
docs_anchor_check.yml
link_check.yml
python_publish.yml
test_gpu.yml
tests.yml
.gitignore
.lycheeignore
.pre-commit-config.yaml
.style.yapf
api_sdk/
go/
client_test.go
client.go
doc.go
errors.go
examples/
doc_parsing_file/
main.go
ocr_url/
main.go
go.mod
models.go
ocr.go
operation.go
options.go
poller.go
README_cn.md
README.md
resource.go
results.go
transport.go
README_cn.md
README.md
typescript/
.gitignore
examples/
doc-parsing-file.ts
ocr-url.ts
package-lock.json
package.json
README_cn.md
README.md
src/
client.ts
errors.ts
index.ts
internal/
abort.ts
http.ts
poller.ts
models.ts
results.ts
tests/
client.test.ts
tsconfig.json
tsup.config.ts
applications/
README.md
awesome_projects.md
benchmark/
analysis.py
PaddleOCR_DBNet/
.gitattributes
.gitignore
base/
__init__.py
base_dataset.py
base_trainer.py
config/
icdar2015_dcn_resnet18_FPN_DBhead_polyLR.yaml
icdar2015_resnet18_FPN_DBhead_polyLR_finetune.yaml
icdar2015_resnet18_FPN_DBhead_polyLR.yaml
icdar2015_resnet50_FPN_DBhead_polyLR.yaml
icdar2015.yaml
open_dataset_dcn_resnet50_FPN_DBhead_polyLR.yaml
open_dataset_resnest50_FPN_DBhead_polyLR.yaml
open_dataset_resnet18_FPN_DBhead_polyLR.yaml
open_dataset.yaml
SynthText_resnet18_FPN_DBhead_polyLR.yaml
SynthText.yaml
data_loader/
__init__.py
dataset.py
modules/
__init__.py
augment.py
iaa_augment.py
make_border_map.py
make_shrink_map.py
random_crop_data.py
environment.yml
eval.sh
generate_lists.sh
imgs/
paper/
db.jpg
LICENSE.md
models/
__init__.py
backbone/
__init__.py
resnet.py
basic.py
head/
__init__.py
DBHead.py
losses/
__init__.py
basic_loss.py
DB_loss.py
model.py
neck/
__init__.py
FPN.py
multi_gpu_train.sh
post_processing/
__init__.py
seg_detector_representer.py
predict.sh
README.MD
requirement.txt
single_gpu_train.sh
test/
test_tipc/
benchmark_train.sh
common_func.sh
configs/
det_res50_db/
train_infer_python.txt
prepare.sh
test_train_inference_python.sh
README.MD
tools/
__init__.py
eval.py
export_model.py
infer.py
predict.py
train.py
trainer/
__init__.py
trainer.py
utils/
__init__.py
cal_recall/
__init__.py
rrc_evaluation_funcs.py
script.py
compute_mean_std.py
make_trainfile.py
metrics.py
ocr_metric/
__init__.py
icdar2015/
__init__.py
detection/
__init__.py
deteval.py
icdar2013.py
iou.py
mtwi2018.py
quad_metric.py
profiler.py
schedulers.py
util.py
readme.md
run_benchmark_det.sh
run_det.sh
CNAME
configs/
cls/
ch_PP-OCRv3/
ch_PP-OCRv3_rotnet.yml
cls_mv3.yml
det/
ch_PP-OCRv2/
ch_PP-OCRv2_det_cml.yml
ch_PP-OCRv2_det_distill.yml
ch_PP-OCRv2_det_dml.yml
ch_PP-OCRv2_det_student.yml
ch_ppocr_v2.0/
ch_det_mv3_db_v2.0.yml
ch_det_res18_db_v2.0.yml
det_mv3_db.yml
det_mv3_east.yml
det_mv3_pse.yml
det_r18_vd_ct.yml
det_r50_db++_icdar15.yml
det_r50_db++_td_tr.yml
det_r50_drrg_ctw.yml
det_r50_vd_db.yml
det_r50_vd_dcn_fce_ctw.yml
det_r50_vd_east.yml
det_r50_vd_pse.yml
det_r50_vd_sast_icdar15.yml
det_r50_vd_sast_totaltext.yml
det_repsvtr_db.yml
det_res18_db_v2.0.yml
PP-OCRv3/
PP-OCRv3_det_cml.yml
PP-OCRv3_det_dml.yml
PP-OCRv3_mobile_det.yml
PP-OCRv3_server_det.yml
PP-OCRv4/
PP-OCRv4_det_cml.yml
PP-OCRv4_mobile_det.yml
PP-OCRv4_mobile_seal_det.yml
PP-OCRv4_server_det.yml
PP-OCRv4_server_seal_det.yml
PP-OCRv5/
PP-OCRv5_mobile_det.yml
PP-OCRv5_server_det.yml
PP-OCRv6/
PP-OCRv6_medium_det.yml
PP-OCRv6_small_det.yml
PP-OCRv6_tiny_det.yml
e2e/
e2e_r50_vd_pg.yml
kie/
layoutlm_series/
re_layoutlmv2_xfund_zh.yml
re_layoutxlm_xfund_zh.yml
ser_layoutlm_xfund_zh.yml
ser_layoutlmv2_xfund_zh.yml
ser_layoutxlm_xfund_zh.yml
sdmgr/
kie_unet_sdmgr.yml
vi_layoutxlm/
re_vi_layoutxlm_xfund_zh_udml.yml
re_vi_layoutxlm_xfund_zh.yml
ser_vi_layoutxlm_xfund_zh_udml.yml
ser_vi_layoutxlm_xfund_zh.yml
rec/
ch_PP-OCRv2/
ch_PP-OCRv2_rec_distillation.yml
ch_PP-OCRv2_rec_enhanced_ctc_loss.yml
ch_PP-OCRv2_rec.yml
ch_ppocr_v2.0/
rec_chinese_common_train_v2.0.yml
rec_chinese_lite_train_v2.0.yml
LaTeX_OCR_rec.yaml
multi_language/
generate_multi_language_configs.py
rec_arabic_lite_train.yml
rec_cyrillic_lite_train.yml
rec_devanagari_lite_train.yml
rec_en_number_lite_train.yml
rec_french_lite_train.yml
rec_german_lite_train.yml
rec_hebrew_lite_train.yml
rec_japan_lite_train.yml
rec_korean_lite_train.yml
rec_latin_lite_train.yml
rec_multi_language_lite_train.yml
rec_samaritan_lite_train.yml
rec_syriac_lite_train.yml
PP-FormuaNet/
PP-FormulaNet_plus-L.yaml
PP-FormulaNet_plus-M.yaml
PP-FormulaNet_plus-S.yaml
PP-FormulaNet-L.yaml
PP-FormulaNet-S.yaml
PP-OCRv3/
en_PP-OCRv3_mobile_rec.yml
multi_language/
.gitkeep
arabic_PP-OCRv3_mobile_rec.yml
chinese_cht_PP-OCRv3_mobile_rec.yaml
cyrillic_PP-OCRv3_mobile_rec.yml
devanagari_PP-OCRv3_mobile_rec.yml
japan_PP-OCRv3_mobile_rec.yml
ka_PP-OCRv3_mobile_rec.yml
korean_PP-OCRv3_mobile_rec.yml
latin_PP-OCRv3_mobile_rec.yml
ta_PP-OCRv3_mobile_rec.yml
te_PP-OCRv3_mobile_rec.yml
PP-OCRv3_mobile_rec_distillation.yml
PP-OCRv3_mobile_rec.yml
PP-OCRv4/
ch_PP-OCRv4_rec_svtr_large.yml
en_PP-OCRv4_mobile_rec.yml
PP-OCRv4_mobile_rec_ampO2_ultra.yml
PP-OCRv4_mobile_rec_distillation.yml
PP-OCRv4_mobile_rec_fp32_ultra.yml
PP-OCRv4_mobile_rec.yml
PP-OCRv4_server_rec_ampO2_ultra.yml
PP-OCRv4_server_rec_doc.yml
PP-OCRv4_server_rec_fp32_ultra.yml
PP-OCRv4_server_rec.yml
PP-OCRv5/
multi_language/
arabic_PP-OCRv5_mobile_rec.yaml
cyrillic_PP-OCRv5_mobile_rec.yaml
devanagari_PP-OCRv5_mobile_rec.yaml
el_PP-OCRv5_mobile_rec.yaml
en_PP-OCRv5_mobile_rec.yaml
eslav_PP-OCRv5_mobile_rec.yml
korean_PP-OCRv5_mobile_rec.yml
latin_PP-OCRv5_mobile_rec.yml
ta_PP-OCRv5_mobile_rec.yaml
te_PP-OCRv5_mobile_rec.yaml
th_PP-OCRv5_mobile_rec.yaml
PP-OCRv5_mobile_rec.yml
PP-OCRv5_server_rec.yml
PP-OCRv6/
PP-OCRv6_medium_rec.yml
PP-OCRv6_small_rec.yml
PP-OCRv6_tiny_rec.yml
rec_d28_can.yml
rec_efficientb3_fpn_pren.yml
rec_icdar15_train.yml
rec_mtb_nrtr.yml
rec_mv3_none_bilstm_ctc.yml
rec_mv3_none_none_ctc.yml
rec_mv3_tps_bilstm_att.yml
rec_mv3_tps_bilstm_ctc.yml
rec_r31_robustscanner.yml
rec_r31_sar.yml
rec_r32_gaspin_bilstm_att.yml
rec_r34_vd_none_bilstm_ctc.yml
rec_r34_vd_none_none_ctc.yml
rec_r34_vd_tps_bilstm_att.yml
rec_r34_vd_tps_bilstm_ctc.yml
rec_r45_abinet.yml
rec_r45_visionlan.yml
rec_r50_fpn_srn.yml
rec_resnet_rfl_att.yml
rec_resnet_rfl_visual.yml
rec_resnet_stn_bilstm_att.yml
rec_satrn.yml
rec_svtrnet_ch.yml
rec_svtrnet_cppd_base_ch.yml
rec_svtrnet_cppd_base_en.yml
rec_svtrnet.yml
rec_vit_parseq.yml
rec_vitstr_none_ce.yml
SVTRv2/
ch_RepSVTR_rec_gtc.yml
ch_RepSVTR_rec.yml
ch_SVTRv2_rec_distillation.yml
ch_SVTRv2_rec_gtc_distill.yml
ch_SVTRv2_rec_gtc.yml
ch_SVTRv2_rec.yml
UniMERNet.yaml
sr/
sr_telescope.yml
sr_tsrn_transformer_strock.yml
table/
SLANet_lcnetv2.yml
SLANet_plus.yml
SLANet.yml
SLANeXt_wired.yml
SLANeXt_wireless.yml
table_master.yml
table_mv3.yml
deploy/
android_demo/
.gitignore
app/
.gitignore
build.gradle
proguard-rules.pro
src/
androidTest/
java/
com/
baidu/
paddle/
lite/
demo/
ocr/
ExampleInstrumentedTest.java
main/
AndroidManifest.xml
assets/
images/
det_0.jpg
det_180.jpg
det_270.jpg
det_90.jpg
rec_0_180.jpg
rec_0.jpg
rec_1_180.jpg
rec_1.jpg
cpp/
CMakeLists.txt
... 1600 moreShowing a partial view of a very large repo.
FAQ
paddleocr is a Claude Code plugin with 2 hand-picked skills for data work, indexed on Flowy. Install it with the command on its page. It includes paddleocr-doc-parsing, paddleocr-text-recognition. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.