Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/danielmiessler/lifeos/artnpx skills add danielmiessler/LifeOS --skill artgit clone --depth 1 https://github.com/danielmiessler/LifeOSWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/danielmiessler/lifeos/art)<a href="https://agentmods.dev/skills/danielmiessler/lifeos/art"><img src="https://agentmods.dev/badge/skills/danielmiessler/lifeos/art.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00124 | $0.06089 |
| Opus 5 | $0.00062 | $0.03044 |
| Sonnet 5 | $0.00025 | $0.01218 |
| Haiku 4.5 | $0.00012 | $0.00609 |
Grade A, and why
Art scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s -X POST http://localhost:31337/notify \ How it starts
The opening of the file, as written. The whole thing — 362 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Art Skill
Customization
Before executing, check for user customizations at:
~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Art/
If this directory exists, load and apply:
PREFERENCES.md- Aesthetic preferences, default model, output locationCharacterSpecs.md- Character design specificationsSceneConstruction.md- Scene composition guidelines
These override default behavior. If the directory does not exist, proceed with skill defaults.
🚨 MANDATORY: Voice Notification (REQUIRED BEFORE ANY ACTION)
You MUST send this notification BEFORE doing anything else when this skill is invoked.
-
Send voice notification:
curl -s -X POST http://localhost:31337/notify \ -H "Content-Type: application/json" \ -d '{"message": "Running the WORKFLOWNAME workflow in the Art skill to ACTION"}' \ > /dev/null 2>&1 & -
Output text notification:
Running the **WorkflowName** workflow in the **Art** skill to ACTION...
This is not optional. Execute this curl command immediately upon skill invocation.
What It Does
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, Nano Banana Pro (Gemini 3 Pro), and GPT-Image-2. Every request routes through a named workflow that encodes the technique and palette, output stages to $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) for review first, and blog headers ship both a transparent inline version and an opaque social thumbnail.
The Problem
The bare image model produces inconsistent, off-style output when handed a freeform prompt — one session shipped 12 rejected diagrams because the prompt skipped the workflow that holds the composition rules. Different formats need different models (text-heavy cards want GPT-Image-2; editorial headers want Nano Banana Pro), different size formats, and different transparency handling. Without a fixed routing-and-staging discipline, you get wrong sizes, opaque headers that bleed over the page background, and images pushed straight to a repo before anyone looked at them. This skill makes the workflow, the model choice, and the Downloads-first review mandatory in code, not just in markdown.
What ships with it
37 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- Lib/discord-bot.ts 7.1 KB runs code
- Lib/midjourney-client.ts 8.7 KB runs code
- Tools/.gitignore 388 B
- Tools/bun.lock 19 KB
- Tools/CLAUDE.md 2.6 KB
- Tools/ComposeThumbnail.ts 18 KB runs code
- Tools/FillFrame.ts 8.2 KB runs code
- Tools/Generate.ts 42 KB runs code
- Tools/GenerateMidjourneyImage.ts 12 KB runs code
- Tools/GeneratePrompt.ts 16 KB runs code
- Tools/package.json 256 B
- Tools/PickExpression.ts 4.3 KB runs code
- Tools/README.md 212 B
- Tools/ThumbnailText.ts 23 KB runs code
- Tools/tsconfig.json 759 B
- Workflows/AdHocYouTubeThumbnail.md 13 KB
- Workflows/AnnotatedScreenshots.md 11 KB
- Workflows/Aphorisms.md 10 KB
- Workflows/Comics.md 14 KB
- Workflows/Comparisons.md 12 KB
- Workflows/CreateLifeosPackIcon.md 6.3 KB
- Workflows/D3Dashboards.md 9.3 KB
- Workflows/EmbossedLogoWallpaper.md 8.8 KB
- Workflows/Essay.md 63 KB
- Workflows/Frameworks.md 11 KB
- Workflows/LogoWallpaper.md 9.9 KB
- Workflows/Maps.md 14 KB
- Workflows/Mermaid.md 30 KB
- Workflows/RecipeCards.md 11 KB
- Workflows/RemoveBackground.md 4.1 KB
- Workflows/Stats.md 11 KB
- Workflows/StyleMatchedThumbnail.md 16 KB
- Workflows/Taxonomies.md 11 KB
- Workflows/TechnicalDiagrams.md 11 KB
- Workflows/Timelines.md 11 KB
- Workflows/Visualize.md 29 KB
- Workflows/YouTubeThumbnailChecklist.md 13 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 362 lines · 124 tokens per session scan A 8d58e1c1c8f3
Art is a skill published in the GitHub repository danielmiessler/LifeOS (18,872 stars, last pushed 20d ago), licensed MIT. It adds 124 tokens to every session and 6,089 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
imagegen-frontend-web
Elite frontend image-direction skill for generating premium, conversion-aware website design references. CRITICAL OUTPUT RULE — generate ONE separate horizontal image FOR EVERY section. A landing page with 8 sections produces 8 images. Never compress multiple sections into one image. Enforces composition variety (not…
brandkit
Premium brand-kit image generation skill for creating high-end brand-guidelines boards, logo systems, identity decks, and visual-world presentations. Trained for minimalist, cinematic, editorial, dark-tech, luxury, cultural, security, gaming, developer-tool, and consumer-app brand systems. Optimized for intentional…
demo
Record a short demo VIDEO of a PR or feature — drive the repo's web UI in a real headless browser, capture the session, and composite a titled, size-capped mp4 with ffmpeg. Use on the docker QA image when the deliverable is a playable demo clip (single walkthrough or before/after comparison), not a text/screenshot…
echo-plugins
Build, validate, package, and stage optional Echo plugins using the Echo Plugin API v1 security and lifecycle contracts.
gemini-imagegen
Generate and edit images using the Gemini API. Use for text-to-image, image editing, style transfers, logos, stickers, or product mockups.
browser-spa-framework
Architecture/conventions for the Echo browser SPA: Go stdlib server :3740, Vite-built TS+JS SPA (embedded web/dist), JSON envelope, WebSocket hub, chat tool loop, shared appdata echo.json, internal/tools registry, tool-generated media transport (Phase 0/1), and the file-browser image/video/audio preview surface…