drjzlyan/inspyry-vector-generator-skill

Agent Skill for creating vector images for logos, icons, mascots, illustrations

0

stars

3

commits

Python

primary language

Jun 7, 2026

updated

README

Inspyry Vector Generator — agent skill

A portable agent skill that generates clean, flat-color vector (SVG) artwork from a text prompt using the Inspyry public API. Output is editable, scalable SVG — ideal for logos, icons, mascots, badges, and wordmarks.

It's designed to plug into any AI agent or LLM tool-calling setup, not just one vendor. The core is a dependency-free Python CLI (scripts/generate.py) that drives the asynchronous create → poll → save flow, retries transient failures with exponential backoff, and exits with meaningful status codes — so any agent that can run a shell command (or call the underlying HTTP API) can use it. SKILL.md is the model-readable manifest describing when and how to invoke it.

Use with any agent

The skill is intentionally vendor-neutral. Pick whichever integration fits your agent:

  • Claude Code / Claude Agent SDK — clone into the skills folder and it's discovered automatically:
    git clone git@github.com:dhiraj-salian/inspyry-vector-generator-skill.git \
      ~/.claude/skills/inspyry-vector-generator
    
  • Any other agent (Cursor, Cline, LangChain/LlamaIndex tools, OpenAI/Gemini function calling, custom loops) — register the CLI as a tool. Give the model the contents of SKILL.md as the tool description/system context, and have it shell out to:
    python3 scripts/generate.py "<prompt>" <output>.svg
    
    The --json flag returns a structured result ({id,status,path,bytes,tags}) for easy parsing, and the exit codes let the agent branch on failures (auth, credits, timeout, …) without scraping text.
  • No wrapper at all — call the HTTP API directly; the CLI is just a convenience over a handful of REST endpoints.

Whatever the host, behavior, prompting guidance, and the API are identical — SKILL.md is the single source of truth.

Prerequisites

  1. API token — create one at inspyry.com → account menu → API access → Request token. It looks like insp_…. Provide it via the INSPYRY_API_TOKEN environment variable (or --token).
  2. Credits — each successful generation costs 1 credit (failed ones are auto-refunded). Check the balance with --credits.

Usage

export INSPYRY_API_TOKEN=insp_xxx

# generate and save
python3 scripts/generate.py "a minimalist flat-design fox icon, 3 solid colors" fox.svg

# check remaining credits
python3 scripts/generate.py --credits

# machine-readable result
python3 scripts/generate.py "bold lightning bolt icon, flat vector" -o out/bolt.svg --json

Options

FlagPurpose
-o, --output PATHoutput path (also accepted as the 2nd positional arg)
--token TOKENAPI token (overrides $INSPYRY_API_TOKEN)
--base-url URLAPI base URL (default https://inspyry.com/api)
--creditsprint the credit balance and exit
--timeout Nseconds to wait for the generation (default 180)
--poll-interval Nseconds between status polls (default 2)
--max-retries Nretries for transient errors (default 4)
--jsonemit a JSON result object on stdout
-q, --quietsuppress progress messages on stderr

Exit codes

CodeMeaning
0success
2usage error (bad arguments / prompt too short)
3authentication error (missing or invalid token)
4insufficient credits
5generation failed (engine returned failed)
6timed out waiting for the generation
7network error reaching the API
1any other error

Use from any agent

The CLI is a thin convenience over a small REST API, so an agent can skip it entirely and call the endpoints directly. Auth is a bearer token; generation is asynchronous (create, then poll until status is succeeded):

# create
ID=$(curl -s -X POST "https://inspyry.com/api/v1/generations" \
  -H "Authorization: Bearer $INSPYRY_API_TOKEN" -H "Content-Type: application/json" \
  -d '{"prompt":"a bold lightning bolt icon, flat vector"}' | jq -r .id)

# poll until succeeded, then save the SVG
curl -s "https://inspyry.com/api/v1/generations/$ID" \
  -H "Authorization: Bearer $INSPYRY_API_TOKEN" | jq -r .svg > out.svg

A machine-readable OpenAPI spec is available at GET https://inspyry.com/api/v1/openapi.json. See SKILL.md for the full endpoint and error reference.

Prompting tips

The engine produces flat-color vector art — lead with a single, centered subject, name exact bold colors, and quote any text verbatim. Omit photorealistic, 3D, and gradient (they're stripped). See SKILL.md for the full prompting guide and API reference.

Development

The client uses only the Python standard library (3.8+). Tests are fully mocked and never hit the network:

python3 -m unittest discover -s tests

CI runs the suite on every push (see .github/workflows/ci.yml).

License

MIT © Dhiraj Salian

Contributors

drjzlyan

3 commits

drjzlyan/inspyry-vector-generator-skill

Agent Skill for creating vector images for logos, icons, mascots, illustrations

0

stars

3

commits

Python

primary language

Jun 7, 2026

updated

README

Inspyry Vector Generator — agent skill

A portable agent skill that generates clean, flat-color vector (SVG) artwork from a text prompt using the Inspyry public API. Output is editable, scalable SVG — ideal for logos, icons, mascots, badges, and wordmarks.

It's designed to plug into any AI agent or LLM tool-calling setup, not just one vendor. The core is a dependency-free Python CLI (scripts/generate.py) that drives the asynchronous create → poll → save flow, retries transient failures with exponential backoff, and exits with meaningful status codes — so any agent that can run a shell command (or call the underlying HTTP API) can use it. SKILL.md is the model-readable manifest describing when and how to invoke it.

Use with any agent

The skill is intentionally vendor-neutral. Pick whichever integration fits your agent:

  • Claude Code / Claude Agent SDK — clone into the skills folder and it's discovered automatically:
    git clone git@github.com:dhiraj-salian/inspyry-vector-generator-skill.git \
      ~/.claude/skills/inspyry-vector-generator
    
  • Any other agent (Cursor, Cline, LangChain/LlamaIndex tools, OpenAI/Gemini function calling, custom loops) — register the CLI as a tool. Give the model the contents of SKILL.md as the tool description/system context, and have it shell out to:
    python3 scripts/generate.py "<prompt>" <output>.svg
    
    The --json flag returns a structured result ({id,status,path,bytes,tags}) for easy parsing, and the exit codes let the agent branch on failures (auth, credits, timeout, …) without scraping text.
  • No wrapper at all — call the HTTP API directly; the CLI is just a convenience over a handful of REST endpoints.

Whatever the host, behavior, prompting guidance, and the API are identical — SKILL.md is the single source of truth.

Prerequisites

  1. API token — create one at inspyry.com → account menu → API access → Request token. It looks like insp_…. Provide it via the INSPYRY_API_TOKEN environment variable (or --token).
  2. Credits — each successful generation costs 1 credit (failed ones are auto-refunded). Check the balance with --credits.

Usage

export INSPYRY_API_TOKEN=insp_xxx

# generate and save
python3 scripts/generate.py "a minimalist flat-design fox icon, 3 solid colors" fox.svg

# check remaining credits
python3 scripts/generate.py --credits

# machine-readable result
python3 scripts/generate.py "bold lightning bolt icon, flat vector" -o out/bolt.svg --json

Options

FlagPurpose
-o, --output PATHoutput path (also accepted as the 2nd positional arg)
--token TOKENAPI token (overrides $INSPYRY_API_TOKEN)
--base-url URLAPI base URL (default https://inspyry.com/api)
--creditsprint the credit balance and exit
--timeout Nseconds to wait for the generation (default 180)
--poll-interval Nseconds between status polls (default 2)
--max-retries Nretries for transient errors (default 4)
--jsonemit a JSON result object on stdout
-q, --quietsuppress progress messages on stderr

Exit codes

CodeMeaning
0success
2usage error (bad arguments / prompt too short)
3authentication error (missing or invalid token)
4insufficient credits
5generation failed (engine returned failed)
6timed out waiting for the generation
7network error reaching the API
1any other error

Use from any agent

The CLI is a thin convenience over a small REST API, so an agent can skip it entirely and call the endpoints directly. Auth is a bearer token; generation is asynchronous (create, then poll until status is succeeded):

# create
ID=$(curl -s -X POST "https://inspyry.com/api/v1/generations" \
  -H "Authorization: Bearer $INSPYRY_API_TOKEN" -H "Content-Type: application/json" \
  -d '{"prompt":"a bold lightning bolt icon, flat vector"}' | jq -r .id)

# poll until succeeded, then save the SVG
curl -s "https://inspyry.com/api/v1/generations/$ID" \
  -H "Authorization: Bearer $INSPYRY_API_TOKEN" | jq -r .svg > out.svg

A machine-readable OpenAPI spec is available at GET https://inspyry.com/api/v1/openapi.json. See SKILL.md for the full endpoint and error reference.

Prompting tips

The engine produces flat-color vector art — lead with a single, centered subject, name exact bold colors, and quote any text verbatim. Omit photorealistic, 3D, and gradient (they're stripped). See SKILL.md for the full prompting guide and API reference.

Development

The client uses only the Python standard library (3.8+). Tests are fully mocked and never hit the network:

python3 -m unittest discover -s tests

CI runs the suite on every push (see .github/workflows/ci.yml).

License

MIT © Dhiraj Salian

Contributors

drjzlyan

3 commits

Languages

Python

100.0%