{"id":"5b2b9c47-7196-47e8-ab9b-2f44b1a441d2","entityType":"agent","slug":"clawhub-lihanghang-memect-ppx","name":"Memect Ppx","canonicalUrl":"https://www.xpersona.co/agent/clawhub-lihanghang-memect-ppx","canonicalPath":"/agent/clawhub-lihanghang-memect-ppx","generatedAt":"2026-10-14T15:58:12.643Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-12T01:32:39.896Z","emptyReason":null},"description":"Parse PDFs and images into Markdown/JSON using the memect-ppx (`ppx`) CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDF... Skill: Memect Ppx Owner: lihanghang Summary: Parse PDFs and images into Markdown/JSON using the memect-ppx (ppx) CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDF... Tags: latest:0.2.6, markdown:0.0.2, ocr:0.0.2, parser:0.0.2, pdf:0.0.2, table:0.0.2 Version history: v0.2.6 | 2026-05-15T03:48:37.678Z | auto - Updated skill version to 0.2.6. - Improved description with explicit key","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 961 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s171w8cksnm4vje9j0qeye09eh85c144:memect-ppx","sourceUrl":"https://clawhub.ai/lihanghang/memect-ppx","homepage":"https://clawhub.ai/lihanghang/skills/memect-ppx","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/lihanghang/memect-ppx","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/lihanghang/skills/memect-ppx","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Parse PDFs and images into Markdown/JSON using the memect-ppx (`ppx`) CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDF..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:32:39.896Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:32:39.896Z","emptyReason":null},"stars":null,"forks":null,"downloads":961,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"0.2.6","tractionLabel":"961 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T01:32:39.771Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T01:32:39.896Z","lastCrawledAt":"2026-10-12T01:32:39.771Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T01:32:39.771Z","lastVerifiedAt":null,"highlights":[{"version":"0.2.6","createdAt":"2026-05-15T03:48:37.678Z","changelog":"- Updated skill version to 0.2.6. - Improved description with explicit keyword triggers (e.g., \"memect-ppx\", \"ppx parse\"). - Changed top-level heading from \"PPX Parse\" to \"memect-ppx\" for consistency. - No changes to workflow or command examples.","fileCount":8,"zipByteSize":6124},{"version":"0.2.5","createdAt":"2026-05-15T03:22:13.422Z","changelog":"- Update skill title and frontmatter name from \"ppx-parse\" to \"memect-ppx\" - Bump version to 0.2.5 in skill metadata for consistency - No workflow or usage changes; documentation and metadata only","fileCount":7,"zipByteSize":4948},{"version":"0.2.3","createdAt":"2026-04-24T13:47:58.585Z","changelog":"启用 user-invocable，支持 /memect-ppx 斜杠调用","fileCount":7,"zipByteSize":4914},{"version":"0.2.2","createdAt":"2026-04-24T13:38:10.836Z","changelog":"更新显示名称为 memect-ppx","fileCount":7,"zipByteSize":4904},{"version":"0.2.1","createdAt":"2026-04-24T12:29:54.451Z","changelog":"优化 description，增加中文关键词覆盖，提高触发命中率","fileCount":7,"zipByteSize":4898},{"version":"0.2.0","createdAt":"2026-04-24T12:18:33.642Z","changelog":"优化 description，增加中文关键词覆盖，提高触发命中率","fileCount":7,"zipByteSize":4898},{"version":"0.0.2","createdAt":"2026-04-23T09:10:32.605Z","changelog":"Initial release","fileCount":3,"zipByteSize":3257}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171w8cksnm4vje9j0qeye09eh85c144:memect-ppx","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-14T15:58:12.642Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lihanghang-memect-ppx/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-12T01:32:39.896Z","emptyReason":null},"readme":"Skill: Memect Ppx\n\nOwner: lihanghang\n\nSummary: Parse PDFs and images into Markdown/JSON using the memect-ppx (`ppx`) CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDF...\n\nTags: latest:0.2.6, markdown:0.0.2, ocr:0.0.2, parser:0.0.2, pdf:0.0.2, table:0.0.2\n\nVersion history:\n\nv0.2.6 | 2026-05-15T03:48:37.678Z | auto\n\n- Updated skill version to 0.2.6.\n- Improved description with explicit keyword triggers (e.g., \"memect-ppx\", \"ppx parse\").\n- Changed top-level heading from \"PPX Parse\" to \"memect-ppx\" for consistency.\n- No changes to workflow or command examples.\n\nv0.2.5 | 2026-05-15T03:22:13.422Z | auto\n\n- Update skill title and frontmatter name from \"ppx-parse\" to \"memect-ppx\"\n- Bump version to 0.2.5 in skill metadata for consistency\n- No workflow or usage changes; documentation and metadata only\n\nv0.2.3 | 2026-04-24T13:47:58.585Z | user\n\n启用 user-invocable，支持 /memect-ppx 斜杠调用\n\nv0.2.2 | 2026-04-24T13:38:10.836Z | user\n\n更新显示名称为 memect-ppx\n\nv0.2.1 | 2026-04-24T12:29:54.451Z | user\n\n优化 description，增加中文关键词覆盖，提高触发命中率\n\nv0.2.0 | 2026-04-24T12:18:33.642Z | user\n\n优化 description，增加中文关键词覆盖，提高触发命中率\n\nv0.0.2 | 2026-04-23T09:10:32.605Z | user\n\nInitial release\n\nArchive index:\n\nArchive v0.2.6: 8 files, 6124 bytes\n\nFiles: references/backend-config.md (1106b), references/cli-options.md (1176b), references/troubleshooting.md (1395b), scripts/check_ppx_env.sh (203b), scripts/sync_version.py (1312b), skill-card.md (2132b), SKILL.md (2716b), _meta.json (129b)\n\nFile v0.2.6:SKILL.md\n\n---\nname: memect-ppx\nversion: 0.2.6\ntitle: memect-ppx\nuser-invocable: true\ndescription: >\n  Parse PDFs and images into Markdown/JSON using the memect-ppx (`ppx`) CLI.\n  Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs,\n  convert PDF/image to Markdown, preserve document layout, inspect parsing output.\n  Also triggers on: memect-ppx、ppx parse、解析PDF、图片转文字、扫描件识别、扫描件转文字、提取表格、\n  PDF转Markdown、文档解析、OCR识别、识别图片文字、解析图片、提取文档内容。\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    homepage: https://github.com/memect/memect-ppx\n---\n\n# memect-ppx\n\nUse the local `ppx` CLI to parse PDFs and images into structured Markdown and JSON.\n\n## Runtime Requirements\n\n- Use Python `>= 3.12`.\n- Prefer installing PPX into a virtual environment instead of the system Python.\n- If `ppx` is missing, read `references/troubleshooting.md` and create a virtual environment before installing dependencies.\n- Keep this skill's frontmatter `version` synchronized from the repository `pyproject.toml` with `scripts/sync_version.py`.\n\n## Workflow\n\n1. Confirm the runtime uses Python `>= 3.12`.\n2. Check the runtime with `scripts/check_ppx_env.sh`.\n3. If `ppx` is missing, create or use a virtual environment and install PPX there.\n4. Choose parsing options:\n   - Use `--ocr auto` by default.\n   - Use `--ocr yes` for scanned PDFs or screenshots.\n   - Use `--ocr no` for native PDFs when OCR causes noise.\n   - Use `--table auto` by default.\n   - Use `--table llm` only when the user needs highest table accuracy and an LLM backend is configured.\n5. Run `ppx parse <input> -o <output>`.\n6. Inspect the output folder and report the main artifacts:\n   - `doc.md`\n   - `doc.json`\n   - `pages/`\n   - `images/` when figures are extracted\n7. If parsing fails, summarize the failing step and load the relevant note from `references/`.\n\n## Common Commands\n\n```bash\nppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/\n```\n\n## Output Contract\n\n- Prefer returning the absolute output directory.\n- Mention whether the result came from `doc.md`, `doc.json`, or page-level files.\n- Call out OCR mode, table mode, and backend when they materially affect accuracy.\n\n## References\n\n- Read `references/cli-options.md` when choosing parse flags.\n- Read `references/backend-config.md` when using DeepSeek, Paddle, or GLM backends.\n- Read `references/troubleshooting.md` when PPX is missing, Python is too old, or runtime dependencies fail.\n\nFile v0.2.6:_meta.json\n\n{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.2.6\",\n  \"publishedAt\": 1778816917678\n}\n\nFile v0.2.6:references/backend-config.md\n\n# Backend Config\n\nOnly use an LLM backend when the user asks for higher accuracy on complex layouts or tables.\n\n## Backend Selection\n\n- `default`: Local default pipeline, best for privacy and CI.\n- `deepseek`: Best for complex layouts when a local vLLM endpoint is available.\n- `paddle`: Strong accuracy with lower GPU requirements.\n- `glm`: Faster OCR-style inference on compatible deployments.\n\n## Examples\n\n```bash\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n## Persistent Settings\n\nUse `--set` to avoid repeating backend config:\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\nIf backend parsing fails, fall back to the default pipeline unless the user explicitly requires the backend path.\n\nFile v0.2.6:references/cli-options.md\n\n# CLI Options\n\nUse these defaults unless the user requests something more specific.\n\n## Input Selection\n\n- `ppx parse <file> -o <dir>`: Parse one PDF or image.\n- `ppx parse <dir> -o <dir>`: Batch-parse a directory.\n- `--pages \"1-5,10,15-20\"`: Restrict parsing to selected pages.\n\n## OCR\n\n- `--ocr auto`: Default. Works for mixed native/scanned documents.\n- `--ocr yes`: Force OCR for scanned PDFs and raster-heavy pages.\n- `--ocr no`: Skip OCR for native PDFs with selectable text.\n\n## Tables\n\n- `--table auto`: Default.\n- `--table wbk`: White-background tables in ordinary documents.\n- `--table ybk`: Colored or dark-background tables.\n- `--table llm`: Highest table fidelity when an LLM backend is configured.\n- `--table no`: Skip table extraction.\n\n## Other Useful Flags\n\n- `--mode page|tree|ppt`: Select parse mode. Use `page` unless a different downstream structure is required.\n- `--workers N`: Parallelize directory parsing.\n- `--html`: Emit `doc.html` in the output directory for HTML preview/export.\n- `--json`: Emit JSON-focused output.\n- `--cpu`: Force CPU mode.\n- `--debug` or `-x`: Keep extra debug output.\n- `--dev`: Save intermediate results for investigation.\n\nFile v0.2.6:references/troubleshooting.md\n\n# Troubleshooting\n\n## Python Version\n\n- Require Python `>= 3.12`.\n- Check the active interpreter with:\n\n```bash\npython3 --version\n```\n\n- If the system default is older than 3.12, create the virtual environment with an explicit interpreter such as `python3.12`.\n\n## Recommended Environment\n\n- Prefer a dedicated virtual environment for PPX.\n- Example setup:\n\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- If `python3.12` is unavailable, use any Python interpreter version `>= 3.12`.\n\n## `ppx` Not Found\n\n- Install the CLI:\n\n```bash\nsource .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- On headless Linux, prefer:\n\n```bash\npip install opencv-python-headless\n```\n\n## Common Runtime Issues\n\n- `ImportError: libGL.so.1`\n  Install `opencv-python-headless` or the system `libgl1` package.\n\n- `onnxruntime` and `onnxruntime-gpu` conflict\n  Keep only one of them installed in the active environment.\n\n- CUDA backend not available on macOS\n  Use CPU mode or a remote/local service backend instead.\n\n## Output Validation\n\nAfter a successful parse, verify that the output directory contains:\n\n- `doc.md`\n- `doc.json`\n- `pages/`\n\nIf one of these is missing, treat the run as partial and report that explicitly.\n\nFile v0.2.6:skill-card.md\n\n## Description:\n\nParse PDFs and images into Markdown/JSON using the memect-ppx (`ppx`) CLI.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[lihanghang](https://clawhub.ai/user/lihanghang)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and document-processing users use this skill to run the local `ppx` CLI for OCR, PDF/image parsing, table extraction, and conversion into Markdown or JSON outputs.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Dependency installation can affect sensitive environments.\n\nMitigation: Use a dedicated virtual environment and review or pin package versions before installing PPX dependencies.\n\nRisk: Backend options can send document content to configured OCR or LLM services.\n\nMitigation: Avoid LLM/backend options for confidential documents unless the endpoint is controlled and approved.\n\nRisk: OCR and table extraction can produce partial or inaccurate results.\n\nMitigation: Inspect `doc.md`, `doc.json`, and page-level outputs, and report OCR mode, table mode, and backend choices when they affect accuracy.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/lihanghang/skills/memect-ppx)\n- [memect-ppx homepage](https://github.com/memect/memect-ppx)\n- [CLI Options](references/cli-options.md)\n- [Backend Config](references/backend-config.md)\n- [Troubleshooting](references/troubleshooting.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands and references to generated Markdown/JSON files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reports the output directory and notes OCR mode, table mode, and backend when relevant.]\n\n## Skill Version(s):\n\n0.2.6 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.2.5: 7 files, 4948 bytes\n\nFiles: references/backend-config.md (1106b), references/cli-options.md (1176b), references/troubleshooting.md (1395b), scripts/check_ppx_env.sh (203b), scripts/sync_version.py (1312b), SKILL.md (2677b), _meta.json (129b)\n\nFile v0.2.5:SKILL.md\n\n---\nname: memect-ppx\nversion: 0.2.5\ntitle: memect-ppx\nuser-invocable: true\ndescription: >\n  Parse PDFs and images into Markdown/JSON using the `ppx` CLI.\n  Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs,\n  convert PDF/image to Markdown, preserve document layout, inspect parsing output.\n  Also triggers on: 解析PDF、图片转文字、扫描件识别、扫描件转文字、提取表格、\n  PDF转Markdown、文档解析、OCR识别、识别图片文字、解析图片、提取文档内容。\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    homepage: https://github.com/memect/memect-ppx\n---\n\n# PPX Parse\n\nUse the local `ppx` CLI to parse PDFs and images into structured Markdown and JSON.\n\n## Runtime Requirements\n\n- Use Python `>= 3.12`.\n- Prefer installing PPX into a virtual environment instead of the system Python.\n- If `ppx` is missing, read `references/troubleshooting.md` and create a virtual environment before installing dependencies.\n- Keep this skill's frontmatter `version` synchronized from the repository `pyproject.toml` with `scripts/sync_version.py`.\n\n## Workflow\n\n1. Confirm the runtime uses Python `>= 3.12`.\n2. Check the runtime with `scripts/check_ppx_env.sh`.\n3. If `ppx` is missing, create or use a virtual environment and install PPX there.\n4. Choose parsing options:\n   - Use `--ocr auto` by default.\n   - Use `--ocr yes` for scanned PDFs or screenshots.\n   - Use `--ocr no` for native PDFs when OCR causes noise.\n   - Use `--table auto` by default.\n   - Use `--table llm` only when the user needs highest table accuracy and an LLM backend is configured.\n5. Run `ppx parse <input> -o <output>`.\n6. Inspect the output folder and report the main artifacts:\n   - `doc.md`\n   - `doc.json`\n   - `pages/`\n   - `images/` when figures are extracted\n7. If parsing fails, summarize the failing step and load the relevant note from `references/`.\n\n## Common Commands\n\n```bash\nppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/\n```\n\n## Output Contract\n\n- Prefer returning the absolute output directory.\n- Mention whether the result came from `doc.md`, `doc.json`, or page-level files.\n- Call out OCR mode, table mode, and backend when they materially affect accuracy.\n\n## References\n\n- Read `references/cli-options.md` when choosing parse flags.\n- Read `references/backend-config.md` when using DeepSeek, Paddle, or GLM backends.\n- Read `references/troubleshooting.md` when PPX is missing, Python is too old, or runtime dependencies fail.\n\nFile v0.2.5:_meta.json\n\n{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.2.5\",\n  \"publishedAt\": 1778815333422\n}\n\nFile v0.2.5:references/backend-config.md\n\n# Backend Config\n\nOnly use an LLM backend when the user asks for higher accuracy on complex layouts or tables.\n\n## Backend Selection\n\n- `default`: Local default pipeline, best for privacy and CI.\n- `deepseek`: Best for complex layouts when a local vLLM endpoint is available.\n- `paddle`: Strong accuracy with lower GPU requirements.\n- `glm`: Faster OCR-style inference on compatible deployments.\n\n## Examples\n\n```bash\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n## Persistent Settings\n\nUse `--set` to avoid repeating backend config:\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\nIf backend parsing fails, fall back to the default pipeline unless the user explicitly requires the backend path.\n\nFile v0.2.5:references/cli-options.md\n\n# CLI Options\n\nUse these defaults unless the user requests something more specific.\n\n## Input Selection\n\n- `ppx parse <file> -o <dir>`: Parse one PDF or image.\n- `ppx parse <dir> -o <dir>`: Batch-parse a directory.\n- `--pages \"1-5,10,15-20\"`: Restrict parsing to selected pages.\n\n## OCR\n\n- `--ocr auto`: Default. Works for mixed native/scanned documents.\n- `--ocr yes`: Force OCR for scanned PDFs and raster-heavy pages.\n- `--ocr no`: Skip OCR for native PDFs with selectable text.\n\n## Tables\n\n- `--table auto`: Default.\n- `--table wbk`: White-background tables in ordinary documents.\n- `--table ybk`: Colored or dark-background tables.\n- `--table llm`: Highest table fidelity when an LLM backend is configured.\n- `--table no`: Skip table extraction.\n\n## Other Useful Flags\n\n- `--mode page|tree|ppt`: Select parse mode. Use `page` unless a different downstream structure is required.\n- `--workers N`: Parallelize directory parsing.\n- `--html`: Emit `doc.html` in the output directory for HTML preview/export.\n- `--json`: Emit JSON-focused output.\n- `--cpu`: Force CPU mode.\n- `--debug` or `-x`: Keep extra debug output.\n- `--dev`: Save intermediate results for investigation.\n\nFile v0.2.5:references/troubleshooting.md\n\n# Troubleshooting\n\n## Python Version\n\n- Require Python `>= 3.12`.\n- Check the active interpreter with:\n\n```bash\npython3 --version\n```\n\n- If the system default is older than 3.12, create the virtual environment with an explicit interpreter such as `python3.12`.\n\n## Recommended Environment\n\n- Prefer a dedicated virtual environment for PPX.\n- Example setup:\n\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- If `python3.12` is unavailable, use any Python interpreter version `>= 3.12`.\n\n## `ppx` Not Found\n\n- Install the CLI:\n\n```bash\nsource .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- On headless Linux, prefer:\n\n```bash\npip install opencv-python-headless\n```\n\n## Common Runtime Issues\n\n- `ImportError: libGL.so.1`\n  Install `opencv-python-headless` or the system `libgl1` package.\n\n- `onnxruntime` and `onnxruntime-gpu` conflict\n  Keep only one of them installed in the active environment.\n\n- CUDA backend not available on macOS\n  Use CPU mode or a remote/local service backend instead.\n\n## Output Validation\n\nAfter a successful parse, verify that the output directory contains:\n\n- `doc.md`\n- `doc.json`\n- `pages/`\n\nIf one of these is missing, treat the run as partial and report that explicitly.\n\nArchive v0.2.3: 7 files, 4914 bytes\n\nFiles: references/backend-config.md (1106b), references/cli-options.md (1099b), references/troubleshooting.md (1395b), scripts/check_ppx_env.sh (203b), scripts/sync_version.py (1312b), SKILL.md (2676b), _meta.json (129b)\n\nFile v0.2.3:SKILL.md\n\n---\nname: ppx-parse\nversion: 0.2.3\ntitle: memect-ppx\nuser-invocable: true\ndescription: >\n  Parse PDFs and images into Markdown/JSON using the `ppx` CLI.\n  Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs,\n  convert PDF/image to Markdown, preserve document layout, inspect parsing output.\n  Also triggers on: 解析PDF、图片转文字、扫描件识别、扫描件转文字、提取表格、\n  PDF转Markdown、文档解析、OCR识别、识别图片文字、解析图片、提取文档内容。\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    homepage: https://github.com/memect/memect-ppx\n---\n\n# PPX Parse\n\nUse the local `ppx` CLI to parse PDFs and images into structured Markdown and JSON.\n\n## Runtime Requirements\n\n- Use Python `>= 3.12`.\n- Prefer installing PPX into a virtual environment instead of the system Python.\n- If `ppx` is missing, read `references/troubleshooting.md` and create a virtual environment before installing dependencies.\n- Keep this skill's frontmatter `version` synchronized from the repository `pyproject.toml` with `scripts/sync_version.py`.\n\n## Workflow\n\n1. Confirm the runtime uses Python `>= 3.12`.\n2. Check the runtime with `scripts/check_ppx_env.sh`.\n3. If `ppx` is missing, create or use a virtual environment and install PPX there.\n4. Choose parsing options:\n   - Use `--ocr auto` by default.\n   - Use `--ocr yes` for scanned PDFs or screenshots.\n   - Use `--ocr no` for native PDFs when OCR causes noise.\n   - Use `--table auto` by default.\n   - Use `--table llm` only when the user needs highest table accuracy and an LLM backend is configured.\n5. Run `ppx parse <input> -o <output>`.\n6. Inspect the output folder and report the main artifacts:\n   - `doc.md`\n   - `doc.json`\n   - `pages/`\n   - `images/` when figures are extracted\n7. If parsing fails, summarize the failing step and load the relevant note from `references/`.\n\n## Common Commands\n\n```bash\nppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/\n```\n\n## Output Contract\n\n- Prefer returning the absolute output directory.\n- Mention whether the result came from `doc.md`, `doc.json`, or page-level files.\n- Call out OCR mode, table mode, and backend when they materially affect accuracy.\n\n## References\n\n- Read `references/cli-options.md` when choosing parse flags.\n- Read `references/backend-config.md` when using DeepSeek, Paddle, or GLM backends.\n- Read `references/troubleshooting.md` when PPX is missing, Python is too old, or runtime dependencies fail.\n\nFile v0.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.2.3\",\n  \"publishedAt\": 1777038478585\n}\n\nFile v0.2.3:references/backend-config.md\n\n# Backend Config\n\nOnly use an LLM backend when the user asks for higher accuracy on complex layouts or tables.\n\n## Backend Selection\n\n- `default`: Local default pipeline, best for privacy and CI.\n- `deepseek`: Best for complex layouts when a local vLLM endpoint is available.\n- `paddle`: Strong accuracy with lower GPU requirements.\n- `glm`: Faster OCR-style inference on compatible deployments.\n\n## Examples\n\n```bash\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n## Persistent Settings\n\nUse `--set` to avoid repeating backend config:\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\nIf backend parsing fails, fall back to the default pipeline unless the user explicitly requires the backend path.\n\nFile v0.2.3:references/cli-options.md\n\n# CLI Options\n\nUse these defaults unless the user requests something more specific.\n\n## Input Selection\n\n- `ppx parse <file> -o <dir>`: Parse one PDF or image.\n- `ppx parse <dir> -o <dir>`: Batch-parse a directory.\n- `--pages \"1-5,10,15-20\"`: Restrict parsing to selected pages.\n\n## OCR\n\n- `--ocr auto`: Default. Works for mixed native/scanned documents.\n- `--ocr yes`: Force OCR for scanned PDFs and raster-heavy pages.\n- `--ocr no`: Skip OCR for native PDFs with selectable text.\n\n## Tables\n\n- `--table auto`: Default.\n- `--table wbk`: White-background tables in ordinary documents.\n- `--table ybk`: Colored or dark-background tables.\n- `--table llm`: Highest table fidelity when an LLM backend is configured.\n- `--table no`: Skip table extraction.\n\n## Other Useful Flags\n\n- `--mode page|tree|ppt`: Select parse mode. Use `page` unless a different downstream structure is required.\n- `--workers N`: Parallelize directory parsing.\n- `--json`: Emit JSON-focused output.\n- `--cpu`: Force CPU mode.\n- `--debug` or `-x`: Keep extra debug output.\n- `--dev`: Save intermediate results for investigation.\n\nFile v0.2.3:references/troubleshooting.md\n\n# Troubleshooting\n\n## Python Version\n\n- Require Python `>= 3.12`.\n- Check the active interpreter with:\n\n```bash\npython3 --version\n```\n\n- If the system default is older than 3.12, create the virtual environment with an explicit interpreter such as `python3.12`.\n\n## Recommended Environment\n\n- Prefer a dedicated virtual environment for PPX.\n- Example setup:\n\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- If `python3.12` is unavailable, use any Python interpreter version `>= 3.12`.\n\n## `ppx` Not Found\n\n- Install the CLI:\n\n```bash\nsource .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- On headless Linux, prefer:\n\n```bash\npip install opencv-python-headless\n```\n\n## Common Runtime Issues\n\n- `ImportError: libGL.so.1`\n  Install `opencv-python-headless` or the system `libgl1` package.\n\n- `onnxruntime` and `onnxruntime-gpu` conflict\n  Keep only one of them installed in the active environment.\n\n- CUDA backend not available on macOS\n  Use CPU mode or a remote/local service backend instead.\n\n## Output Validation\n\nAfter a successful parse, verify that the output directory contains:\n\n- `doc.md`\n- `doc.json`\n- `pages/`\n\nIf one of these is missing, treat the run as partial and report that explicitly.\n\nArchive v0.2.2: 7 files, 4904 bytes\n\nFiles: references/backend-config.md (1106b), references/cli-options.md (1099b), references/troubleshooting.md (1395b), scripts/check_ppx_env.sh (203b), scripts/sync_version.py (1312b), SKILL.md (2655b), _meta.json (129b)\n\nFile v0.2.2:SKILL.md\n\n---\nname: ppx-parse\nversion: 0.2.2\ntitle: memect-ppx\ndescription: >\n  Parse PDFs and images into Markdown/JSON using the `ppx` CLI.\n  Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs,\n  convert PDF/image to Markdown, preserve document layout, inspect parsing output.\n  Also triggers on: 解析PDF、图片转文字、扫描件识别、扫描件转文字、提取表格、\n  PDF转Markdown、文档解析、OCR识别、识别图片文字、解析图片、提取文档内容。\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    homepage: https://github.com/memect/memect-ppx\n---\n\n# PPX Parse\n\nUse the local `ppx` CLI to parse PDFs and images into structured Markdown and JSON.\n\n## Runtime Requirements\n\n- Use Python `>= 3.12`.\n- Prefer installing PPX into a virtual environment instead of the system Python.\n- If `ppx` is missing, read `references/troubleshooting.md` and create a virtual environment before installing dependencies.\n- Keep this skill's frontmatter `version` synchronized from the repository `pyproject.toml` with `scripts/sync_version.py`.\n\n## Workflow\n\n1. Confirm the runtime uses Python `>= 3.12`.\n2. Check the runtime with `scripts/check_ppx_env.sh`.\n3. If `ppx` is missing, create or use a virtual environment and install PPX there.\n4. Choose parsing options:\n   - Use `--ocr auto` by default.\n   - Use `--ocr yes` for scanned PDFs or screenshots.\n   - Use `--ocr no` for native PDFs when OCR causes noise.\n   - Use `--table auto` by default.\n   - Use `--table llm` only when the user needs highest table accuracy and an LLM backend is configured.\n5. Run `ppx parse <input> -o <output>`.\n6. Inspect the output folder and report the main artifacts:\n   - `doc.md`\n   - `doc.json`\n   - `pages/`\n   - `images/` when figures are extracted\n7. If parsing fails, summarize the failing step and load the relevant note from `references/`.\n\n## Common Commands\n\n```bash\nppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/\n```\n\n## Output Contract\n\n- Prefer returning the absolute output directory.\n- Mention whether the result came from `doc.md`, `doc.json`, or page-level files.\n- Call out OCR mode, table mode, and backend when they materially affect accuracy.\n\n## References\n\n- Read `references/cli-options.md` when choosing parse flags.\n- Read `references/backend-config.md` when using DeepSeek, Paddle, or GLM backends.\n- Read `references/troubleshooting.md` when PPX is missing, Python is too old, or runtime dependencies fail.\n\nFile v0.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.2.2\",\n  \"publishedAt\": 1777037890836\n}\n\nFile v0.2.2:references/backend-config.md\n\n# Backend Config\n\nOnly use an LLM backend when the user asks for higher accuracy on complex layouts or tables.\n\n## Backend Selection\n\n- `default`: Local default pipeline, best for privacy and CI.\n- `deepseek`: Best for complex layouts when a local vLLM endpoint is available.\n- `paddle`: Strong accuracy with lower GPU requirements.\n- `glm`: Faster OCR-style inference on compatible deployments.\n\n## Examples\n\n```bash\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n## Persistent Settings\n\nUse `--set` to avoid repeating backend config:\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\nIf backend parsing fails, fall back to the default pipeline unless the user explicitly requires the backend path.\n\nFile v0.2.2:references/cli-options.md\n\n# CLI Options\n\nUse these defaults unless the user requests something more specific.\n\n## Input Selection\n\n- `ppx parse <file> -o <dir>`: Parse one PDF or image.\n- `ppx parse <dir> -o <dir>`: Batch-parse a directory.\n- `--pages \"1-5,10,15-20\"`: Restrict parsing to selected pages.\n\n## OCR\n\n- `--ocr auto`: Default. Works for mixed native/scanned documents.\n- `--ocr yes`: Force OCR for scanned PDFs and raster-heavy pages.\n- `--ocr no`: Skip OCR for native PDFs with selectable text.\n\n## Tables\n\n- `--table auto`: Default.\n- `--table wbk`: White-background tables in ordinary documents.\n- `--table ybk`: Colored or dark-background tables.\n- `--table llm`: Highest table fidelity when an LLM backend is configured.\n- `--table no`: Skip table extraction.\n\n## Other Useful Flags\n\n- `--mode page|tree|ppt`: Select parse mode. Use `page` unless a different downstream structure is required.\n- `--workers N`: Parallelize directory parsing.\n- `--json`: Emit JSON-focused output.\n- `--cpu`: Force CPU mode.\n- `--debug` or `-x`: Keep extra debug output.\n- `--dev`: Save intermediate results for investigation.\n\nFile v0.2.2:references/troubleshooting.md\n\n# Troubleshooting\n\n## Python Version\n\n- Require Python `>= 3.12`.\n- Check the active interpreter with:\n\n```bash\npython3 --version\n```\n\n- If the system default is older than 3.12, create the virtual environment with an explicit interpreter such as `python3.12`.\n\n## Recommended Environment\n\n- Prefer a dedicated virtual environment for PPX.\n- Example setup:\n\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- If `python3.12` is unavailable, use any Python interpreter version `>= 3.12`.\n\n## `ppx` Not Found\n\n- Install the CLI:\n\n```bash\nsource .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- On headless Linux, prefer:\n\n```bash\npip install opencv-python-headless\n```\n\n## Common Runtime Issues\n\n- `ImportError: libGL.so.1`\n  Install `opencv-python-headless` or the system `libgl1` package.\n\n- `onnxruntime` and `onnxruntime-gpu` conflict\n  Keep only one of them installed in the active environment.\n\n- CUDA backend not available on macOS\n  Use CPU mode or a remote/local service backend instead.\n\n## Output Validation\n\nAfter a successful parse, verify that the output directory contains:\n\n- `doc.md`\n- `doc.json`\n- `pages/`\n\nIf one of these is missing, treat the run as partial and report that explicitly.\n\nArchive v0.2.1: 7 files, 4898 bytes\n\nFiles: references/backend-config.md (1106b), references/cli-options.md (1099b), references/troubleshooting.md (1395b), scripts/check_ppx_env.sh (203b), scripts/sync_version.py (1312b), SKILL.md (2654b), _meta.json (129b)\n\nFile v0.2.1:SKILL.md\n\n---\nname: ppx-parse\nversion: 0.2.0\ntitle: PPX Parse\ndescription: >\n  Parse PDFs and images into Markdown/JSON using the `ppx` CLI.\n  Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs,\n  convert PDF/image to Markdown, preserve document layout, inspect parsing output.\n  Also triggers on: 解析PDF、图片转文字、扫描件识别、扫描件转文字、提取表格、\n  PDF转Markdown、文档解析、OCR识别、识别图片文字、解析图片、提取文档内容。\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    homepage: https://github.com/memect/memect-ppx\n---\n\n# PPX Parse\n\nUse the local `ppx` CLI to parse PDFs and images into structured Markdown and JSON.\n\n## Runtime Requirements\n\n- Use Python `>= 3.12`.\n- Prefer installing PPX into a virtual environment instead of the system Python.\n- If `ppx` is missing, read `references/troubleshooting.md` and create a virtual environment before installing dependencies.\n- Keep this skill's frontmatter `version` synchronized from the repository `pyproject.toml` with `scripts/sync_version.py`.\n\n## Workflow\n\n1. Confirm the runtime uses Python `>= 3.12`.\n2. Check the runtime with `scripts/check_ppx_env.sh`.\n3. If `ppx` is missing, create or use a virtual environment and install PPX there.\n4. Choose parsing options:\n   - Use `--ocr auto` by default.\n   - Use `--ocr yes` for scanned PDFs or screenshots.\n   - Use `--ocr no` for native PDFs when OCR causes noise.\n   - Use `--table auto` by default.\n   - Use `--table llm` only when the user needs highest table accuracy and an LLM backend is configured.\n5. Run `ppx parse <input> -o <output>`.\n6. Inspect the output folder and report the main artifacts:\n   - `doc.md`\n   - `doc.json`\n   - `pages/`\n   - `images/` when figures are extracted\n7. If parsing fails, summarize the failing step and load the relevant note from `references/`.\n\n## Common Commands\n\n```bash\nppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/\n```\n\n## Output Contract\n\n- Prefer returning the absolute output directory.\n- Mention whether the result came from `doc.md`, `doc.json`, or page-level files.\n- Call out OCR mode, table mode, and backend when they materially affect accuracy.\n\n## References\n\n- Read `references/cli-options.md` when choosing parse flags.\n- Read `references/backend-config.md` when using DeepSeek, Paddle, or GLM backends.\n- Read `references/troubleshooting.md` when PPX is missing, Python is too old, or runtime dependencies fail.\n\nFile v0.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.2.1\",\n  \"publishedAt\": 1777033794451\n}\n\nFile v0.2.1:references/backend-config.md\n\n# Backend Config\n\nOnly use an LLM backend when the user asks for higher accuracy on complex layouts or tables.\n\n## Backend Selection\n\n- `default`: Local default pipeline, best for privacy and CI.\n- `deepseek`: Best for complex layouts when a local vLLM endpoint is available.\n- `paddle`: Strong accuracy with lower GPU requirements.\n- `glm`: Faster OCR-style inference on compatible deployments.\n\n## Examples\n\n```bash\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n## Persistent Settings\n\nUse `--set` to avoid repeating backend config:\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\nIf backend parsing fails, fall back to the default pipeline unless the user explicitly requires the backend path.\n\nFile v0.2.1:references/cli-options.md\n\n# CLI Options\n\nUse these defaults unless the user requests something more specific.\n\n## Input Selection\n\n- `ppx parse <file> -o <dir>`: Parse one PDF or image.\n- `ppx parse <dir> -o <dir>`: Batch-parse a directory.\n- `--pages \"1-5,10,15-20\"`: Restrict parsing to selected pages.\n\n## OCR\n\n- `--ocr auto`: Default. Works for mixed native/scanned documents.\n- `--ocr yes`: Force OCR for scanned PDFs and raster-heavy pages.\n- `--ocr no`: Skip OCR for native PDFs with selectable text.\n\n## Tables\n\n- `--table auto`: Default.\n- `--table wbk`: White-background tables in ordinary documents.\n- `--table ybk`: Colored or dark-background tables.\n- `--table llm`: Highest table fidelity when an LLM backend is configured.\n- `--table no`: Skip table extraction.\n\n## Other Useful Flags\n\n- `--mode page|tree|ppt`: Select parse mode. Use `page` unless a different downstream structure is required.\n- `--workers N`: Parallelize directory parsing.\n- `--json`: Emit JSON-focused output.\n- `--cpu`: Force CPU mode.\n- `--debug` or `-x`: Keep extra debug output.\n- `--dev`: Save intermediate results for investigation.\n\nFile v0.2.1:references/troubleshooting.md\n\n# Troubleshooting\n\n## Python Version\n\n- Require Python `>= 3.12`.\n- Check the active interpreter with:\n\n```bash\npython3 --version\n```\n\n- If the system default is older than 3.12, create the virtual environment with an explicit interpreter such as `python3.12`.\n\n## Recommended Environment\n\n- Prefer a dedicated virtual environment for PPX.\n- Example setup:\n\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- If `python3.12` is unavailable, use any Python interpreter version `>= 3.12`.\n\n## `ppx` Not Found\n\n- Install the CLI:\n\n```bash\nsource .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- On headless Linux, prefer:\n\n```bash\npip install opencv-python-headless\n```\n\n## Common Runtime Issues\n\n- `ImportError: libGL.so.1`\n  Install `opencv-python-headless` or the system `libgl1` package.\n\n- `onnxruntime` and `onnxruntime-gpu` conflict\n  Keep only one of them installed in the active environment.\n\n- CUDA backend not available on macOS\n  Use CPU mode or a remote/local service backend instead.\n\n## Output Validation\n\nAfter a successful parse, verify that the output directory contains:\n\n- `doc.md`\n- `doc.json`\n- `pages/`\n\nIf one of these is missing, treat the run as partial and report that explicitly.\n\nArchive v0.2.0: 7 files, 4898 bytes\n\nFiles: references/backend-config.md (1106b), references/cli-options.md (1099b), references/troubleshooting.md (1395b), scripts/check_ppx_env.sh (203b), scripts/sync_version.py (1312b), SKILL.md (2654b), _meta.json (129b)\n\nFile v0.2.0:SKILL.md\n\n---\nname: ppx-parse\nversion: 0.2.0\ntitle: PPX Parse\ndescription: >\n  Parse PDFs and images into Markdown/JSON using the `ppx` CLI.\n  Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs,\n  convert PDF/image to Markdown, preserve document layout, inspect parsing output.\n  Also triggers on: 解析PDF、图片转文字、扫描件识别、扫描件转文字、提取表格、\n  PDF转Markdown、文档解析、OCR识别、识别图片文字、解析图片、提取文档内容。\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    homepage: https://github.com/memect/memect-ppx\n---\n\n# PPX Parse\n\nUse the local `ppx` CLI to parse PDFs and images into structured Markdown and JSON.\n\n## Runtime Requirements\n\n- Use Python `>= 3.12`.\n- Prefer installing PPX into a virtual environment instead of the system Python.\n- If `ppx` is missing, read `references/troubleshooting.md` and create a virtual environment before installing dependencies.\n- Keep this skill's frontmatter `version` synchronized from the repository `pyproject.toml` with `scripts/sync_version.py`.\n\n## Workflow\n\n1. Confirm the runtime uses Python `>= 3.12`.\n2. Check the runtime with `scripts/check_ppx_env.sh`.\n3. If `ppx` is missing, create or use a virtual environment and install PPX there.\n4. Choose parsing options:\n   - Use `--ocr auto` by default.\n   - Use `--ocr yes` for scanned PDFs or screenshots.\n   - Use `--ocr no` for native PDFs when OCR causes noise.\n   - Use `--table auto` by default.\n   - Use `--table llm` only when the user needs highest table accuracy and an LLM backend is configured.\n5. Run `ppx parse <input> -o <output>`.\n6. Inspect the output folder and report the main artifacts:\n   - `doc.md`\n   - `doc.json`\n   - `pages/`\n   - `images/` when figures are extracted\n7. If parsing fails, summarize the failing step and load the relevant note from `references/`.\n\n## Common Commands\n\n```bash\nppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/\n```\n\n## Output Contract\n\n- Prefer returning the absolute output directory.\n- Mention whether the result came from `doc.md`, `doc.json`, or page-level files.\n- Call out OCR mode, table mode, and backend when they materially affect accuracy.\n\n## References\n\n- Read `references/cli-options.md` when choosing parse flags.\n- Read `references/backend-config.md` when using DeepSeek, Paddle, or GLM backends.\n- Read `references/troubleshooting.md` when PPX is missing, Python is too old, or runtime dependencies fail.\n\nFile v0.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.2.0\",\n  \"publishedAt\": 1777033113642\n}\n\nFile v0.2.0:references/backend-config.md\n\n# Backend Config\n\nOnly use an LLM backend when the user asks for higher accuracy on complex layouts or tables.\n\n## Backend Selection\n\n- `default`: Local default pipeline, best for privacy and CI.\n- `deepseek`: Best for complex layouts when a local vLLM endpoint is available.\n- `paddle`: Strong accuracy with lower GPU requirements.\n- `glm`: Faster OCR-style inference on compatible deployments.\n\n## Examples\n\n```bash\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n## Persistent Settings\n\nUse `--set` to avoid repeating backend config:\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\nIf backend parsing fails, fall back to the default pipeline unless the user explicitly requires the backend path.\n\nFile v0.2.0:references/cli-options.md\n\n# CLI Options\n\nUse these defaults unless the user requests something more specific.\n\n## Input Selection\n\n- `ppx parse <file> -o <dir>`: Parse one PDF or image.\n- `ppx parse <dir> -o <dir>`: Batch-parse a directory.\n- `--pages \"1-5,10,15-20\"`: Restrict parsing to selected pages.\n\n## OCR\n\n- `--ocr auto`: Default. Works for mixed native/scanned documents.\n- `--ocr yes`: Force OCR for scanned PDFs and raster-heavy pages.\n- `--ocr no`: Skip OCR for native PDFs with selectable text.\n\n## Tables\n\n- `--table auto`: Default.\n- `--table wbk`: White-background tables in ordinary documents.\n- `--table ybk`: Colored or dark-background tables.\n- `--table llm`: Highest table fidelity when an LLM backend is configured.\n- `--table no`: Skip table extraction.\n\n## Other Useful Flags\n\n- `--mode page|tree|ppt`: Select parse mode. Use `page` unless a different downstream structure is required.\n- `--workers N`: Parallelize directory parsing.\n- `--json`: Emit JSON-focused output.\n- `--cpu`: Force CPU mode.\n- `--debug` or `-x`: Keep extra debug output.\n- `--dev`: Save intermediate results for investigation.\n\nFile v0.2.0:references/troubleshooting.md\n\n# Troubleshooting\n\n## Python Version\n\n- Require Python `>= 3.12`.\n- Check the active interpreter with:\n\n```bash\npython3 --version\n```\n\n- If the system default is older than 3.12, create the virtual environment with an explicit interpreter such as `python3.12`.\n\n## Recommended Environment\n\n- Prefer a dedicated virtual environment for PPX.\n- Example setup:\n\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- If `python3.12` is unavailable, use any Python interpreter version `>= 3.12`.\n\n## `ppx` Not Found\n\n- Install the CLI:\n\n```bash\nsource .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- On headless Linux, prefer:\n\n```bash\npip install opencv-python-headless\n```\n\n## Common Runtime Issues\n\n- `ImportError: libGL.so.1`\n  Install `opencv-python-headless` or the system `libgl1` package.\n\n- `onnxruntime` and `onnxruntime-gpu` conflict\n  Keep only one of them installed in the active environment.\n\n- CUDA backend not available on macOS\n  Use CPU mode or a remote/local service backend instead.\n\n## Output Validation\n\nAfter a successful parse, verify that the output directory contains:\n\n- `doc.md`\n- `doc.json`\n- `pages/`\n\nIf one of these is missing, treat the run as partial and report that explicitly.\n\nArchive v0.0.2: 3 files, 3257 bytes\n\nFiles: README.md (930b), SKILL.md (4200b), _meta.json (129b)\n\nFile v0.0.2:SKILL.md\n\n---\nname: memect-ppx\nversion: 0.0.2\ntitle: memect-ppx — High-Accuracy PDF / Image Parser\ndescription: Parse PDF and images into structured Markdown / JSON using PPX. Supports OCR, table extraction, formulas, multi-column layouts, and LLM backends.\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    primaryEnv: null\n---\n\n# PPX 解析 Skill\n\nPPX（memect-ppx）是一款本地运行的高精度文档解析引擎，将 PDF / 图片转换为\n结构化 Markdown 和 JSON，无需 GPU，开箱即用。\n\n## 安装\n\n```bash\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\nPython ≥ 3.12。在 Linux 无头环境下将 `opencv-contrib-python` 替换为\n`opencv-python-headless`。\n\n## 基本用法\n\n```bash\n# 解析单个 PDF，输出到 output/ 目录\nppx parse report.pdf -o output/\n\n# 解析图片\nppx parse scan.png -o output/\n\n# 批量解析目录\nppx parse docs/ -o output/\n\n# 只解析指定页面\nppx parse report.pdf --pages \"1-5,10,15-20\" -o output/\n```\n\n输出结构（写入 `<file>.out/`）：\n\n| 路径 | 说明 |\n| ---- | ---- |\n| `doc.md` | 完整文档 Markdown，含图形引用 |\n| `doc.json` | JSON 树：文档 → 页面 → 对象，每个对象含坐标 |\n| `pages/` | 逐页 Markdown / JSON，适合页面级处理 |\n| `images/` | 提取的图像区域（检测到图形时存在） |\n\n## OCR 控制\n\n```bash\nppx parse report.pdf --ocr auto    # 默认：自动判断\nppx parse report.pdf --ocr yes     # 强制 OCR（扫描件）\nppx parse report.pdf --ocr no      # 跳过 OCR（原生 PDF）\n```\n\n## 表格解析模式\n\n```bash\nppx parse file.pdf --table auto    # 默认：自动选择\nppx parse file.pdf --table wbk     # 白底表格（推荐普通文档）\nppx parse file.pdf --table ybk     # 彩色/深色背景表格\nppx parse file.pdf --table llm     # LLM 辅助（最高精度，需配置后端）\nppx parse file.pdf --table no      # 跳过表格解析\n```\n\n## LLM 后端\n\n| 后端 | 场景 | 显存需求 |\n| ---- | ---- | -------- |\n| `default` | 隐私、离网、CI | CPU，无需 GPU |\n| `deepseek` | 复杂版面最高精度 | ~20 GB |\n| `paddle` | 精度较好、显存小 | ~10 GB |\n| `glm` | 快速推理 | ~10 GB |\n\n```bash\n# 使用 DeepSeek-OCR-2 后端（需本地 vLLM 服务）\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\n# 使用 PaddleOCR-VL 后端\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\n# 使用 GLM-OCR 后端\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n持久化配置（避免每次重复填写）：\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\n## 其他选项\n\n```bash\n--mode page|tree|ppt     # 解析模式（默认 page）\n--workers N              # 目录并行解析线程数\n--docx / --no-docx       # 输出 DOCX\n--pptx / --no-pptx       # 输出 PPTX\n--json                   # 仅输出 JSON\n--cpu                    # 强制 CPU（即使有 GPU）\n--debug / -x             # 输出调试信息和中间图\n--dev                    # 开发模式，保存中间结果\n```\n\n## Python API\n\n```python\nfrom memect.pdf.parser import Parser\nfrom memect.pdf.base import KDocument\n\n# 单次解析\nwith Parser() as parser:\n    doc = KDocument(\"/path/your.pdf\")\n    parser.parse(doc)\n\n# 批量多进程\nfrom memect.pdf.base import KDocumentFactory\ndocs = [KDocumentFactory(\"/path/your.pdf\", params=None)]\nParser.batch(docs, max_workers=4)\n```\n\n`Parser` 对象全局共享，多次调用时只需实例化一次。\n\n## 常见问题\n\n- **Linux `ImportError: libGL.so.1`** → `pip install opencv-python-headless`\n  或 `sudo apt-get install -y libgl1`\n- **Mac 无法 GPU 加速** → Apple Silicon / Intel Mac 不支持 CUDA，CPU 模式正常运行\n- **`onnxruntime` 与 `onnxruntime-gpu` 冲突** → 只安装其中一个\n\n## 许可证\n\n非商业免费（PolyForm Noncommercial 1.0.0）。商用联系 `contact@memect.co`。\n在线体验：https://pdf2x.cn/\n\nFile v0.0.2:README.md\n\n# ppx-parse Skill\n\n将 PDF / 图片解析为结构化 Markdown / JSON 的 ClawHub AI Agent Skill，\n基于 [PPX](https://github.com/memect/memect-ppx) 引擎。\n\n## 功能\n\n- 解析 PDF、扫描件、图片为 Markdown / JSON\n- 支持 OCR、表格结构提取、公式、多列版面\n- 可选接入 DeepSeek-OCR、PaddleOCR-VL、GLM-OCR 等 LLM 后端\n- 本地运行，无需 GPU，保护隐私\n\n## 安装\n\n```bash\nclawhub skill install memect/ppx-parse\n```\n\n## 前置条件\n\n需本地安装 PPX CLI：\n\n```bash\npip install memect-ppx onnxruntime opencv-contrib-python\n```\n\n## 使用示例\n\n在 Claude Code 中直接提问：\n\n> \"帮我解析 report.pdf，提取所有表格\"\n> \"把这个扫描件 PDF 转成 Markdown\"\n> \"用 DeepSeek 后端解析这份复杂版面文档\"\n\n## 链接\n\n- [PPX GitHub](https://github.com/memect/memect-ppx)\n- [在线体验](https://pdf2x.cn/)\n- [ClawHub 页面](https://clawhub.ai/memect/ppx-parse)\n\nFile v0.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.0.2\",\n  \"publishedAt\": 1776935432605\n}","readmeExcerpt":"Skill: Memect Ppx Owner: lihanghang Summary: Parse PDFs and images into Markdown/JSON using the memect-ppx (ppx) CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDF... Tags: latest:0.2.6, markdown:0.0.2, ocr:0.0.2, parser:0.0.2, pdf:0.0.2, table:0.0.2 Version history: v0.2.6 | 2026-05-15T03:48:37.678Z | auto - Updated skill version to 0.2.6. - Improved description with explicit key","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"ppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/"},{"language":"bash","snippet":"ppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'"},{"language":"bash","snippet":"ppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\""},{"language":"bash","snippet":"python3 --version"},{"language":"bash","snippet":"python3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python"},{"language":"bash","snippet":"source .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: memect-ppx\nversion: 0.2.6\ntitle: memect-ppx\nuser-invocable: true\ndescription: >\n  Parse PDFs and images into Markdown/JSON using the memect-ppx (`ppx`) CLI.\n  Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs,\n  convert PDF/image to Markdown, preserve document layout, inspect parsing output.\n  Also triggers on: memect-ppx、ppx parse、解析PDF、图片转文字、扫描件识别、扫描件转文字、提取表格、\n  PDF转Markdown、文档解析、OCR识别、识别图片文字、解析图片、提取文档内容。\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - ppx\n    homepage: https://github.com/memect/memect-ppx\n---\n\n# memect-ppx\n\nUse the local `ppx` CLI to parse PDFs and images into structured Markdown and JSON.\n\n## Runtime Requirements\n\n- Use Python `>= 3.12`.\n- Prefer installing PPX into a virtual environment instead of the system Python.\n- If `ppx` is missing, read `references/troubleshooting.md` and create a virtual environment before installing dependencies.\n- Keep this skill's frontmatter `version` synchronized from the repository `pyproject.toml` with `scripts/sync_version.py`.\n\n## Workflow\n\n1. Confirm the runtime uses Python `>= 3.12`.\n2. Check the runtime with `scripts/check_ppx_env.sh`.\n3. If `ppx` is missing, create or use a virtual environment and install PPX there.\n4. Choose parsing options:\n   - Use `--ocr auto` by default.\n   - Use `--ocr yes` for scanned PDFs or screenshots.\n   - Use `--ocr no` for native PDFs when OCR causes noise.\n   - Use `--table auto` by default.\n   - Use `--table llm` only when the user needs highest table accuracy and an LLM backend is configured.\n5. Run `ppx parse <input> -o <output>`.\n6. Inspect the output folder and report the main artifacts:\n   - `doc.md`\n   - `doc.json`\n   - `pages/`\n   - `images/` when figures are extracted\n7. If parsing fails, summarize the failing step and load the relevant note from `references/`.\n\n## Common Commands\n\n```bash\nppx parse report.pdf -o output/\nppx parse scan.pdf --ocr yes -o output/\nppx parse figure.png -o output/\nppx parse report.pdf --pages \"1-5,10\" -o output/\nppx parse report.pdf --table llm --backend deepseek -o output/\n```\n\n## Output Contract\n\n- Prefer returning the absolute output directory.\n- Mention whether the result came from `doc.md`, `doc.json`, or page-level files.\n- Call out OCR mode, table mode, and backend when they materially affect accuracy.\n\n## References\n\n- Read `references/cli-options.md` when choosing parse flags.\n- Read `references/backend-config.md` when using DeepSeek, Paddle, or GLM backends.\n- Read `references/troubleshooting.md` when PPX is missing, Python is too old, or runtime dependencies fail."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7bp35421dmza76vk1621mnan81syam\",\n  \"slug\": \"memect-ppx\",\n  \"version\": \"0.2.6\",\n  \"publishedAt\": 1778816917678\n}"},{"path":"references/backend-config.md","content":"# Backend Config\n\nOnly use an LLM backend when the user asks for higher accuracy on complex layouts or tables.\n\n## Backend Selection\n\n- `default`: Local default pipeline, best for privacy and CI.\n- `deepseek`: Best for complex layouts when a local vLLM endpoint is available.\n- `paddle`: Strong accuracy with lower GPU requirements.\n- `glm`: Faster OCR-style inference on compatible deployments.\n\n## Examples\n\n```bash\nppx parse report.pdf --backend deepseek \\\n  --deepseek '{\"base_url\":\"http://127.0.0.1:4000/v1\",\"model\":\"deepseek-ocr-2\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend paddle \\\n  --paddle '{\"base_url\":\"http://127.0.0.1:4001/v1\",\"model\":\"paddleocr-vl\",\"api_key\":\"\"}'\n\nppx parse report.pdf --backend glm \\\n  --glm '{\"base_url\":\"http://127.0.0.1:4002/v1\",\"model\":\"glmocr\",\"api_key\":\"\"}'\n```\n\n## Persistent Settings\n\nUse `--set` to avoid repeating backend config:\n\n```bash\nppx parse report.pdf --set backend=\"deepseek\" \\\n  --set deepseek.base_url=\"http://127.0.0.1:4000/v1\"\n```\n\nIf backend parsing fails, fall back to the default pipeline unless the user explicitly requires the backend path."},{"path":"references/cli-options.md","content":"# CLI Options\n\nUse these defaults unless the user requests something more specific.\n\n## Input Selection\n\n- `ppx parse <file> -o <dir>`: Parse one PDF or image.\n- `ppx parse <dir> -o <dir>`: Batch-parse a directory.\n- `--pages \"1-5,10,15-20\"`: Restrict parsing to selected pages.\n\n## OCR\n\n- `--ocr auto`: Default. Works for mixed native/scanned documents.\n- `--ocr yes`: Force OCR for scanned PDFs and raster-heavy pages.\n- `--ocr no`: Skip OCR for native PDFs with selectable text.\n\n## Tables\n\n- `--table auto`: Default.\n- `--table wbk`: White-background tables in ordinary documents.\n- `--table ybk`: Colored or dark-background tables.\n- `--table llm`: Highest table fidelity when an LLM backend is configured.\n- `--table no`: Skip table extraction.\n\n## Other Useful Flags\n\n- `--mode page|tree|ppt`: Select parse mode. Use `page` unless a different downstream structure is required.\n- `--workers N`: Parallelize directory parsing.\n- `--html`: Emit `doc.html` in the output directory for HTML preview/export.\n- `--json`: Emit JSON-focused output.\n- `--cpu`: Force CPU mode.\n- `--debug` or `-x`: Keep extra debug output.\n- `--dev`: Save intermediate results for investigation."},{"path":"references/troubleshooting.md","content":"# Troubleshooting\n\n## Python Version\n\n- Require Python `>= 3.12`.\n- Check the active interpreter with:\n\n```bash\npython3 --version\n```\n\n- If the system default is older than 3.12, create the virtual environment with an explicit interpreter such as `python3.12`.\n\n## Recommended Environment\n\n- Prefer a dedicated virtual environment for PPX.\n- Example setup:\n\n```bash\npython3.12 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- If `python3.12` is unavailable, use any Python interpreter version `>= 3.12`.\n\n## `ppx` Not Found\n\n- Install the CLI:\n\n```bash\nsource .venv/bin/activate\npip install memect-ppx\npip install onnxruntime\npip install opencv-contrib-python\n```\n\n- On headless Linux, prefer:\n\n```bash\npip install opencv-python-headless\n```\n\n## Common Runtime Issues\n\n- `ImportError: libGL.so.1`\n  Install `opencv-python-headless` or the system `libgl1` package.\n\n- `onnxruntime` and `onnxruntime-gpu` conflict\n  Keep only one of them installed in the active environment.\n\n- CUDA backend not available on macOS\n  Use CPU mode or a remote/local service backend instead.\n\n## Output Validation\n\nAfter a successful parse, verify that the output directory contains:\n\n- `doc.md`\n- `doc.json`\n- `pages/`\n\nIf one of these is missing, treat the run as partial and report that explicitly."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Parse PDFs and images into Markdown/JSON using the memect-ppx (`ppx`) CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDF... Skill: Memect Ppx Owner: lihanghang Summary: Parse PDFs and images into Markdown/JSON using the memect-ppx (ppx) CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDF... Tags: latest:0.2.6, markdown:0.0.2, ocr:0.0.2, parser:0.0.2, pdf:0.0.2, table:0.0.2 Version history: v0.2.6 | 2026-05-15T03:48:37.678Z | auto - Updated skill version to 0.2.6. - Improved description with explicit key","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1189,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T01:32:39.896Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T01:32:39.896Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-14T15:58:12.643Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}