npx skills add https://www.modelscope.cn/collections/ZhipuAI/GLM-skills
zai-org/glm-skills
glmocr-handwriting
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.
Installation
npx skills add zai-org/glm-skills --skill glmocr-handwriting
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Also in this package
Other skills from zai-org/glm-skills · top by installs.
npx skills add zai-org/glm-skills
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
More metadata
- openclaw
- {"requires":{"env":["ZHIPU_API_KEY","GLM_OCR_TIMEOUT"]},"primaryEnv":"ZHIPU_API_KEY","emoji":"✍️","homepage":"https:\/\/github.com\/zai-org\/GLM-OCR\/tree\/main\/skills\/glmocr-handwriting"}
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md7,327 B -
docs
SUMMARY.md318 B
History
- First seen on skills.sh
- First recorded snapshot · 94 installs
SKILL.md
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 |
| API Docs | Layout Parsing / 版面解析 |
Prerequisites / 前置条件
API Key Setup / API Key 配置(Required / 必需)
脚本通过 ZHIPUAPIKEY 环境变量获取密钥,可与其他智谱技能复用同一个 key。 This script reads the key from the ZHIPUAPIKEY environment variable. Reusing the same key across Zhipu skills is optional.
Get Key / 获取 Key: Visit 智谱开放平台 API Keys to create or copy your key.
Setup options / 配置方式(任选一种):
- Global config (recommended) / 全局配置(推荐): Set once in
openclaw.jsonunderenv.vars, all Zhipu skills will share it:
``json { "env": { "vars": { "ZHIPUAPIKEY": "你的密钥" } } } ``
- Skill-level config / Skill 级别配置: Set for this skill only in
openclaw.json:
``json { "skills": { "entries": { "glmocr-handwriting": { "env": { "ZHIPUAPIKEY": "你的密钥" } } } } } ``
- Shell environment variable / Shell 环境变量: Add to
~/.zshrc:
``bash export ZHIPUAPIKEY="你的密钥" ``
💡 如果你已为其他智谱 skill(如
glmocr、glmv-caption、glm-image-generation)配置过 key,它们共享同一个ZHIPUAPIKEY,无需重复配置。
Security & Transparency / 安全与透明度
- Environment variables used / 使用的环境变量:
- ZHIPUAPIKEY (required / 必需) - GLMOCRTIMEOUT (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-rawonly when needed for debugging.
⛔ MANDATORY RESTRICTIONS / 强制限制 ⛔
- ONLY use GLM-OCR API — Execute the script
python scripts/glmocrcli.py - NEVER parse handwriting yourself — Do NOT try to read handwritten text using built-in vision or any other method
- NEVER offer alternatives — Do NOT suggest "I can try to read it" or similar
- IF API fails — Display the error message and STOP immediately
- 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 识别
python scripts/glm_ocr_cli.py --file-url "https://example.com/handwriting.jpg"
Recognize from Local File / 从本地文件识别
python scripts/glm_ocr_cli.py --file /path/to/notes.png
Save Result to File / 保存结果到文件
python scripts/glm_ocr_cli.py --file notes.png --output result.json --pretty
Include Raw Upstream Response (Debug Only) / 包含原始上游响应(仅调试)
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 / 响应格式
{
"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 succeededtext— extracted text in Markdown (use this for display)layout_details— layout analysis detailserror— 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