silicon-paddle-ocr — Claude Code OCR skill: read text from images
Recognizes text in images through the PaddleOCR model and the SiliconFlow API. Handy when you need text out of a screenshot or photo without leaving the agent chat.
npx skills add aotenjou/silicon-PaddleOCR --skill silicon-paddle-ocr -a claude-codeWhat silicon-paddle-ocr does
The skill runs scripts/ocr_skill.py, which sends an image to SiliconFlow and returns the recognized text. JPG, PNG, WebP, BMP and GIF are supported. Pass a single file, several paths or a glob pattern and it processes them as a batch.
The default model is PaddlePaddle/PaddleOCR-VL-1.5, with a 2000-token response limit. The --json flag returns coordinates for every text region, --output writes results to a file, and -p sets a custom prompt — useful for getting a table back as Markdown. If one image fails, the script reports the error for that file and keeps going with the rest.
You need a SiliconFlow key in the SILICONFLOW_API_KEY environment variable before the first run. Without it the script never gets past authorization, so check the variable before pointing the skill at a folder of scans.
What it helps with
- pull text out of a screenshot of an error
- read text from a photo of a document
- run a batch of images through OCR in one go
- get text region coordinates as JSON
- export a table from an image into Markdown
Example prompts for the agent
- recognize the text in this screenshot
- OCR every PNG in the screenshots folder
- extract the table from this image and format it as Markdown
How to install silicon-paddle-ocr
1Skills CLI (Vercel)
npx skills add aotenjou/silicon-PaddleOCR --skill silicon-paddle-ocr -a claude-code2Manually: put the files in place
~/.claude/skills/silicon-paddle-ocr/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/silicon-paddle-ocr/
1Skills CLI (Vercel)
npx skills add aotenjou/silicon-PaddleOCR --skill silicon-paddle-ocr -a codex2Manually: put the files in place
.agents/skills/silicon-paddle-ocr/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aotenjou/silicon-PaddleOCR --skill silicon-paddle-ocr -a cursor2Manually: put the files in place
.cursor/skills/silicon-paddle-ocr/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aotenjou/silicon-PaddleOCR silicon-paddle-ocr2Manually: put the files in place
.github/skills/silicon-paddle-ocr/SKILL.md1Skills CLI (Vercel)
npx skills add aotenjou/silicon-PaddleOCR --skill silicon-paddle-ocr -a gemini-cli2Platform CLI
gemini skills install https://github.com/aotenjou/silicon-PaddleOCR --path skills/silicon-paddle-ocrManually: put the files in place
.devin/skills/silicon-paddle-ocr/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aotenjou/silicon-PaddleOCR --skill silicon-paddle-ocr -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about silicon-paddle-ocr
How do I install silicon-paddle-ocr in Claude?
Run npx skills add aotenjou/silicon-PaddleOCR --skill silicon-paddle-ocr -a claude-code. The skill lands in ~/.claude/skills/silicon-paddle-ocr/SKILL.md.
What does silicon-paddle-ocr do?
It recognizes text in images using the PaddleOCR model through the SiliconFlow API. It handles a single image or a batch of files.
What does the skill need to work?
A SiliconFlow key in the SILICONFLOW_API_KEY environment variable. Without it API requests fail.
Source text
SKILL.md · MIT
---
name: silicon-paddle-ocr
description: OCR skill using PaddleOCR model via SiliconFlow API. This skill should be used when the user asks to "recognize text from an image", "extract text from a photo", "OCR this image", "read text from screenshot", or mentions "PaddleOCR", "image text recognition", "text extraction from images".
license: MIT
metadata:
author: aotenjou
version: "1.0.0"
---
# OCR - Image Text Recognition
Use PaddleOCR to extract text content from images. Supports single image or batch processing.
## Overview
This skill provides optical character recognition (OCR) capabilities using the PaddlePaddle/PaddleOCR-VL-1.5 model via the SiliconFlow API. Extract text from JPG, PNG, WebP, BMP, and GIF images.
## When to Use
Invoke this skill when:
- User wants to extract text from an image
- User asks to OCR a screenshot or photo
- User needs to read text from an image file
- User mentions text recognition from images
## How to Use
### Prerequisites
Ensure the `SILICONFLOW_API_KEY` environment variable is set:
```bash
export SILICONFLOW_API_KEY="your_api_key"
```
### Basic Usage
Execute the OCR script:
```bash
python3 scripts/ocr_skill.py [options] image_path
```
### Arguments
| Argument | Description |
|----------|-------------|
| `images` | Image file path(s) or glob pattern (required) |
| `-k, --api-key` | API key (default: from SILICONFLOW_API_KEY env) |
| `-m, --model` | OCR model name (default: PaddlePaddle/PaddleOCR-VL-1.5) |
| `-p, --prompt` | Recognition prompt for custom behavior |
| `-j, --json` | Output results in JSON format |
| `-o, --output` | Save results to specified file |
| `--max-tokens` | Maximum tokens in response (default: 2000) |
### Examples
Single image:
```bash
python3 scripts/ocr_skill.py /path/to/image.jpg
```
Multiple images with glob:
```bash
python3 scripts/ocr_skill.py /path/to/images/*.png
```
JSON output format:
```bash
python3 scripts/ocr_skill.py --json /path/to/image.jpg
```
Custom prompt for table extraction:
```bash
python3 scripts/ocr_skill.py -p "Please identify and format table content as Markdown" /path/to/table.jpg
```
Save to file:
```bash
python3 scripts/ocr_skill.py --json --output results.json /path/to/images/*.jpg
```
### Output Format
**Text output** (default):
```
--- image.jpg ---
识别到的文字内容
识别到 X 处文字区域
```
**JSON output**:
```json
{
"image.jpg": {
"image_path": "/path/to/image.jpg",
"image_size": [width, height],
"texts": [
{
"text": "识别的文字",
"box": [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
}
],
"full_text": "所有文本的组合"
},
"image2.png": { ... }
}
```
**Coordinates Explanation:**
- LOC values are normalized coordinates converted to pixel coordinates
- Conversion: pixel = LOC × (image_size / LOC_max_value)
- LOC max_value is approximately 972 (may vary by model/image)
- The `box` field provides the four corner coordinates of each text region in pixel format
## Supported Image Formats
- JPG/JPEG
- PNG
- WebP
- BMP
- GIF
## Error Handling
If processing fails:
- Check that the image file exists
- Verify the SILICONFLOW_API_KEY is valid
- Ensure the API endpoint is reachable
Images that fail to process will show an error message, and other images will continue processing.
## Additional Resources
### Reference Files
- **`references/api-configuration.md`** - API configuration details
### Example Files
- **`examples/sample-usage.sh`** - Example usage script
### Scripts
- **`scripts/ocr_skill.py`** - The main OCR implementation
© aotenjou · MIT · aotenjou/silicon-PaddleOCR