Use this skill to generate one blog thumbnail per run using the pixr CLI (npm package pixr-cli, version 0.3.0 or newer).
pixr works with several providers (Gemini, OpenAI-compatible, OpenRouter, fal) and has no built-in model. The provider, model, and API key come from the user's own pixr config. Never pick or change them yourself.
If the user did not provide a topic, ask for one before proceeding.
TOPIC: the subject of the blog post the image is for (e.g. "vector databases", "building a notes app in Rust")--save-to path override (default: ~/blog-images/)--prefix for the output filenameBefore generating, run these checks in order:
1. Confirm pixr is available:
bash
pixr --help
If this fails, run:
bash
npm install -g pixr-cli
Then verify again. If still failing, stop and report.
2. Confirm the API key and model are configured:
bash
source ~/.zshrc && pixr config --json
Read hasApiKey, provider, and model from the output.
hasApiKey must be true. pixr reads PIXR_API_KEY (the older NANO_IMAGE_API_KEY also works), or the variable named by apiKeyEnv in the user's pixr config. These are defined in ~/.zshrc.model must not be null. pixr has no default model.CRITICAL NON-NEGOTIABLE: never ask the user to add or set the API key manually. It is already in ~/.zshrc. Always source it before concluding the key is missing.
If hasApiKey is still false after sourcing, report the exact output and stop.
If model is null, list the models for the user's provider and ask the user which one to use. Do not choose one yourself:
bash
source ~/.zshrc && pixr models --no-interactive
Save the model they pick with pixr model <name>, then run the config check again.
~/blog-images/ if it does not exist.~/.zshrc in the same shell first):bash
pixr generate -w 1600 -f webp --save-to ~/blog-images --no-stdin \
"1920x1080 thumbnail on topic \"{TOPIC}\" dont just use text use proper vectors resarch on web and make and all, add more vectors then just text (less text more vectors images and all)"
Replace {TOPIC} with the actual topic. Keep the rest of the prompt exactly as written.
Do not paraphrase, shorten, or reword the prompt text. It is battle-tested.
~/blog-images/. pixr prints saved image: <absolute path>; note that exact path. Warnings are printed as warning: ...; report them but they do not fail the run.~/blog-meta/ whose blog_path value corresponds to the same blog.thumbnail_path to the exact absolute path of the generated image file.-w 1600 -f webp. Never change these flags.--save-to ~/blog-images unless the user explicitly provides a different path.{TOPIC} substituted.pixr is missing, install it first.~/blog-meta/*.json with thumbnail_path. Never skip this step.At the end, report:
pixr command run~/blog-meta/*.json file was updated (or that no match was found)