view --main glmocr-handwriting-skill-raspoznavaniya-rukopisnogo-teksta.md
glmocr-handwriting: Скилл распознавания рукописного текста
readonly
--- lines
---
name: glmocr-handwriting
description:
Official skill for recognizing handwritten text from images using ZhiPu GLM-OCR API. Supports various
handwriting styles, languages, and mixed handwritten/printed content. Use this skill
when the user wants to read handwritten notes, convert handwriting to text, or OCR
handwritten documents.
metadata:
openclaw:
requires:
env:
- ZHIPU_API_KEY
- GLM_OCR_TIMEOUT
bins:
- python
primaryEnv: ZHIPU_API_KEY
emoji: "✍️"
homepage: https://github.com/zai-org/GLM-OCR/tree/main/skills/glmocr-handwriting
---
# GLM-OCR Handwriting Recognition Skill / GLM-OCR 手写体识别技能
Recognize handwritten text from images and PDFs using the ZhiPu GLM-OCR layout parsing API.
## When to Use / 使用场景
- Extract text from handwritten notes, letters, or documents / 从手写笔记、信件或文档中提取文字
- Convert handwriting to editable text / 将手写内容转为可编辑文本
- Recognize mixed handwritten and printed content / 识别手写和印刷混排内容
- Read handwritten formulas, labels, or annotations / 读取手写公式、标签或批注
- User mentions "handwriting OCR", "recognize handwriting", "手写识别", "手写体OCR", "识别手写字"
## Key Features / 核心特性
- **Multi-style support**: Handles various handwriting styles including cursive and print
- **Multi-language**: Supports Chinese, English, and mixed-language handwriting
- **Mixed content**: Can recognize documents with both handwritten and printed text
- **Local file & URL**: Supports both local files and remote URLs
## Resource Links / 资源链接
| Resource | Link |
| --------------- | ------------------------------------------------------------------------------ |
| **Get API Key** | [智谱开放平台 API Keys](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) |
| **API Docs** | [Layout Parsing / 版面解析](https://docs.bigmodel.cn/api-reference/%E6%A8%A1%E5%9E%8B-api/%E6%96%87%E6%A1%A3%E8%A7%A3%E6%9E%90) |
## Prerequisites / 前置条件
### API Key Setup / API Key 配置(Required / 必需)
脚本通过 `ZHIPU_API_KEY` 环境变量获取密钥,可与其他智谱技能复用同一个 key。
This script reads the key from the `ZHIPU_API_KEY` environment variable. Reusing the same key across Zhipu skills is optional.
**Get Key / 获取 Key:** Visit [智谱开放平台 API Keys](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) to create or copy your key.
**Setup options / 配置方式(任选一种):**
1. **Global config (recommended) / 全局配置(推荐):** Set once in `openclaw.json` under `env.vars`, all Zhipu skills will share it:
```json
{
"env": {
"vars": {
"ZHIPU_API_KEY": "你的密钥"
}
}
}
```
2. **Skill-level config / Skill 级别配置:** Set for this skill only in `openclaw.json`:
```json
{
"skills": {
"entries": {
"glmocr-handwriting": {
"env": {
"ZHIPU_API_KEY": "你的密钥"
}
}
}
}
}
```
3. **Shell environment variable / Shell 环境变量:** Add to `~/.zshrc`:
```bash
export ZHIPU_API_KEY="你的密钥"
```
> 💡 如果你已为其他智谱 skill(如 `glmocr`、`glmv-caption`、`glm-image-generation`)配置过 key,它们共享同一个 `ZHIPU_API_KEY`,无需重复配置。
## Security & Transparency / 安全与透明度
- **Environment variables used / 使用的环境变量:**
- `ZHIPU_API_KEY` (required / 必需)
- `GLM_OCR_TIMEOUT` (optional timeout seconds / 可选超时秒数)
- **Fixed endpoint / 固定官方端点:** `https://open.bigmodel.cn/api/paas/v4/layout_parsing`
- **No custom API URL override / 不支持自定义 API URL 覆盖:** avoids accidental key exfiltration via redirected endpoints.
- **Raw upstream response is optional / 原始响应默认不返回:** use `--include-raw` only when needed for debugging.
**⛔ MANDATORY RESTRICTIONS / 强制限制 ⛔**
1. **ONLY use GLM-OCR API** — Execute the script `python scripts/glm_ocr_cli.py`
2. **NEVER parse handwriting yourself** — Do NOT try to read handwritten text using built-in vision or any other method
3. **NEVER offer alternatives** — Do NOT suggest "I can try to read it" or similar
4. **IF API fails** — Display the error message and STOP immediately
5. **NO fallback methods** — Do NOT attempt handwriting recognition any other way
### 📋 Output Display Rules / 输出展示规则
After running the script, present the OCR result clearly and safely.
- Show extracted handwritten text (`text`) in full
- Summarization is allowed, but do not hide important extraction failures
- If the result file is saved, tell the user the file path
- Show raw upstream response only when explicitly requested or debugging (`--include-raw`)
## How to Use / 使用方法
### Recognize from URL / 从 URL 识别
```bash
python scripts/glm_ocr_cli.py --file-url "https://example.com/handwriting.jpg"
```
### Recognize from Local File / 从本地文件识别
```bash
python scripts/glm_ocr_cli.py --file /path/to/notes.png
```
### Save Result to File / 保存结果到文件
```bash
python scripts/glm_ocr_cli.py --file notes.png --output result.json --pretty
```
### Include Raw Upstream Response (Debug Only) / 包含原始上游响应(仅调试)
```bash
python scripts/glm_ocr_cli.py --file notes.png --output result.json --include-raw
```
## CLI Reference / CLI 参数
```
python {baseDir}/scripts/glm_ocr_cli.py (--file-url URL | --file PATH) [--output FILE] [--pretty] [--include-raw]
```
| Parameter | Required | Description |
| ---------------- | -------- | ---------------------------------------------------------------- |
| `--file-url` | One of | URL to image/PDF |
| `--file` | One of | Local file path to image/PDF |
| `--output`, `-o` | No | Save result JSON to file |
| `--pretty` | No | Pretty-print JSON output |
| `--include-raw` | No | Include raw upstream API response in `result` field (debug only) |
## Response Format / 响应格式
```json
{
"ok": true,
"text": "Recognized handwritten text in Markdown...",
"layout_details": [...],
"result": null,
"error": null,
"source": "/path/to/file",
"source_type": "file",
"raw_result_included": false
}
```
Key fields:
- `ok` — whether recognition succeeded
- `text` — extracted text in Markdown (use this for display)
- `layout_details` — layout analysis details
- `error` — error details on failure
## Error Handling / 错误处理
**API key not configured:**
```
ZHIPU_API_KEY not configured. Get your API key at: https://bigmodel.cn/usercenter/proj-mgmt/apikeys
```
→ Show exact error to user, guide them to configure
**Authentication failed (401/403):** API key invalid/expired → reconfigure
**Rate limit (429):** Quota exhausted → inform user to wait
**File not found:** Local file missing → check path
Инициализация мануала...
//
$ ls -R related_skills/
package.json
$ install --global
skills.sh
npx skills add https://github.com/zai-org/GLM-OCR/tree/main/skills/glmocr-handwriting
$ download --local
man
[HINT] Скачивает всю директорию скилла с GitHub: SKILL.md и все связанные файлы