Skip to content
AI & Agents
Skill

/Art

Static visual content in 20+ formats (diagrams, infographics, comics, icons, wallpaper) via Nano Banana Pro by default, Nano Banana, and Flux, plus technical diagrams and a few essay illustrations that draw themselves as looping GIFs. USE WHEN art, illustration, diagram,

From plugin
lifeos
20k97 skills13 agents34 commands

Claude Code

$ npx -y skills add danielmiessler/lifeos --skill Art --agent claude-code

SKILL.md

Art.SKILL.md
name: Art
metadata:
  short-description: "Creates static images, diagrams, infographics, comics, and icons with image models, plus technical diagrams that animate as looping GIFs."
evals:
  suites: [art-diagrams, art-essay-images, art-meaning-recovery]
version: 1.9.3
description: Static visual content in 20+ formats (diagrams, infographics, comics, icons, wallpaper) via Nano Banana Pro by default, Nano Banana, and Flux, plus technical diagrams and a few essay illustrations that draw themselves as looping GIFs. USE WHEN art, illustration, diagram, flowchart, animated diagram, diagram GIF, animated essay image, animated header, infographic, header image, blog social thumbnail, generate image, mermaid, comic, icon, blog art, framework diagram, D3 chart, remove background, wallpaper. NOT FOR any request that says visualize (Visualize owns every "visualize X" and may embed Art output), YouTube/video thumbnails (the video skill), other video or animation (HyperFrames), web UI design (Webdesign).

Art Skill

**Contents:** Ideal State · Intent Routing · Safety gates · Tool contract · Data & Config · Gotchas · Examples

Generates static visual content across 20+ formats — blog headers, technical and architecture diagrams, frameworks, taxonomies, timelines, comparisons, stat cards, comics, icons, wallpapers, D3 charts, Mermaid diagrams — using Flux and Nano Banana Pro (Gemini 3 Pro). <!-- public PR #2009, @jbmml --> Every request routes through a named intent that encodes the technique and palette, then calls `Generate.ts` with `--intent=<name>` plus model/size/output flags, and `Generate.ts` itself enforces that the intent was followed. Output defaults to $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) unless `--output` names another path, so every intent passes `--output` into a working directory outside Downloads (§ Output staging). Blog headers run with `--thumbnail` to ship both a transparent inline PNG and an opaque listing thumbnail on the page ground (`ArtConfig.json` thumbnailGround); the site builds its social card separately ([References/BlogHeaders.md](References/BlogHeaders.md)).

Ideal State

  • Every image comes from the intent that matches the request, and its composition is reasoned from the specific argument or content it illustrates: scene concepts weighed against each other, every element in the frame carrying a narrative role, never a subject list dropped into a prompt.
  • Every image holds its intent's technique and palette, or the style `PREFERENCES.md` sets, unless the principal names another style, and every person in it follows the figure treatment described in Gotchas.
  • Every label, number, value and arrow in a diagram, stat card or annotated image is factually correct and spelled exactly as the source has it; one misspelled word, garbled digit or wrong hex value fails the image however good the art is. When the request asks for an image rendered from authored SVG, the delivered file comes from that SVG, never from an image model.
  • An edit of an existing photo or reference image changes only what the request names: the subject's identity, and every element the request did not mention, read the same in the output as in the source.
  • A set of images made for one deck or page reads as one set: the same medium, palette, ground and figure style as the style references the request names.
  • Every image is rendered in a working directory outside Downloads (or the staging directory its intent names), passes the ArtDirection quality loop there, and reaches Downloads only through ArtDirection's `Deliver.ts`; nothing is copied into a project before that hand-off, except where an intent wires its own winner in without handing back.
  • A finished file is verified, not assumed: it was looked at with the Read tool in this turn, `file` reports real RGBA where transparency was the point, its native dimensions fit the destination, and a blog header ships both the transparent inline image and the opaque `-thumb.png` and carries the signature stamp the Essay intent applies.
  • A one-of-a-kind generation survives any background cut: its raw stays on disk until the cut PNG has been read and every subject in it confirmed present.

Intent Routing

| Intent | Trigger | File | |--------|---------|------| | **Essay** | Blog header or editorial essay illustration | `Intents/Essay.md` | | **AnimatedEssay** | Animate a finished Essay still as a looping GIF (rare: at most 3 per deck; `Tools/AnimatedEssay.ts`, no Generate.ts) | `Intents/AnimatedEssay.md` | | **RemoveBackground** | Background removal only | `Intents/RemoveBackground.md` | | **LogoWallpaper** | brand-logo wallpaper with logo integration | `Intents/LogoWallpaper.md` | | **EmbossedLogoWallpaper** | Embossed logo wallpaper | `Intents/EmbossedLogoWallpaper.md` | | **D3Dashboards** | D3.js interactive chart or dashboard | `Intents/D3Dashboards.md` | | **Visualize** | Generic visualization (none of the other intents fit) | `Intents/Visualize.md` | | **Mermaid** | Mermaid flowchart or sequence diagram | `Intents/Mermaid.md` | | **TechnicalDiagrams** | Technical or architecture diagram, static or animated GIF (animated: § Animated Option, `Tools/AnimatedDiagram.ts`, no Generate.ts) | `Intents/TechnicalDiagrams.md` | | **LifeOSHero** | LifeOS philosophy card hero (One Block series: one cube changed by one move, transparent cut-out, card accent) | `Intents/LifeOSHero.md` | | **Taxonomies** | Taxonomy, hierarchy or classification grid | `Intents/Taxonomies.md` | | **Timelines** | Timeline or chronological progression | `Intents/Timelines.md` | | **Frameworks** | Framework, 2x2 or matrix | `Intents/Frameworks.md` | | **Comparisons** | Comparison or X vs Y | `Intents/Comparisons.md` | | **AnnotatedScreenshots** | Annotated screenshot | `Intents/AnnotatedScreenshots.md` | | **RecipeCards** | Recipe card or step-by-step | `Intents/RecipeCards.md` | | **Aphorisms** | Aphorism or quote card | `Intents/Aphorisms.md` | | **Maps** | Map

Read more
@danielmiessler
Ships withlifeos

⛰️ LifeOS — The universal AI Harness designed to move you from Current to Ideal state in both life and work.

20k97 skills13 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
19.7k
Star history of danielmiessler/lifeos on GitHub, a chart by star-history.com

Other skills on lifeos.

AnnualReports

AnnualReports

Aggregate several hundred cybersecurity annual reports from CrowdStrike, Mandiant, IBM, Verizon, Microsoft, CISA, OWASP, Wiz,…

ApertureOscillation

ApertureOscillation

3-pass scope oscillation that holds a question constant while shifting zoom — narrow/tactical, wide/strategic, then synthesis —…

Aphorisms

Aphorisms

Curated aphorism collection with CRUD: content-based matching, themed search, thinker research, and usage tracking to avoid…

ArXiv

ArXiv

Search and retrieve arXiv academic papers by topic, category, or paper ID — with AlphaXiv-enriched AI-generated overviews. Uses…

ArtDirection

ArtDirection

Directs visual quality across images, films, slides, and site captures through a direction council, two vendors' vision judgments…

Assay

Assay

Assertion-first eval framework: code asserts, calibrated judges, pass@k, A/B comparison, agentic evals, judgment-layer question…

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

openclaw11d393k
@openclaw@openclawInstall Skill

Questions about Art.

Which coding agents can use Art?
Art installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.