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 skills add melaya-labs/melaya-mcp --skill paint-artistgit clone --depth 1 https://github.com/melaya-labs/melaya-mcpWrote 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/melaya-labs/melaya-mcp/paint-artist)<a href="https://agentmods.dev/skills/melaya-labs/melaya-mcp/paint-artist"><img src="https://agentmods.dev/badge/skills/melaya-labs/melaya-mcp/paint-artist/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/melaya-labs/melaya-mcp/paint-artist"><img src="https://agentmods.dev/badge/skills/melaya-labs/melaya-mcp/paint-artist.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00000 | $0.03803 |
| Opus 5.5 | $0.00000 | $0.01521 |
| Sonnet 5.5 | $0.00000 | $0.00761 |
| Haiku 4.5 | $0.00000 | $0.00380 |
Grade A, and why
paint-artist scanned grade A with 0 findings 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 today.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 122 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Paint Artist
Plan a painting as strokes (app-agnostic), simulate it with Paint's measured tools, emit it as one stored Melaya batch plan, paint it in Paint in a single melaya_computer_batch call, then score the live canvas. Reference runs: Mona Lisa (master): 1786 steps, 17,386 strokes, 288 colour picks, 512 s, Lab dE 6.30 vs the original (face 5.36). Nine styles painted live on the Mona Lisa by an agent using only this file: live vs simulation dE 1.7 (mondrian) to 4.1 (pop-art) for flat and opaque styles; see references/scoring.md.
SKILL_DIR = the folder of this file. Every command runs in SKILL_DIR/scripts: python -m paint_artist <command> (numpy, scipy, Pillow; ffmpeg for grabs). Load the melaya skill for Melaya rules (status first, never widen access, never approve for the user).
Pick the mode
| The user wants | Mode | Start with |
|---|---|---|
| This PNG/JPG painted as faithfully as possible | 1. Reproduce 1:1 | prepare SRC --style master (+ --focus on the face) |
| Subject X painted like reference painting Y | 2. Style from a reference | analyse Y --out style.json, look at Y, fix the JSON, prepare X --style style.json --reference Y --transfer |
| Subject X "as Monet / Van Gogh / Seurat / Picasso / Matisse / Munch / Klimt / Mondrian / watercolour / sketch / woodblock / stained glass / pixel art / ink wash / pop art / old master" | 3. Named style | prepare X --style <style>; see styles/ |
| One picture split into cells, each in another style (a style grid, e.g. half Leonardo half Warhol through the face) | 5. Grid composite | prepare --subject mona_lisa --grid 2x2 --styles master,pop-art,pointillism,cubism [--split-x 0.45 --split-y 0.37], then plan, open canvas.png (written by plan), locate, emit, one batch call; see references/grid.md |
| Each part painted as its own full painting, assembled into one ultra-detailed picture (zoomed boxes) | 6. Boxes | prepare SRC --boxes 2x2 --styles ... --name SLUG [--crop ..] [--split-at x,y], plan, open the box canvases, locate once, emit, one batch call per box, save each, assemble; many paintings: the batch flow. See references/grid.md |
| A new picture with no source image | 4. Fresh composition | `compose landscape |
What ships with it
60 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.
- assets/examples/contact_sheet.png 810 KB
- assets/examples/live_test_ukiyoe_compare.png 223 KB
- assets/subjects/mona_boxes.json 1.7 KB
- assets/subjects/mona_grid_split_face.json 2.6 KB
- assets/subjects/mona_lisa_900.jpg 406 KB
- assets/subjects/mona_lisa.jpg 126 KB
- assets/subjects/subjects.json 402 B
- references/adapters.md 2.7 KB
- references/calibration.md 6.9 KB
- references/grid.md 17 KB
- references/melaya-batch.md 3.8 KB
- references/paint-win11.md 5.9 KB
- references/planner.md 12 KB
- references/recording.md 5.0 KB
- references/scoring.md 2.9 KB
- references/style-transfer.md 3.7 KB
- references/workflow.md 8.3 KB
- scripts/paint_artist/__init__.py 121 B runs code
- scripts/paint_artist/__main__.py 30 B runs code
- scripts/paint_artist/analyse.py 6.4 KB runs code
- scripts/paint_artist/boxes.py 15 KB runs code
- scripts/paint_artist/cells.py 22 KB runs code
- scripts/paint_artist/cli.py 40 KB runs code
- scripts/paint_artist/color.py 4.2 KB runs code
- scripts/paint_artist/compose.py 8.8 KB runs code
- scripts/paint_artist/emit_paint.py 10 KB runs code
- scripts/paint_artist/fastpaint.py 13 KB runs code
- scripts/paint_artist/grid.py 19 KB runs code
- scripts/paint_artist/locate.py 9.2 KB runs code
- scripts/paint_artist/paint_tools.json 3.6 KB
- scripts/paint_artist/planner.py 44 KB runs code
- scripts/paint_artist/prepare.py 11 KB runs code
- scripts/paint_artist/score.py 2.5 KB runs code
- scripts/paint_artist/simulate.py 6.3 KB runs code
- scripts/paint_artist/speedcalib.py 6.9 KB runs code
- scripts/paint_artist/ui.default.json 2.4 KB
- scripts/record.ps1 3.1 KB runs code
- scripts/timer.ps1 3.8 KB runs code
- styles/chiaroscuro.json 1.3 KB
- styles/chiaroscuro.md 1.2 KB
- styles/cubism.json 1.3 KB
- styles/cubism.md 1.6 KB
- styles/expressionism.json 1.6 KB
- styles/expressionism.md 1.3 KB
- styles/fauvism.json 1.5 KB
- styles/fauvism.md 1.3 KB
- styles/impressionist.json 1.5 KB
- styles/impressionist.md 1.3 KB
- styles/klimt.json 2.9 KB
- styles/klimt.md 1.8 KB
- styles/master.json 1.4 KB
- styles/master.md 1.8 KB
- styles/mondrian.json 1.2 KB
- styles/mondrian.md 1.8 KB
- styles/pencil-sketch.json 1.2 KB
- styles/pencil-sketch.md 1.3 KB
- styles/pixel-art.json 608 B
- styles/pixel-art.md 1007 B
- styles/pointillism.json 1.0 KB
- styles/pointillism.md 1.4 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.
- today Changed 706c8062245c
- yesterday First seen · 122 lines · 0 tokens per session scan A 0b2bc20f3e41
paint-artist is a skill published in the GitHub repository melaya-labs/melaya-mcp (1 stars, last pushed yesterday), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 3,803 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-24.
Other skills, from other repositories
helmdeck-hyperframes-authoring
Author render-deterministic hyperframes compositions. Use when generating HTML/CSS/JS for hyperframes.compose, hyperframes.render, or any pipeline that produces a programmatic MP4 via hyperframes — including builtin.scaffolded-narrated-video, builtin.prompt-video, builtin.prompt-narrated-video. The framework's "render…
signed-in-browser
Drive the browser the user is already signed into, instead of a cold automation profile. Use when a task lives behind a login — a dashboard, an admin console, an internal tool, a ticket queue, a bank or billing page, webmail, a social account — or when a scripted login is failing on SSO, MFA, CAPTCHA or bot detection.…
publish-mcp-server
List an MCP server on the public directories — Smithery, Glama, mcpservers.org and awesome-mcp-servers — by driving a signed-in browser. Use when a new MCP server is ready to announce, when an existing listing needs updating after a release, or when a directory submission was filled in and did not go through. Covers…
post-to-hacker-news
Submit to Hacker News, including Show HN, by driving a signed-in browser. Use when launching a product, tool or MCP server, or when a submission needs its customary author comment. Covers the title rules, when a Show HN is allowed, the url-or-text choice, and how to tell a real submission from a silent failure.
helmdeck-debug
Audit/debug a helmdeck deployment. When a maintainer asks to "debug helmdeck", "audit the integrations", "health-check the pipelines", or "find bugs to file", run a diagnostic sweep across EVERY pipeline and capability pack — a static check of the definitions plus a live end-to-end run sweep — classify each failure by…
helmdeck
Use helmdeck's 57 capability packs (browser, web scraping, content grounding, podcast/slide/blog/video production, image generation, stock photo search, repo orientation, filesystem, git, GitHub, HTTP, vision, document OCR/parse, Python/Node execution, typed artifact store with audit-callback verification) plus four…