illo skill is an agent skill that turns your articles and abstract ideas into original editorial illustrations — giving each idea a face with a recurring character. Blot ships in the box, community packs add more faces, and every character carries its own print look. No stock art, no prompt fiddling.
Works in Claude Code, Codex, Hermes, and OpenClaw
you type: /illo many inputs become one decision
you get:
articles in, scenes out
Hand it a post and it finds the load-bearing moments — the judgment, the trap, the before/after — and renders each one as a single scene, or a hand-built explainer diagram when the structure is the point. Not one image per paragraph. The ones that matter.
a recurring cast
Every image stars a mascot kept on-model by a reference lock. Use Blot, install a community character pack, or build your own with the guided character builder — one character, one look, repeatable on demand.
packs to use — or create
Characters travel as simple local packs. Install community characters by name, build characters that stay yours, or — if you want — share one in the CI-validated packs repo. One PR, renders embedded, and the skill opens it for you.
same idea, four characters
same character, dressed for the destination
A character defines where its accent lives — never the color. Map a destination to a palette once — one plain-text line in your palettes file, like blog → your site's own colors (read straight from your CSS) — and the same mascot ships in bold fluoro pink on X and in your blog's exact link color on your blog, automatically. Never asked twice.
same idea, two registers
A scene makes the reader feel the idea; an explainer lets them trace it — stations, one flow direction, hand-lettered callouts, never a PowerPoint flowchart. Scenes stay the default. Say "show the flow" to opt in, or let the skill earn the diagram when a piece's whole point is the path.
Single scenes, mini-comics, explainer diagrams, any aspect ratio — in your palette or your brand's, resolved automatically by destination.
Two things to bring:
got the Codex CLI signed in? the second one's on the house
A coding agent with a reasoning model
Claude Code, Codex, Hermes, or OpenClaw — running a capable model like Opus or GPT-5.5. After each image renders, the skill shows it back to your model to check it against the idea and re-roll if it's off — so the model has to both reason and see.
An image backend — your call
Whatever agent you run the illo skill in, the image generation goes through one of two backends under the hood. Codex — got the Codex CLI signed in (it comes with a ChatGPT/Codex plan)? Free: the illo skill drives it to render gpt-image-2, no key, drawing on your Codex usage. OpenRouter — a key for model choice (Grok Imagine, Nano Banana, GPT Image, any by name), about a nickel an image.
# any agent — Claude Code, Cursor, Codex, Copilot, Gemini & friends
npx skills add tmchow/illo-skill --skill illo
# native plugin — updates managed by Claude Code
/plugin marketplace add tmchow/illo-skill
/plugin install illo@illo-skill
# native plugin — update with: codex plugin marketplace upgrade
codex plugin marketplace add tmchow/illo-skill
codex plugin add illo@illo-skill
# extension — update with: gemini extensions update illo
gemini extensions install https://github.com/tmchow/illo-skill
# GitHub CLI — update with: gh skill update illo
gh skill install tmchow/illo-skill illo
# Hermes
hermes skills install tmchow/illo-skill/illo
# OpenClaw
openclaw skills install illo
then try:
# a bare idea
/illo you are the bottleneck
# a whole post — hero plus inline art
/illo https://yourblog.com/shipping-discipline hero + 3 images
# add a character pack first
/illo install mole character pack
# then pick a shape and that character
/illo "Just taught my kids about taxes by eating 38% of their ice cream" square image using mole character
Character packs from illo-characters. Install any of them by name — /illo install the anvil character — or keep several and switch per run.
a deadpan ink drop · the quiet regular
a screen-faced robot · dependable, a little deadpan
a small round bird · little, and always on time
a traffic cone · politely in your way
a just-sprouted seed · small now, not for long
a bent-wire donkey · carries the load, no fuss
a robot fitness coach · keeps you moving
a light bulb · the moment it clicks
an anvil · where things get hammered out
a battery · charged and ready
a plump mole · digs to the bottom of things
a rubber stamp · makes it official
an hourglass · watches the time slip by
a stout periscope · keeps an eye on things
a round shield · nothing gets past it
a coffee mug · good things, steeping
an inchworm · one small step at a time
a tardigrade · survives anything, mentions nothing
a ball-rolling beetle · moves what's bigger than itself
an anglerfish · finds the one in the dark
a small storm cloud · the rough patch, weathered
an iceberg · more below the surface
a closed clam · calm outside, busy within
a placid ox · hitch it and walk away
a horseshoe magnet · pulls the whole pile along
a roll of tape · holds it together, for now
an eraser wedge · clears away what's done
a footed colander · keeps what matters, drops the rest
a nesting doll · carries every version before it
a vacuum tube · kept warm and ready
a blank domino · one tip and it all goes
a one-pip die · leaves it to chance
a baby hedgehog · curls up around what matters
a baby owl · notices what others miss
a flower-bud sprite · just starting to open up
a soup dumpling · fresh out, ready to serve
a lamplighter · keeps the lights on
a watering can · helps things grow
a snail · keeps a copy of everything
a tin-toy robot · eager and trying its best
a switchboard operator · patches the call through
a ground marshaller · waves order into the field
a short-order cook · keeps the plates flying
a deep-sea diver · brings the answer back up
a brick astronaut · already halfway to launch
a brick firefighter · moves toward the trouble
your character here
Build one with the skill — keep it to yourself, or share it with everyone.
How →Characters you build are yours — created and used locally by default. Sharing one with the community is a bonus step, not a requirement.
1
Say /illo make me a mascot. The character builder interviews you, pressure-tests the design, picks a bundled look with you (from riso to sketchbook and bricks — or your own), and renders model-sheet candidates to choose from.
2
It installs as a local pack — a plain folder on your machine — and every render stars it from then on. Private by default; nothing leaves your computer unless you say so.
3
Say /illo publish my character and the skill opens a PR so you can share it in the community repo with your sheets embedded for one-glance review. Contribution guide →
The skill itself is free and open source — and whatever agent you run it in, the image generation goes through one of two backends. With a Codex or ChatGPT plan it's free: the illo skill drives your signed-in Codex CLI to render gpt-image-2, no per-image charge — it just draws on your Codex usage. Want a choice of models instead? Run it through your own OpenRouter account — pay-per-image, around a nickel each (6–25¢ by model), a full blog post under $0.50.
Barely. With the Codex CLI signed in, nothing — the illo skill detects it and asks which
backend you want the first time. For OpenRouter, run
illo.py init once to store your key in
~/.config/illo/config.yaml (mode 600); the illo skill
never reads it from the environment. The same config also holds optional defaults
you'd rather not repeat: backend, model, default character, a watermark with your handle.
On the Codex backend it's automatic — Codex's built-in gpt-image-2, no model to pick. On OpenRouter you choose: Grok Imagine by default (in testing, the boldest print texture and strongest character lock at the lowest cost), with Nano Banana 2/Pro, GPT Image, or any image-output model on OpenRouter by name.
No. Characters you build are local folders on your machine — private by default. Sharing one in the community repo is optional, and you keep authorship and credit when you do.
Anything that speaks the Agent Skills format (SKILL.md):
Claude Code, Hermes, OpenClaw, and friends. The engine is a single stdlib Python
script — no installs beyond python3.