{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tex-render",
    "name": "TeX Render",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/TheBigoranger/tex-render",
    "canonicalUrl": "https://clawhub.ai/TheBigoranger/tex-render",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tex-render",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tex-render",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "package.json",
      "scripts/render.js",
      "scripts/validate.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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "tex-render",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T01:20:01.391Z",
      "expiresAt": "2026-05-11T01:20:01.391Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tex-render",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tex-render",
        "contentDisposition": "attachment; filename=\"tex-render-1.1.4.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "tex-render"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tex-render"
    },
    "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/tex-render",
    "agentPageUrl": "https://openagent3.xyz/skills/tex-render/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tex-render/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tex-render/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "TeX Render 📐",
        "body": "Renders LaTeX math to PNG, JPEG, WebP, or AVIF (and SVG). Use when you need a viewable image from LaTeX instead of raw code.\n\nUser notice: When this skill is active, the agent will automatically render any LaTeX in its replies as images and send them in order—without asking for permission. If you prefer to be prompted or to receive raw LaTeX instead, do not enable this skill (or remove it from your workspace)."
      },
      {
        "title": "Location",
        "body": "The render script lives in the same skill folder as this SKILL.md:\n\n<skill_folder>/\n├── SKILL.md\n├── package.json\n└── scripts/\n    ├─── render.js\n    └─── validate.js\n\nUse the directory containing this SKILL.md as the skill path. The script is at scripts/render.js relative to that folder. Invoke: node <skill_folder>/scripts/render.js. The agent loading this skill has the skill path—use it to run the script."
      },
      {
        "title": "Install",
        "body": "One-time setup. After clawhub install tex-render, run npm install in the skill folder:\n\ncd <skill_folder>\nnpm install\n\nSource: All dependencies are from the public npm registry only (no ad-hoc downloads, shorteners, or remote archives).\nNative module: The sharp package may compile during install; ensure Node.js 14+ and a working build toolchain if needed (see sharp install for platform notes)."
      },
      {
        "title": "When to Use",
        "body": "User or task asks to \"render this equation as image\" or \"show formula as picture\"\nYour reply would contain LaTeX — render formulas as images first, then respond with plain text"
      },
      {
        "title": "Workflow: Response Contains LaTeX",
        "body": "Output your reply interleaved: whenever you would output LaTeX, do this instead:\n\nSend the preceding plain text — call message with the text written so far (no LaTeX).\nRender the LaTeX expression with this skill (default PNG; no --output dataurl). Parse the JSON for the PNG path.\nSend the image — call message with action: \"send\", path set to the rendered PNG, and message as short caption.\nContinue outputting the rest of the message. Repeat the cycle (text → render → send image) for each LaTeX block.\n\nDo not output raw LaTeX. Do not ask the user for permission to render — render and send images immediately when LaTeX would appear in your reply (users are informed of this automatic behavior in the user notice above). Do not accumulate everything and send at the end — send text and images in order as you go.\n\nCritical: Output in order: plain text → send → LaTeX → render → send image → plain text → send → LaTeX → render → send image → … The user must receive text and images in the natural reading order.\n\nExample: Explaining Lagrangian:\n→ Send \"The Lagrangian is defined as \" → Render L = T - V → Send image with caption \"L = T - V\" → Send \". The Euler-Lagrange equation is \" → Render d/dt(∂L/∂q̇) - ∂L/∂q = 0 → Send image → Send \" — this yields the equations of motion.\""
      },
      {
        "title": "Usage",
        "body": "Run: node <skill_folder>/scripts/render.js (or node scripts/render.js when already in the skill folder).\n\nEscaping: When invoking via shell:\n\nSingle quotes for LaTeX without apostrophe: node scripts/render.js '\\frac{d}{dt}'\nStdin when LaTeX contains apostrophe (e.g. y' for derivative): printf '%s' \"y' = f(t, y), \\quad y(t_0)=y_0\" | node scripts/render.js — use double quotes so ' is literal; backslashes like \\quad stay intact.\n\nnode <skill_folder>/scripts/render.js --help\n\nDefault output is PNG to ~/.openclaw/media/tex-render/. The script prints one JSON line with file paths: {\"svg\":\"...\",\"png\":\"...\"} or {\"svg\":\"...\",\"jpeg\":\"...\"}, etc. Use --output dataurl only when the conversation system explicitly supports Data URL images (otherwise it may show raw base64 text)."
      },
      {
        "title": "Examples (validated by npm test)",
        "body": "Use <skill_folder> = the directory containing this SKILL.md.\n\nBasic (PNG default):\n\nnode <skill_folder>/scripts/render.js 'E = mc^2'\nnode <skill_folder>/scripts/render.js '$$\\frac{F}{m}=a$$'\n\nLaTeX with apostrophe (e.g. y'): use stdin to avoid shell quoting issues:\n\nprintf '%s' \"y' = f(t, y), \\quad y(t_0)=y_0\" | node <skill_folder>/scripts/render.js\n\nJPEG / WebP / AVIF:\n\nnode <skill_folder>/scripts/render.js --format jpeg --quality 80 '\\frac{F}{m}=a' ./out/formula\nnode <skill_folder>/scripts/render.js --format webp 'x^2 + y^2 = z^2'\nnode <skill_folder>/scripts/render.js --format avif 'E = mc^2'\n\nData URL (no file):\n\nnode <skill_folder>/scripts/render.js --output dataurl 'E = mc^2'\n\nScale by width:\n\nnode <skill_folder>/scripts/render.js --width 800 '\\int_0^\\infty e^{-x^2} dx'\n\nInline math (smaller rendering):\n\nnode <skill_folder>/scripts/render.js --inline 'a^2 + b^2 = c^2'\n\nHeight and zoom: Use --height N or --zoom N as documented in --help."
      },
      {
        "title": "Automatic Triggering (TOOLS.md)",
        "body": "To make the agent use tex-render without the user explicitly asking, add to your workspace TOOLS.md:\n\n## LaTeX in Responses (tex-render)\n\n**Whenever your reply would contain LaTeX** (equations, formulas, scientific notation), **use the tex-render skill** automatically. Examples: physics, math, chemistry questions with formulas.\n\n**Workflow:** send plain text → render LaTeX → send image via message tool → continue text. Use single quotes when invoking (e.g. `'\\frac{a}{b}'`).\n\n### LaTeX / Equations (tex-render)\n\n- When answering scientific or math questions, if your reply would contain LaTeX, use tex-render and send images — do this automatically.\n\nTest: Ask \"Explain the Lagrangian formula\" without mentioning tex-render. The agent should render and send images."
      },
      {
        "title": "Repository",
        "body": "This package is maintained at https://github.com/TheBigoranger/tex-render. You can open issues there for bug reports and feature requests."
      }
    ],
    "body": "TeX Render 📐\n\nRenders LaTeX math to PNG, JPEG, WebP, or AVIF (and SVG). Use when you need a viewable image from LaTeX instead of raw code.\n\nUser notice: When this skill is active, the agent will automatically render any LaTeX in its replies as images and send them in order—without asking for permission. If you prefer to be prompted or to receive raw LaTeX instead, do not enable this skill (or remove it from your workspace).\n\nLocation\n\nThe render script lives in the same skill folder as this SKILL.md:\n\n<skill_folder>/\n├── SKILL.md\n├── package.json\n└── scripts/\n    ├─── render.js\n    └─── validate.js\n\n\nUse the directory containing this SKILL.md as the skill path. The script is at scripts/render.js relative to that folder. Invoke: node <skill_folder>/scripts/render.js. The agent loading this skill has the skill path—use it to run the script.\n\nInstall\n\nOne-time setup. After clawhub install tex-render, run npm install in the skill folder:\n\ncd <skill_folder>\nnpm install\n\nSource: All dependencies are from the public npm registry only (no ad-hoc downloads, shorteners, or remote archives).\nNative module: The sharp package may compile during install; ensure Node.js 14+ and a working build toolchain if needed (see sharp install for platform notes).\nWhen to Use\nUser or task asks to \"render this equation as image\" or \"show formula as picture\"\nYour reply would contain LaTeX — render formulas as images first, then respond with plain text\nWorkflow: Response Contains LaTeX\n\nOutput your reply interleaved: whenever you would output LaTeX, do this instead:\n\nSend the preceding plain text — call message with the text written so far (no LaTeX).\nRender the LaTeX expression with this skill (default PNG; no --output dataurl). Parse the JSON for the PNG path.\nSend the image — call message with action: \"send\", path set to the rendered PNG, and message as short caption.\nContinue outputting the rest of the message. Repeat the cycle (text → render → send image) for each LaTeX block.\n\nDo not output raw LaTeX. Do not ask the user for permission to render — render and send images immediately when LaTeX would appear in your reply (users are informed of this automatic behavior in the user notice above). Do not accumulate everything and send at the end — send text and images in order as you go.\n\nCritical: Output in order: plain text → send → LaTeX → render → send image → plain text → send → LaTeX → render → send image → … The user must receive text and images in the natural reading order.\n\nExample: Explaining Lagrangian:\n→ Send \"The Lagrangian is defined as \" → Render L = T - V → Send image with caption \"L = T - V\" → Send \". The Euler-Lagrange equation is \" → Render d/dt(∂L/∂q̇) - ∂L/∂q = 0 → Send image → Send \" — this yields the equations of motion.\"\n\nUsage\n\nRun: node <skill_folder>/scripts/render.js (or node scripts/render.js when already in the skill folder).\n\nEscaping: When invoking via shell:\n\nSingle quotes for LaTeX without apostrophe: node scripts/render.js '\\frac{d}{dt}'\nStdin when LaTeX contains apostrophe (e.g. y' for derivative): printf '%s' \"y' = f(t, y), \\quad y(t_0)=y_0\" | node scripts/render.js — use double quotes so ' is literal; backslashes like \\quad stay intact.\nnode <skill_folder>/scripts/render.js --help\n\n\nDefault output is PNG to ~/.openclaw/media/tex-render/. The script prints one JSON line with file paths: {\"svg\":\"...\",\"png\":\"...\"} or {\"svg\":\"...\",\"jpeg\":\"...\"}, etc. Use --output dataurl only when the conversation system explicitly supports Data URL images (otherwise it may show raw base64 text).\n\nExamples (validated by npm test)\n\nUse <skill_folder> = the directory containing this SKILL.md.\n\nBasic (PNG default):\n\nnode <skill_folder>/scripts/render.js 'E = mc^2'\nnode <skill_folder>/scripts/render.js '$$\\frac{F}{m}=a$$'\n\n\nLaTeX with apostrophe (e.g. y'): use stdin to avoid shell quoting issues:\n\nprintf '%s' \"y' = f(t, y), \\quad y(t_0)=y_0\" | node <skill_folder>/scripts/render.js\n\n\nJPEG / WebP / AVIF:\n\nnode <skill_folder>/scripts/render.js --format jpeg --quality 80 '\\frac{F}{m}=a' ./out/formula\nnode <skill_folder>/scripts/render.js --format webp 'x^2 + y^2 = z^2'\nnode <skill_folder>/scripts/render.js --format avif 'E = mc^2'\n\n\nData URL (no file):\n\nnode <skill_folder>/scripts/render.js --output dataurl 'E = mc^2'\n\n\nScale by width:\n\nnode <skill_folder>/scripts/render.js --width 800 '\\int_0^\\infty e^{-x^2} dx'\n\n\nInline math (smaller rendering):\n\nnode <skill_folder>/scripts/render.js --inline 'a^2 + b^2 = c^2'\n\n\nHeight and zoom: Use --height N or --zoom N as documented in --help.\n\nAutomatic Triggering (TOOLS.md)\n\nTo make the agent use tex-render without the user explicitly asking, add to your workspace TOOLS.md:\n\n## LaTeX in Responses (tex-render)\n\n**Whenever your reply would contain LaTeX** (equations, formulas, scientific notation), **use the tex-render skill** automatically. Examples: physics, math, chemistry questions with formulas.\n\n**Workflow:** send plain text → render LaTeX → send image via message tool → continue text. Use single quotes when invoking (e.g. `'\\frac{a}{b}'`).\n\n### LaTeX / Equations (tex-render)\n\n- When answering scientific or math questions, if your reply would contain LaTeX, use tex-render and send images — do this automatically.\n\n\nTest: Ask \"Explain the Lagrangian formula\" without mentioning tex-render. The agent should render and send images.\n\nRepository\n\nThis package is maintained at https://github.com/TheBigoranger/tex-render. You can open issues there for bug reports and feature requests."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/TheBigoranger/tex-render",
    "publisherUrl": "https://clawhub.ai/TheBigoranger/tex-render",
    "owner": "TheBigoranger",
    "version": "1.1.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tex-render",
    "downloadUrl": "https://openagent3.xyz/downloads/tex-render",
    "agentUrl": "https://openagent3.xyz/skills/tex-render/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tex-render/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tex-render/agent.md"
  }
}