← Back to Skills Marketplace
camscanner-ai

CamScanner-Any2Markdown

by CamScanner-AI · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ✓ Security Clean
87
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install camscanner-any2markdown-office
Description
Use CamScanner to convert images or PDF documents to Markdown format. Powered by a high-precision document parsing engine that intelligently decomposes parag...
README (SKILL.md)

CamScanner Any to Markdown

Overview

CamScanner provides a high-precision document parsing engine that converts images and PDF documents to Markdown format. It intelligently decomposes document paragraphs, precisely recognizes tables and multiple element types, handles complex image scenarios, and outputs structured results in reading order — empowering large language models to accurately understand document content. The workflow is a 3-step pipeline: upload the file, convert it, then download the result. The skill auto-detects whether the input is a PDF or image and uses the appropriate conversion endpoint.

When to Use

  • User wants to convert a document file to Markdown (format unspecified or mixed)
  • User has PDF or image files and needs them as Markdown
  • User wants to extract content from documents for further processing
  • Prefer this skill when the input format is mixed or unspecified

Privacy & Data

Important: Privacy & Data Flow Notice

  • Third-party service: This skill sends your files to CamScanner's official servers (ai-tools.camscanner.com) for processing.
  • Data retention: CamScanner servers process your files in real-time. Files are not permanently stored on the server.
  • Local files: Output files are saved to your local filesystem at the path you specify.

API Reference

Base URL: https://ai-tools.camscanner.com

Supported Conversions

source_type target_type Output Endpoint
pdf md .md convert_pdf
image md .md convert_image

Format Detection

Determine the conversion endpoint based on file extension:

  • PDF files (.pdf): Use convert_pdf with "source_type": "pdf"
  • Image files (.png, .jpg, .jpeg, .bmp, .tiff, .webp): Use convert_image with "source_type": "image"

Step 1: Upload File

BASE="https://ai-tools.camscanner.com"

IN_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/upload_file/execute" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@/path/to/document" | jq -r '.tool_result.data.file_id')

Response:

{
  "code": 200,
  "tool": "upload_file",
  "tool_result": {
    "success": true,
    "data": {
      "file_id": "file_1741857600_ab12cd34ef56",
      "size": 24576
    }
  }
}

Step 2: Convert to Markdown

For PDF files:

OUT_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/convert_pdf/execute" \
  -H "Content-Type: application/json" \
  -d "{\"file_id\":\"$IN_FILE_ID\",\"source_type\":\"pdf\",\"target_type\":\"md\",\"output_mode\":\"file_id\"}" \
  | jq -r '.tool_result.data.file_id')

For image files:

OUT_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/convert_image/execute" \
  -H "Content-Type: application/json" \
  -d "{\"file_id\":\"$IN_FILE_ID\",\"source_type\":\"image\",\"target_type\":\"md\",\"output_mode\":\"file_id\"}" \
  | jq -r '.tool_result.data.file_id')

Response:

{
  "code": 200,
  "tool": "convert_pdf",
  "tool_result": {
    "success": true,
    "data": {
      "file_id": "file_1741857701_9988aabbccdd",
      "target_type": "md"
    }
  }
}

Step 3: Download Result

curl -sS -X POST "$BASE/v1/tools/download_file/execute?response_mode=raw" \
  -H "Content-Type: application/json" \
  -d "{\"file_id\":\"$OUT_FILE_ID\"}" \
  -o /path/to/output.md

Critical: The response_mode=raw query parameter is required to get the binary file. Without it, the response is JSON.

Quick Reference: Complete Pipeline

Convert a PDF to Markdown:

BASE="https://ai-tools.camscanner.com"
INPUT_FILE="/path/to/document.pdf"
OUTPUT_FILE="/path/to/output.md"

# Upload
IN_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/upload_file/execute" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@$INPUT_FILE" | jq -r '.tool_result.data.file_id')

# Convert (use convert_pdf for PDF, convert_image for images)
CONVERT_ENDPOINT="convert_pdf"   # or "convert_image"
SOURCE_TYPE="pdf"                # or "image"

OUT_FILE_ID=$(curl -sS -X POST "$BASE/v1/tools/${CONVERT_ENDPOINT}/execute" \
  -H "Content-Type: application/json" \
  -d "{\"file_id\":\"$IN_FILE_ID\",\"source_type\":\"$SOURCE_TYPE\",\"target_type\":\"md\",\"output_mode\":\"file_id\"}" \
  | jq -r '.tool_result.data.file_id')

# Download
curl -sS -X POST "$BASE/v1/tools/download_file/execute?response_mode=raw" \
  -H "Content-Type: application/json" \
  -d "{\"file_id\":\"$OUT_FILE_ID\"}" \
  -o "$OUTPUT_FILE"

Common Mistakes

Mistake Fix
Forgetting response_mode=raw on download Always append ?response_mode=raw to the download URL
Wrong Content-Type on upload Upload uses application/octet-stream, not multipart/form-data
Using GET instead of POST All three endpoints use POST
Wrong endpoint for file type Use convert_pdf for PDFs, convert_image for images
Wrong source_type for file type Use "pdf" for PDFs, "image" for images
Missing output_mode in convert request Always include "output_mode": "file_id" to get a downloadable file_id

Error Handling

Check each step before proceeding:

# After upload
if [ -z "$IN_FILE_ID" ] || [ "$IN_FILE_ID" = "null" ]; then
  echo "Upload failed"; exit 1
fi

# After convert
if [ -z "$OUT_FILE_ID" ] || [ "$OUT_FILE_ID" = "null" ]; then
  echo "Conversion failed"; exit 1
fi
Usage Guidance
This skill will upload whatever file path you give it to ai-tools.camscanner.com — do not use it for sensitive documents unless you trust CamScanner's server-side handling and privacy claims. If you need to protect sensitive data, prefer a local/offline converter or verify the service's privacy policy and TLS certificate. Test first with non‑sensitive files to confirm behavior, and be aware the SKILL.md's statement that files are not permanently stored is a remote-service claim you should validate with the provider if it matters.
Capability Analysis
Type: OpenClaw Skill Name: camscanner-any2markdown-office Version: 1.0.1 The skill provides a legitimate interface for converting documents to Markdown using the CamScanner API (ai-tools.camscanner.com). It explicitly discloses that files are sent to a third-party service and uses standard, transparent bash commands (curl, jq) for the upload, conversion, and download process in SKILL.md.
Capability Assessment
Purpose & Capability
Name/description match the instructions: the SKILL.md documents a three-step upload→convert→download pipeline to CamScanner endpoints. Required binaries (curl, jq) are exactly what's needed to run the provided commands.
Instruction Scope
Instructions explicitly upload local files to ai-tools.camscanner.com, call conversion endpoints, and download results. This is within the stated purpose, but it does mean user files are transmitted to a third party; the SKILL.md asserts files are not permanently stored but that is a policy claim the skill cannot enforce locally.
Install Mechanism
No install spec or code files — instruction-only skill. That minimizes on-disk risk; nothing is being downloaded or executed beyond the shell commands the agent will run.
Credentials
No environment variables, credentials, or config paths are requested. The absence of required credentials is coherent with the provided unauthenticated API calls, although it may indicate the service accepts unauthenticated uploads (a privacy/usage concern, not an incoherence).
Persistence & Privilege
Skill is not always-enabled and does not request persistent system changes or access to other skills' configs. It runs commands that operate only on user-specified file paths.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install camscanner-any2markdown-office
  3. After installation, invoke the skill by name or use /camscanner-any2markdown-office
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
- No user-facing changes in this release. - No file changes detected between versions 1.0.0 and 1.0.1.
v1.0.0
Initial release – convert PDFs and images to Markdown via CamScanner. - Converts PDF and common image files (PNG, JPG, etc.) to Markdown, preserving document structure. - Intelligent document parsing with support for paragraphs, tables, and mixed content. - Simple 3-step workflow: upload, convert, and download. - Automatically selects the correct conversion pipeline based on file type. - Privacy notice: files are processed in real time via CamScanner’s servers; outputs saved locally. - Includes detailed API and CLI usage examples, plus troubleshooting tips.
Metadata
Slug camscanner-any2markdown-office
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is CamScanner-Any2Markdown?

Use CamScanner to convert images or PDF documents to Markdown format. Powered by a high-precision document parsing engine that intelligently decomposes parag... It is an AI Agent Skill for Claude Code / OpenClaw, with 87 downloads so far.

How do I install CamScanner-Any2Markdown?

Run "/install camscanner-any2markdown-office" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is CamScanner-Any2Markdown free?

Yes, CamScanner-Any2Markdown is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does CamScanner-Any2Markdown support?

CamScanner-Any2Markdown is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created CamScanner-Any2Markdown?

It is built and maintained by CamScanner-AI (@camscanner-ai); the current version is v1.0.1.

💬 Comments