{
  "schemaVersion": "1.0",
  "item": {
    "slug": "quiverai",
    "name": "QuiverAI",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/charmmm718/quiverai",
    "canonicalUrl": "https://clawhub.ai/charmmm718/quiverai",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/quiverai",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=quiverai",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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/quiverai"
    },
    "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/quiverai",
    "agentPageUrl": "https://openagent3.xyz/skills/quiverai/agent",
    "manifestUrl": "https://openagent3.xyz/skills/quiverai/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/quiverai/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": "QuiverAI — AI Vector Graphics",
        "body": "QuiverAI generates production-ready SVGs from text prompts or raster images.\n\nSite: https://quiver.ai\nDocs: https://docs.quiver.ai\nAPI base: https://api.quiver.ai/v1\nModel: arrow-preview\nAuth: Bearer token via QUIVERAI_API_KEY\nBilling: 1 credit per request (regardless of n)."
      },
      {
        "title": "Setup",
        "body": "Get an API key at https://app.quiver.ai/settings/api-keys (create account at https://quiver.ai/start first)."
      },
      {
        "title": "Text to SVG",
        "body": "Generate SVGs from a text description.\n\nEndpoint: POST /v1/svgs/generations\n\ncurl -X POST https://api.quiver.ai/v1/svgs/generations \\\n  -H \"Authorization: Bearer $QUIVERAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"arrow-preview\",\n    \"prompt\": \"A minimalist monogram logo using the letter Q\",\n    \"n\": 1,\n    \"stream\": false\n  }'\n\nNode.js SDK (npm install @quiverai/sdk):\n\nimport { QuiverAI } from \"@quiverai/sdk\";\nconst client = new QuiverAI({ bearerAuth: process.env.QUIVERAI_API_KEY });\n\nconst result = await client.createSVGs.generateSVG({\n  model: \"arrow-preview\",\n  prompt: \"A minimalist monogram logo using the letter Q\",\n});\n// result.data[0].svg contains the SVG markup"
      },
      {
        "title": "Parameters",
        "body": "ParamTypeDefaultDescriptionmodelstring—Required. Use arrow-preview.promptstring—Required. Describes the desired SVG.instructionsstring—Additional style guidance (e.g. \"flat monochrome, rounded corners\").referencesarray—Up to 4 reference images ({ url } or { base64 }).nint1Number of outputs (1–16).temperaturefloat1Sampling temperature (0–2). Lower = more deterministic.top_pfloat1Nucleus sampling (0–1).max_output_tokensint—Upper bound for output tokens (max 131072).streamboolfalseSSE streaming (events: reasoning, draft, content)."
      },
      {
        "title": "Response",
        "body": "{\n  \"id\": \"resp_01J...\",\n  \"created\": 1704067200,\n  \"data\": [{ \"svg\": \"<svg ...>...</svg>\", \"mime_type\": \"image/svg+xml\" }],\n  \"usage\": { \"total_tokens\": 1640, \"input_tokens\": 1200, \"output_tokens\": 440 }\n}"
      },
      {
        "title": "Image to SVG (Vectorize)",
        "body": "Convert a raster image (PNG/JPEG/WebP) into SVG.\n\nEndpoint: POST /v1/svgs/vectorizations\n\ncurl -X POST https://api.quiver.ai/v1/svgs/vectorizations \\\n  -H \"Authorization: Bearer $QUIVERAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"arrow-preview\",\n    \"stream\": false,\n    \"image\": { \"url\": \"https://example.com/logo.png\" }\n  }'\n\nSDK:\n\nconst result = await client.vectorizeSVG.vectorizeSVG({\n  model: \"arrow-preview\",\n  image: { url: \"https://example.com/logo.png\" },\n});"
      },
      {
        "title": "Additional parameters (beyond Text-to-SVG shared ones)",
        "body": "ParamTypeDefaultDescriptionimageobject—Required. { url: \"...\" } or { base64: \"...\" }.auto_cropboolfalseCrop to dominant subject before vectorization.target_sizeint—Square resize target in px (128–4096) before inference.\n\nResponse format is identical to Text-to-SVG."
      },
      {
        "title": "Error codes",
        "body": "StatusCodeMeaning400invalid_requestMalformed body or missing fields.401unauthorizedBad or missing API key.402insufficient_creditsOut of credits.429rate_limit_exceededToo many requests; back off and retry."
      },
      {
        "title": "Tips",
        "body": "Save SVG output to a .svg file for immediate use.\nUse instructions to control style without changing the prompt.\nFor logos, try low temperature (0.3–0.5) for cleaner, more consistent results.\nUse references to provide visual examples the model should match.\nFor vectorization, enable auto_crop: true when the source image has excess whitespace."
      }
    ],
    "body": "QuiverAI — AI Vector Graphics\n\nQuiverAI generates production-ready SVGs from text prompts or raster images.\n\nSite: https://quiver.ai\nDocs: https://docs.quiver.ai\nAPI base: https://api.quiver.ai/v1\nModel: arrow-preview\nAuth: Bearer token via QUIVERAI_API_KEY\nBilling: 1 credit per request (regardless of n).\nSetup\n\nGet an API key at https://app.quiver.ai/settings/api-keys (create account at https://quiver.ai/start first).\n\nText to SVG\n\nGenerate SVGs from a text description.\n\nEndpoint: POST /v1/svgs/generations\n\ncurl -X POST https://api.quiver.ai/v1/svgs/generations \\\n  -H \"Authorization: Bearer $QUIVERAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"arrow-preview\",\n    \"prompt\": \"A minimalist monogram logo using the letter Q\",\n    \"n\": 1,\n    \"stream\": false\n  }'\n\n\nNode.js SDK (npm install @quiverai/sdk):\n\nimport { QuiverAI } from \"@quiverai/sdk\";\nconst client = new QuiverAI({ bearerAuth: process.env.QUIVERAI_API_KEY });\n\nconst result = await client.createSVGs.generateSVG({\n  model: \"arrow-preview\",\n  prompt: \"A minimalist monogram logo using the letter Q\",\n});\n// result.data[0].svg contains the SVG markup\n\nParameters\nParam\tType\tDefault\tDescription\nmodel\tstring\t—\tRequired. Use arrow-preview.\nprompt\tstring\t—\tRequired. Describes the desired SVG.\ninstructions\tstring\t—\tAdditional style guidance (e.g. \"flat monochrome, rounded corners\").\nreferences\tarray\t—\tUp to 4 reference images ({ url } or { base64 }).\nn\tint\t1\tNumber of outputs (1–16).\ntemperature\tfloat\t1\tSampling temperature (0–2). Lower = more deterministic.\ntop_p\tfloat\t1\tNucleus sampling (0–1).\nmax_output_tokens\tint\t—\tUpper bound for output tokens (max 131072).\nstream\tbool\tfalse\tSSE streaming (events: reasoning, draft, content).\nResponse\n{\n  \"id\": \"resp_01J...\",\n  \"created\": 1704067200,\n  \"data\": [{ \"svg\": \"<svg ...>...</svg>\", \"mime_type\": \"image/svg+xml\" }],\n  \"usage\": { \"total_tokens\": 1640, \"input_tokens\": 1200, \"output_tokens\": 440 }\n}\n\nImage to SVG (Vectorize)\n\nConvert a raster image (PNG/JPEG/WebP) into SVG.\n\nEndpoint: POST /v1/svgs/vectorizations\n\ncurl -X POST https://api.quiver.ai/v1/svgs/vectorizations \\\n  -H \"Authorization: Bearer $QUIVERAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"arrow-preview\",\n    \"stream\": false,\n    \"image\": { \"url\": \"https://example.com/logo.png\" }\n  }'\n\n\nSDK:\n\nconst result = await client.vectorizeSVG.vectorizeSVG({\n  model: \"arrow-preview\",\n  image: { url: \"https://example.com/logo.png\" },\n});\n\nAdditional parameters (beyond Text-to-SVG shared ones)\nParam\tType\tDefault\tDescription\nimage\tobject\t—\tRequired. { url: \"...\" } or { base64: \"...\" }.\nauto_crop\tbool\tfalse\tCrop to dominant subject before vectorization.\ntarget_size\tint\t—\tSquare resize target in px (128–4096) before inference.\n\nResponse format is identical to Text-to-SVG.\n\nError codes\nStatus\tCode\tMeaning\n400\tinvalid_request\tMalformed body or missing fields.\n401\tunauthorized\tBad or missing API key.\n402\tinsufficient_credits\tOut of credits.\n429\trate_limit_exceeded\tToo many requests; back off and retry.\nTips\nSave SVG output to a .svg file for immediate use.\nUse instructions to control style without changing the prompt.\nFor logos, try low temperature (0.3–0.5) for cleaner, more consistent results.\nUse references to provide visual examples the model should match.\nFor vectorization, enable auto_crop: true when the source image has excess whitespace."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/charmmm718/quiverai",
    "publisherUrl": "https://clawhub.ai/charmmm718/quiverai",
    "owner": "charmmm718",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/quiverai",
    "downloadUrl": "https://openagent3.xyz/downloads/quiverai",
    "agentUrl": "https://openagent3.xyz/skills/quiverai/agent",
    "manifestUrl": "https://openagent3.xyz/skills/quiverai/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/quiverai/agent.md"
  }
}