QuiverAI
Generate and vectorize SVG graphics via the QuiverAI API (Arrow model). Use when the user asks to create logos, icons, or illustrations as SVG, convert raste...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 237 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description, endpoints, and example SDK usage all describe generating and vectorizing SVGs via QuiverAI. The single required environment variable (QUIVERAI_API_KEY) is exactly the credential needed to call the documented API.
Instruction Scope
SKILL.md only contains curl/SDK examples and parameter/response docs for api.quiver.ai; it does not instruct reading unrelated files, accessing other environment variables, or sending data to third-party endpoints beyond the QuiverAI API.
Install Mechanism
There is no install spec and no code files (instruction-only). The doc mentions an optional public npm SDK (@quiverai/sdk) but does not download or execute arbitrary code — this is low-risk and proportionate.
Credentials
Only QUIVERAI_API_KEY is required and declared as the primary credential. That single key is appropriate for an API-integration skill; there are no unrelated secrets or excessive env requirements.
Persistence & Privilege
always is false, no config paths or system modifications are requested, and the skill does not ask to persist beyond normal operation. disable-model-invocation is default (false) which is expected and not flagged alone.
Assessment
This skill appears internally consistent and low-risk because it only documents calls to api.quiver.ai and requires a single QuiverAI API key. Before installing: 1) Confirm you trust Quiver.ai and understand their billing (requests may consume credits). 2) Treat QUIVERAI_API_KEY like any secret — provide only to agents you trust, rotate it if shared, and avoid embedding it in public places. 3) Be aware that any raster images you send will be uploaded to the QuiverAI service (check their privacy/terms if images are sensitive). 4) If you prefer, create a limited/throwaway API key for testing. The scanner had no code to analyze (instruction-only), so disk execution risk is low — but runtime network calls to the QuiverAI API will occur when the skill is used.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
🖋️ Clawdis
EnvQUIVERAI_API_KEY
Primary envQUIVERAI_API_KEY
SKILL.md
QuiverAI — AI Vector Graphics
QuiverAI generates production-ready SVGs from text prompts or raster images.
- Site: https://quiver.ai
- Docs: https://docs.quiver.ai
- API base:
https://api.quiver.ai/v1 - Model:
arrow-preview - Auth: Bearer token via
QUIVERAI_API_KEY - Billing: 1 credit per request (regardless of
n).
Setup
Get an API key at https://app.quiver.ai/settings/api-keys (create account at https://quiver.ai/start first).
Text to SVG
Generate SVGs from a text description.
Endpoint: POST /v1/svgs/generations
curl -X POST https://api.quiver.ai/v1/svgs/generations \
-H "Authorization: Bearer $QUIVERAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "arrow-preview",
"prompt": "A minimalist monogram logo using the letter Q",
"n": 1,
"stream": false
}'
Node.js SDK (npm install @quiverai/sdk):
import { QuiverAI } from "@quiverai/sdk";
const client = new QuiverAI({ bearerAuth: process.env.QUIVERAI_API_KEY });
const result = await client.createSVGs.generateSVG({
model: "arrow-preview",
prompt: "A minimalist monogram logo using the letter Q",
});
// result.data[0].svg contains the SVG markup
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
model | string | — | Required. Use arrow-preview. |
prompt | string | — | Required. Describes the desired SVG. |
instructions | string | — | Additional style guidance (e.g. "flat monochrome, rounded corners"). |
references | array | — | Up to 4 reference images ({ url } or { base64 }). |
n | int | 1 | Number of outputs (1–16). |
temperature | float | 1 | Sampling temperature (0–2). Lower = more deterministic. |
top_p | float | 1 | Nucleus sampling (0–1). |
max_output_tokens | int | — | Upper bound for output tokens (max 131072). |
stream | bool | false | SSE streaming (events: reasoning, draft, content). |
Response
{
"id": "resp_01J...",
"created": 1704067200,
"data": [{ "svg": "<svg ...>...</svg>", "mime_type": "image/svg+xml" }],
"usage": { "total_tokens": 1640, "input_tokens": 1200, "output_tokens": 440 }
}
Image to SVG (Vectorize)
Convert a raster image (PNG/JPEG/WebP) into SVG.
Endpoint: POST /v1/svgs/vectorizations
curl -X POST https://api.quiver.ai/v1/svgs/vectorizations \
-H "Authorization: Bearer $QUIVERAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "arrow-preview",
"stream": false,
"image": { "url": "https://example.com/logo.png" }
}'
SDK:
const result = await client.vectorizeSVG.vectorizeSVG({
model: "arrow-preview",
image: { url: "https://example.com/logo.png" },
});
Additional parameters (beyond Text-to-SVG shared ones)
| Param | Type | Default | Description |
|---|---|---|---|
image | object | — | Required. { url: "..." } or { base64: "..." }. |
auto_crop | bool | false | Crop to dominant subject before vectorization. |
target_size | int | — | Square resize target in px (128–4096) before inference. |
Response format is identical to Text-to-SVG.
Error codes
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | Malformed body or missing fields. |
| 401 | unauthorized | Bad or missing API key. |
| 402 | insufficient_credits | Out of credits. |
| 429 | rate_limit_exceeded | Too many requests; back off and retry. |
Tips
- Save SVG output to a
.svgfile for immediate use. - Use
instructionsto control style without changing the prompt. - For logos, try low
temperature(0.3–0.5) for cleaner, more consistent results. - Use
referencesto provide visual examples the model should match. - For vectorization, enable
auto_crop: truewhen the source image has excess whitespace.
Files
1 totalSelect a file
Select a file to preview.
Comments
Loading comments…
