{
  "schemaVersion": "1.0",
  "item": {
    "slug": "stirling-pdf",
    "name": "Stirling PDF",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/angusthefuzz/stirling-pdf",
    "canonicalUrl": "https://clawhub.ai/angusthefuzz/stirling-pdf",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/stirling-pdf",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=stirling-pdf",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/pdf.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/stirling-pdf"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/stirling-pdf",
    "agentPageUrl": "https://openagent3.xyz/skills/stirling-pdf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stirling-pdf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stirling-pdf/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Stirling-PDF Skill",
        "body": "Self-hosted PDF manipulation platform with 60+ tools via REST API."
      },
      {
        "title": "Configuration",
        "body": "Set these environment variables:\n\nSTIRLING_PDF_URL — Your Stirling-PDF instance URL (default: http://localhost:8080)\nSTIRLING_API_KEY — API key if authentication is enabled"
      },
      {
        "title": "Docs",
        "body": "Official docs: https://docs.stirlingpdf.com\nSwagger UI: <your-instance>/swagger-ui/index.html on your deployment"
      },
      {
        "title": "Quick Commands",
        "body": "# Use the wrapper script\nnode ~/.openclaw/skills/stirling-pdf/scripts/pdf.js <operation> [options]\n\n# Examples:\nnode pdf.js merge file1.pdf file2.pdf -o merged.pdf\nnode pdf.js split input.pdf -o ./output-dir\nnode pdf.js compress input.pdf -o compressed.pdf\nnode pdf.js ocr input.pdf -o searchable.pdf\nnode pdf.js convert-to-pdf document.docx -o output.pdf\nnode pdf.js pdf-to-word input.pdf -o output.docx\nnode pdf.js add-watermark input.pdf \"DRAFT\" -o watermarked.pdf"
      },
      {
        "title": "Page Operations",
        "body": "merge - Combine multiple PDFs\nsplit - Split PDF into parts\nrotate - Rotate pages\nextract-pages - Extract specific pages\nreorder - Reorganize pages"
      },
      {
        "title": "Conversion",
        "body": "convert-to-pdf - Word, Excel, Images, HTML → PDF\npdf-to-word - PDF → Word\npdf-to-image - PDF → Images\npdf-to-text - Extract text"
      },
      {
        "title": "Content",
        "body": "compress - Reduce file size\nocr - Make scanned PDFs searchable\nadd-watermark - Add text/image watermark\nadd-stamp - Add stamp\nredact - Remove sensitive content\nsign - Add signature"
      },
      {
        "title": "Security",
        "body": "add-password - Password protect\nremove-password - Remove password\nsanitize - Remove metadata/scripts"
      },
      {
        "title": "Direct API Usage",
        "body": "For operations not covered by the script, call the API directly:\n\ncurl -X POST \"$STIRLING_PDF_URL/api/v1/general/merge-pdfs\" \\\n  -H \"X-API-KEY: $STIRLING_API_KEY\" \\\n  -H \"Content-Type: multipart/form-data\" \\\n  -F \"fileInput=@file1.pdf\" \\\n  -F \"fileInput=@file2.pdf\" \\\n  -o merged.pdf\n\nCheck Swagger UI at <your-instance>/swagger-ui/index.html for all endpoints."
      },
      {
        "title": "Common Endpoints",
        "body": "OperationEndpointMerge/api/v1/general/merge-pdfsSplit/api/v1/general/split-pagesCompress/api/v1/misc/compress-pdfOCR/api/v1/misc/ocr-pdfPDF to Image/api/v1/convert/pdf/imgImage to PDF/api/v1/convert/img/pdfAdd Watermark/api/v1/security/add-watermarkAdd Password/api/v1/security/add-password"
      },
      {
        "title": "Notes",
        "body": "Most endpoints use POST with multipart/form-data\nFile input parameter is usually fileInput\nResponse is the processed PDF file\nCheck Swagger UI for exact parameters per operation"
      }
    ],
    "body": "Stirling-PDF Skill\n\nSelf-hosted PDF manipulation platform with 60+ tools via REST API.\n\nConfiguration\n\nSet these environment variables:\n\nSTIRLING_PDF_URL — Your Stirling-PDF instance URL (default: http://localhost:8080)\nSTIRLING_API_KEY — API key if authentication is enabled\nDocs\nOfficial docs: https://docs.stirlingpdf.com\nSwagger UI: <your-instance>/swagger-ui/index.html on your deployment\nQuick Commands\n# Use the wrapper script\nnode ~/.openclaw/skills/stirling-pdf/scripts/pdf.js <operation> [options]\n\n# Examples:\nnode pdf.js merge file1.pdf file2.pdf -o merged.pdf\nnode pdf.js split input.pdf -o ./output-dir\nnode pdf.js compress input.pdf -o compressed.pdf\nnode pdf.js ocr input.pdf -o searchable.pdf\nnode pdf.js convert-to-pdf document.docx -o output.pdf\nnode pdf.js pdf-to-word input.pdf -o output.docx\nnode pdf.js add-watermark input.pdf \"DRAFT\" -o watermarked.pdf\n\nAvailable Operations\nPage Operations\nmerge - Combine multiple PDFs\nsplit - Split PDF into parts\nrotate - Rotate pages\nextract-pages - Extract specific pages\nreorder - Reorganize pages\nConversion\nconvert-to-pdf - Word, Excel, Images, HTML → PDF\npdf-to-word - PDF → Word\npdf-to-image - PDF → Images\npdf-to-text - Extract text\nContent\ncompress - Reduce file size\nocr - Make scanned PDFs searchable\nadd-watermark - Add text/image watermark\nadd-stamp - Add stamp\nredact - Remove sensitive content\nsign - Add signature\nSecurity\nadd-password - Password protect\nremove-password - Remove password\nsanitize - Remove metadata/scripts\nDirect API Usage\n\nFor operations not covered by the script, call the API directly:\n\ncurl -X POST \"$STIRLING_PDF_URL/api/v1/general/merge-pdfs\" \\\n  -H \"X-API-KEY: $STIRLING_API_KEY\" \\\n  -H \"Content-Type: multipart/form-data\" \\\n  -F \"fileInput=@file1.pdf\" \\\n  -F \"fileInput=@file2.pdf\" \\\n  -o merged.pdf\n\n\nCheck Swagger UI at <your-instance>/swagger-ui/index.html for all endpoints.\n\nCommon Endpoints\nOperation\tEndpoint\nMerge\t/api/v1/general/merge-pdfs\nSplit\t/api/v1/general/split-pages\nCompress\t/api/v1/misc/compress-pdf\nOCR\t/api/v1/misc/ocr-pdf\nPDF to Image\t/api/v1/convert/pdf/img\nImage to PDF\t/api/v1/convert/img/pdf\nAdd Watermark\t/api/v1/security/add-watermark\nAdd Password\t/api/v1/security/add-password\nNotes\nMost endpoints use POST with multipart/form-data\nFile input parameter is usually fileInput\nResponse is the processed PDF file\nCheck Swagger UI for exact parameters per operation"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/angusthefuzz/stirling-pdf",
    "publisherUrl": "https://clawhub.ai/angusthefuzz/stirling-pdf",
    "owner": "angusthefuzz",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/stirling-pdf",
    "downloadUrl": "https://openagent3.xyz/downloads/stirling-pdf",
    "agentUrl": "https://openagent3.xyz/skills/stirling-pdf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stirling-pdf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stirling-pdf/agent.md"
  }
}