illo is an agent skill that turns your articles and abstract ideas into original editorial illustrations — starring a recurring character you own. Blot ships in the box and draws in riso; every character carries its own print look. No stock art, no prompt fiddling.
Works in Claude Code, 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. Not one image per paragraph. The ones that matter.
a cast you own
Every image stars a recurring mascot kept on-model by a reference lock. Use Blot, install a community character, or build your own with the guided character builder — one pack, one look, forever yours.
yours to keep — or share
Characters are just folders you own. Keep yours private, install community characters by name, or — if you want — publish your own to the CI-validated packs repo. One PR, renders embedded, and the skill opens it for you.
same idea, four characters
Single scenes, mini-comics, any aspect ratio — in your palette or your brand's.
You'll need an OpenRouter key — images are pay-per-render through your own account (≈ 6–25¢ each; a full blog post usually lands under $0.50).
# Claude Code & friends
npx skill add tmchow/agent-skills --skill illo
# Hermes
hermes skills install https://raw.githubusercontent.com/tmchow/agent-skills/main/illo/SKILL.md
# OpenClaw
openclaw skills install illo
then try:
# a bare idea
/illo you are the bottleneck
# or a whole post
/illo illustrate my blog post https://yourblog.com/shipping-discipline
Character packs from illo-characters. Install any of them by name — “install the anvil character” — or keep several and switch per run.
a deadpan ink drop · ships with the skill
a screen-faced robot · the original
a small round bird · ships small, often
a traffic cone · blockers & WIP
a just-sprouted seed · growth & compounding
a light bulb · ideas & plans
an anvil · hard feedback
a battery · energy & recharge
a plump mole · debugging & root-cause digs
a rubber stamp · approvals & sign-off
an hourglass · deadlines & timeboxes
a stout periscope · observability & monitoring
a round shield · security & guarding prod
a coffee mug · deep work & builds brewing
your character here
Build one with the skill — keep it to yourself, or publish it for everyone.
How →Your characters are yours — built and used locally. Publishing to 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 look with you (riso, blueprint, woodcut, pixel — 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 on the community repo with your sheets embedded for one-glance review. Contribution guide →
The skill is free and open source. Images render through your own OpenRouter account, pay-per-image — roughly 6–25¢ each depending on the model. A full blog post (a handful of finals plus re-rolls) usually lands under $0.50 on the default model.
No — export OPENROUTER_API_KEY and you're done.
There's an optional config (illo.py init writes
~/.config/illo/config.yaml) for defaults you'd
rather not repeat: preferred model, default character, a watermark with your handle.
Grok Imagine by default — in testing it gave the boldest print texture and the strongest character consistency at the lowest cost. Nano Banana 2/Pro, GPT Image, and Microsoft MAI work by name, and any image-output model on OpenRouter can be requested per render.
No. Characters you build are local folders on your machine — private by default. Publishing to 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.