From Nib
Turns an idea or an article into original white-background, hand-drawn editorial illustrations starring a recurring avatar the user owns — one caught scene per idea, in one of several print looks. Use when the user asks to illustrate a post/article/concept with a consistent character, or invokes "nib". Not for generic draw/make-an-image requests.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nib:nib [idea or article path/URL] | set avatar <image> | style <name>[idea or article path/URL] | set avatar <image> | style <name>The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Make original editorial illustrations for written content. **One image explains
characters/README.mdcharacters/blip/avatar.mdcharacters/blip/reference.pngcharacters/hen/avatar.mdcharacters/hen/reference.pngcharacters/mo/avatar.mdcharacters/mo/reference.pngcharacters/pip/avatar.mdcharacters/pip/reference.pngcharacters/scout/avatar.mdcharacters/scout/reference.pngreferences/methodology.mdreferences/quality-bar.mdreferences/style-data.jsonreferences/styles.mdscripts/generate.pyMake original editorial illustrations for written content. One image explains one idea. A recurring avatar — supplied once by the user — is the subject of every scene and performs the idea (pushes, sorts, steers, builds, holds); it is never decoration. The methodology is the constant; the avatar and the look are the parameters.
This is a configurable house style, not a generic image generator. It is intentionally not a photo, not a logo, not a corporate infographic, not a UI mockup.
--avatar-pack <name> (see characters/). The character is the reference on
every generation.codex login). Generates on the
user's ChatGPT / Codex subscription, no API key. Default when no key is set.OPENROUTER_API_KEY (sk-or-…). Exact 16:9, and lets
you pick the model with --model.Read the input.
Pick a look for the piece (see references/styles.md): marker, riso,
blueprint, woodcut, pixel, clay, gouache. One look per piece.
For each idea, invent a fresh, concrete physical metaphor in which the
avatar performs the idea (see references/methodology.md).
Generate by calling the engine once per image:
python3 scripts/generate.py \
--idea "trust is built one piece of evidence at a time" \
--style marker \
--avatar /path/to/avatar.png \
--out ./out/trust.png
It builds the full prompt (methodology + look + idea), sends the character as the reference for consistency, and writes a 16:9 PNG. Useful flags:
--backend auto|openrouter|codex — auto uses the OpenRouter key if set,
else the free Codex lane.--model <id> — OpenRouter image model (default google/gemini-2.5-flash-image).--avatar-pack <name> — use a bundled character (see characters/) instead
of --avatar.--avatar-spec "<text>" — a written description of the character (silhouette,
face, the one accent part) that locks its design. Combine with the image —
it markedly improves consistency.Review against references/quality-bar.md (white background, one idea,
avatar performing the action, short labels only, not a slide). Regenerate
any that miss.
Report each saved path.
Invoke Nib from your agent like:
Use nib to illustrate: "small habits compound into a big result"Use nib to make illustrations for this article: https://jamesclear.com/feedback-loopsUse nib: set my avatar to ./avatar.png, then illustrate "saying no protects the few things that matter" in the woodcut styleUse nib to turn this post into a 5-image set in riso: <paste a URL or text>google/gemini-2.5-flash-image) — a full
post is well under a dollar either way.--avatar-spec (describe the character in words) markedly improves
consistency over the image reference alone — use it whenever you have a description.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub caezium/nib --plugin nib