Nib
Skill caezium/nib/skills/nib
Turn any idea or article into hand-drawn editorial illustrations starring your own character — free on your ChatGPT/Codex sub. An agent skill (Claude Code, Codex, Cursor, Gemini) + a macOS app.
npx -y skills add caezium/nib --skill nibAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.3 KB, as published. Nobody here has run it
Nib
Make 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.
Setup (once)
- A character. The user's own avatar image (a mascot, logo character,
anything — save its path); a bundled one via
--avatar-pack <name>(seecharacters/); or build a new one with the user (references/character-builder.md). The character is the reference on every generation. - A backend — one of:
- Codex (free) — a logged-in Codex CLI (
codex login). Generates on the user's ChatGPT / Codex subscription, no API key. Default when no key is set. - OpenRouter — an
OPENROUTER_API_KEY(sk-or-…). Exact 16:9, and lets you pick the model with--model.
- Codex (free) — a logged-in Codex CLI (
Workflow
-
Read the input.
- A URL → fetch the page and extract the readable article text first (use your web-fetch / Defuddle capability), then treat it as an article.
- A single idea → one illustration.
- An article / post (or the user's own draft / notes they want illustrated) → pick the load-bearing moments (a judgment, a flow, a before/after, a trap, a loop), 4–8 of them. Not one image per paragraph — the ones that matter. Treat this set as a starting point the user shapes: show it first, let them drop moments they don't want, add their own, or ask for more candidates, then illustrate only the chosen ones. (The desktop app's Article mode exposes the same controls — per-shot select, add-a-shot, "More ideas", and a parallel "Generate".)
-
Pick a look for the piece — one of 13 (see
references/styles.md): marker, riso, blueprint, woodcut, pixel, clay, gouache, chalk, diorama, enamel, felt, manila, phosphor. One look per piece. -
For each idea, invent a fresh, concrete physical metaphor in which the avatar performs the idea (see
references/methodology.md). One caught scene is the default; switch to the explainer register — a hand-drawn sketch-diagram — only when the user asks ("diagram the flow") or the idea is itself a traceable structure (references/composition.md,--register explainer). -
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.pngIt 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—autouses the OpenRouter key if set, else the free Codex lane.--model <id>— OpenRouter image model (defaultgoogle/gemini-3.1-flash-image-preview).--avatar-pack <name>— use a bundled character (seecharacters/) 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.--accent "<hex|name>"— pin the one accent colour (a brand hex / site colour); seereferences/palettes.md.--register explainer— draw a hand-built sketch-diagram instead of a single caught scene (references/composition.md).--transparent— cut the white ground out of the render → transparent PNG (for slides, stickers, dark UI). Needsrembg(pip install 'rembg[cpu]', not bundled); without it the opaque render is kept and a hint is printed. Also available standalone on any image:python3 scripts/cutout.py <image.png>.--doctor— print backend readiness (which lane will run, and why) and exit.
-
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.
Example prompts
Invoke Nib from your agent like:
Use nib to illustrate: "one fish, many dishes"Use nib to make illustrations for this article: https://jamesclear.com/feedback-loopsUse nib to build a character with me, then illustrate "the information well"Use nib to diagram the flow of a RAG pipeline (explainer)Use nib to turn this post into a 5-image set in chalk: <paste a URL or text>
Notes
- Keep text in the image short; the model can misspell long labels.
- The avatar is the reference on every call — that is what keeps the character consistent across a whole article.
- For options, generate 2–3 variants of a shot (run the engine a few times with the same idea) and let the user pick.
- Cost: free on the Codex lane (uses the user's ChatGPT / Codex subscription),
or a few cents per image on OpenRouter (
google/gemini-3.1-flash-image-preview) — a full post is well under a dollar either way. Run--doctorto see which lane is ready. - A written
--avatar-spec(describe the character in words) markedly improves consistency over the image reference alone — use it whenever you have a description. - Inspired by xiaohei (小黑) by helloianneo — this methodology is an adaptation of its hand-drawn editorial approach, reworded in Nib's own voice.