← Back to all posts
Tools

Klad Is a Paint App Your Coding Agent Drives, and Every Stroke Stays Editable

November 14, 2026 · 00:12 UTC · Tools
On this page 7 sections
Klad Is a Paint App Your Coding Agent Drives, and Every Stroke Stays Editable

TL;DR

Klad is a 2D painting and animation app built for agent/human collaboration: your Claude Code or Codex session paints through the klad command line with real brushes, and every mark stays editable data with its path, pressure, brush and colour. There is no image model anywhere in it. The Rust app went public on Hacker News on Nov 11 as source-available, picked up 181 GitHub stars, and building it yourself is free unless your company made 500k euros or more last year.


At a glance
An editor and a terminal share one drawing
181
stars on github, nov 14
83
points and 34 comments on its show hn thread
0
image models inside, brushes and layers only
~15m
agent time for the demo poster, rough maker estimate
$19
once for signed builds, all 1.x updates included
$49
per seat for companies at or above 500k euros revenue

One drawing, two painters

You paint in the editor with a pen. The agent paints through the CLI on the same drawing, with the same brushes, and its strokes show up on your canvas about a second later. Its marks are flagged as its own, and every change from either of you lands in one shared undo history, so you can roll back anything.

Steering works by pointing. Pin a note on the canvas ("more moss on this side") or select the part you mean, and the agent reads both. When you take over and repaint, its next pass starts from your version, because it is one file.

How it works
Two painters, one file
Ask
Brief the agent in plain words
a lantern for the inn, lit from the left, own layer
Watch
It paints through the klad CLI
strokes land in your editor about a second later
Point
Pin a note or select the part
the agent reads both before its next pass
Take over
Repaint anything, its strokes included
one shared history, undo any of it
From the README and klad.studio. The agent needs no account and no key, only the klad command on its path.

Why not just generate the picture

The maker, who posts as ambewas on Hacker News (the code is copyright Indicode BV), built it out of a game-development complaint: agent art meant either an image generator where every edit is another dice roll, or plain vectors with no paint in them. If you have met the ninth reroll of the same leaf, you know the shape of the problem.

Klad keeps each stroke as data: where it went, how hard it was pressed, its brush, its colour. Loaded oil leaves ridges that catch the light, and a smudge drags the paint already on the layer; the smudge is a stroke too, so you can move it hours later and klad blends again where it lands. An image generator hands you a photo of a painting. Klad hands you the painting, still wet, with every brush move written down.

A drawing is a folder of plain files. An edit changes only the files of what it edits, so drawings sit next to your code in git, and edits to different layers merge.

The CLI is the interface

Everything the editor can do has a command, which is what makes an agent useful here:

klad stroke art.klad l4 --brush oil --path 'M100 400 C 300 200 500 600 700 400'
klad set art.klad c4:s12 size=3.5 color=#3355aa
klad strokes art.klad l4 --json
klad inbetween creature.klad --layers lines,colour --from 3 --to 5
klad export creature.klad --godot ../game/art

The agent reads strokes back as JSON and applies batches of edits as JSON ops. Around the app sits a documented surface anyone can build against: the file format is specified down to the byte in docs/format.md, there is a full CLI reference, a klad-client crate, and three agent skills that teach the tool, general drawing craft (light on form, values, edges, colour) and pixel art. All of that is MIT, so other apps and engines can read and write klad drawings with or without klad.

That split is the reusable idea for anyone shipping agent-controllable software: keep your app proprietary if you want, but put the interface (format, commands, skills) under a permissive licence so every agent can speak it.

What early testers found

The thread is small but real. One tester had Opus 5.5 produce characters "less obviously LLM-generated than what you normally see", and the klad.studio gallery already carries a pixel-art knight, a band's show poster and Tree of Life, a game on itch.io. Another tester ran it against a classic image-to-video pipeline and found the generated video still looks more natural; their read is that LLM-driven drawing only became viable in the past year, as models like Qwen3.8-27B and Opus 5x got better at precise tool use. The maker agrees the bottleneck is the model, not the app, and has run no benchmarks.

His own rough clock: the night scene took about 10 minutes of agent work, the poster on the website about 15, and he says a piece takes about as long as having a model code a medium feature. Claude Fable 5.2 painted the sample drawings on klad.studio, including that night scene, stroke by stroke through the CLI.

Rough timings
Ten to fifteen minutes per demo piece
your machineagent work
Night scene
~10 min
Poster
~15 min
First build
~10 min
Maker's rough estimates from the HN thread, no benchmarks exist; he compares the pieces to having a model code a medium feature.

Licence, platforms, rough edges

Klad is source-available, not open source. The app itself is under the PolyForm Internal Use License with added permissions: free to build and use for yourself, and inside a company with under 500k euros in annual revenue. A company at or above that line buys a 49-dollar seat per user, and nobody may redistribute builds. Signed installers are coming at $19 once, $15 if you join the list, with every 1.x update included, no subscription and no account. Much like Aseprite, as the site itself puts it.

The rough edges, from the README's own list: the editor is made on a Mac, with pen pressure and tilt. Linux starts and draws with the mouse, but tablets give no pressure yet. Windows builds and passes tests, though nobody has drawn on it. There are no installers today, so you build from source, which takes about ten minutes the first time.

Besides painting, the app covers animation (timeline, onion skins, in-betweens from key drawings, IK bones as a preview), pixel art on a real grid with Aseprite files in and out plus a klad check lint for stray pixels, doubled corners, jagged lines, banding and off-palette colours, and export to Godot as sprite frames or a tileset. Vector shapes, gradients and about fifty open fonts round it out for posters and covers.

Licence split
The app is PolyForm, the interface is MIT
MIT: any program or agent may use these
file format specCLI reference3 agent skillsklad-client crate
PolyForm Internal Use: the app itself
editorbrush engineno redistribution
Free to build and use below 500k euros of company revenue, 49 dollars a seat above, signed builds 19 dollars once at launch.

Key Takeaways

  • Klad gives coding agents real brushes through a CLI: no image model, no rerolls, and every stroke stays editable data with its path, pressure, brush and colour.
  • The drawing is a folder of plain files that lives in git beside your code; edits touch only the files they change, so different layers merge.
  • The interface is MIT (file format spec, CLI reference, three agent skills, klad-client crate) while the app is PolyForm: a template for agent-controllable software worth copying.
  • Early results are preliminary: image-to-video still looks more natural, the maker says the model is the bottleneck, and the demo pieces took roughly 10 to 15 minutes of agent time.
  • Free to build and use under 500k euros of company revenue; 49 dollars a seat above that; signed builds planned at $19 once with all 1.x updates.
  • macOS is the first-class platform. Linux works with a mouse, Windows is untested for drawing, and there are no installers yet.

Sources: Klad GitHub repository, klad.studio, klad.studio pricing, Hacker News Show HN thread

AIKladCoding AgentsCreative ToolsRustGame DevelopmentPixel ArtSource Available
CONSOLE
$