Repository navigation
Home
artwright is a plugin of four skills and one command-line script that give an AI agent an artist's eye. The agent
critiques art, names styles and movements with the traits that prove them, answers art-history and art-market
questions from sources, checks pixel art, and compares generated images two at a time, in both orders, blind to
file names. The script, aw.py, does the measuring: image sizes and token costs, contact sheets, colour and value
statistics, light, colour and composition measures, pixel-art checks, gates for paintings made over 3D renders,
painted sprites and illustrations that join a series, pair images, a Bradley-Terry ranking and the verdict.json
file that other plugins read.
It does not generate images, edit them, fix pixel grids, judge video or score brand fidelity. It judges, explains and says what to change next.
The current release is 0.7.2, tagged v0.7.2 on 2026-10-26
(Versions and upgrading). Since 0.3.0 it gained geomgate, sprite and setfit,
lightness-based value numbers, a grain estimate, and pixel-art craft numbers (banding, pillow shading, corner
doubles, tile repetition) that are reported but have no pass lines yet. It installs as a Claude Code plugin straight from this
repository, and the skill folders, also in the release's zip, work in other agents that read skills. In Claude
Code, type these two commands.
/plugin marketplace add m4bwav/artwright
/plugin install artwright@artwright
Before an agent reads an image, aw.py info says how big it is and what reading it costs. dusk.png is a
2000 x 1200 test image:
python aw.py info dusk.pngprints:
{
"items": [
{
"file": "dusk.png",
"ok": true,
"format": "png",
"bytes": 16342,
"size": [
2000,
1200
],
"sha256": "01069b7b7057f04bb65c47b1bd01c995bcae247570c53c24e6b7dde6053350c0",
"alpha": "none",
"partial_alpha_pixels": 0,
"unique_colours": 288,
"tokens": {
"standard": {
"tokens": 1500,
"read_at": [
1400,
839
]
},
"high": {
"tokens": 3096,
"read_at": [
2000,
1200
]
}
}
}
],
"ok": true
}
At that size the agent fits it first (aw.py fit dusk.png -o dusk_1024.png gives 814 tokens). Every command
prints one JSON object like this one, with "ok" saying whether it worked.
- Getting started: install the plugin or the skill folders, check what decodes on your machine, run the first commands.
- Skills: what each of the four skills does, what it refuses, and which sibling owns nearby requests.
-
Commands: every
aw.pycommand and option, with real output, including the render, sprite and series gates and the pixel craft numbers. -
Light, colour and composition:
light,gamut,accents,depthandcomp, their flags, text bands, grain, and the damage kinds that test them. -
How images are judged: both orders, ties, the ranking,
close_to_next, cycles, the rubric, and what the numbers fromstatsandpixelmean and do not mean. -
Verdict contract: the
artwright/verdict.jsonfile a calling plugin reads, and whatverdict validatechecks. - Errors and edge cases: every error message, odd inputs, and the known issues.
-
Recipes: calling
aw.pyfrom Python or a shell, a batch end to end, a caller reading the verdict. - FAQ: short answers, with links to the detail.
- Versions and upgrading: what changed in each version and what to do about it.
- Development: the checks, the tests, the evals, CI and how a release is made.
Every output on these pages was printed by aw.py 0.7.2, from the v0.7.2 tag at commit a185c05 (2026-10-26),
the same aw.py, aw_measure.py and aw_geom.py that the release zip holds, unless the page names an older
version. It ran
on Linux with Python 3.14.4 and Pillow 13.0.0, against images drawn in code for the run: dusk.png and noon.png
(snowy landscapes with a small fox), sprite.png (a 16 x 16 sprite drawn at 4x), sprite_ai.png (the same sprite
resampled off its grid), 128 x 128 sprites in renders/ and batch/, and, for the gates and the pixel craft
numbers, a 192 px mill render with painted copies, painted 48 px houses, a five-picture landscape series, a 32 px
orb and three 16 px tiles. The same commands were also run on
Linux without Pillow and on Windows with Python 3.9 and no Pillow; where those runs differ, the page says so. File
hashes and pair ids belong to these drawn images, so yours will differ.
Elsewhere: the README, the CHANGELOG, the command list in the repository and the issues.
This wiki describes artwright 0.7.2 (the v0.7.2 tag, commit a185c05) and was last updated on 2026-10-26. The plugin is MIT licensed. Report problems in the issues. It installs from the repository, m4bwav/artwright, or from the 0.7.2 release.
Using it
- Getting started
- Skills
- Commands
- Light, colour and composition
- How images are judged
- Verdict contract
- Errors and edge cases
- Recipes
- FAQ
The releases
Contributing
Elsewhere