Paint

Open a blank canvas the moment it launches. Draw freehand, lay down lines and boxes and ellipses, flood-fill a region, pick a color off the canvas, undo. Save it as a PNG. The bar is the paint program you already know — not a layered compositor.

v0.1.1 · Linux x86_64 · Free & open source
untitled.png ─ ▢ ✕
960 × 600 · 412, 248 · 100%
v0.1.1 960 × 600 · 412, 248 · 100%

One canvas. The 80% of paint.

Draw

Eight tools, one bitmap

Pencil, brush, eraser, straight lines, rectangles, ellipses, flood fill, and an eyedropper. Pick one from the rail and draw — shapes preview live as you drag and commit to pixels the moment you release.

One canvas

No layers, on purpose

One bitmap, like the paint program you already know. What you see on the canvas is the document — no layer stack, no masks, no blend modes, no channels, nothing extra to learn.

PNG in / PNG out

The canvas makes the bytes

Open a PNG — or any raster the system webview decodes, JPEG, WebP, GIF, BMP — and paint on top. Save writes a true-white PNG straight from the canvas. Rust never touches an image codec; it just moves bytes.

Color & size

Any color, 1 to 64 px

A color well for arbitrary RGB with a strip of recent swatches, and one brush-size slider that drives the brush, eraser, lines and shape strokes alike. The bracket keys nudge the size.

Undo

Thirty steps back

Every committed stroke snapshots the canvas. Ctrl+Z walks back up to thirty levels; Ctrl+Shift+Z walks forward again. An in-flight drag stays undo-free until you let go.

Tauri · Rust

Native Linux

A thin Rust byte courier behind a system-webview canvas. AppImage and .deb, PNG file associations, XDG dirs. No Electron, no telemetry, no accounts, no settings panel.

A simple interface.

Focus One app, one job. One file, one window. No tabs, no project trees, no mode pickers — the work in front of you is the work.
Beauty A locked palette, careful typography, chrome that sits still. The apps shouldn't be the part of your desktop you have to forgive.
Simplicity No settings panel, no plugin system, no power-user knobs. If a feature can't be explained in a sentence, it doesn't ship.
Ownership Your files on your disk in their original format. No accounts, no cloud, no telemetry. MIT licensed; build it yourself if you don't trust ours.

Quick install

One-liner — downloads the AppImage to ~/.local/bin, marks it executable, and registers a launcher entry. Re-run to upgrade.

curl -fsSL https://krill-software.github.io/install.sh | bash -s paint
or download a package
Download .deb
# install with apt
sudo apt install ./Paint_0.1.1_amd64.deb

# or with dpkg
sudo dpkg -i Paint_0.1.1_amd64.deb
Download AppImage
# make executable & run
chmod +x Paint_0.1.1_amd64.AppImage
./Paint_0.1.1_amd64.AppImage

Build it yourself

Clone, install dependencies, and build with Tauri. Needs Node (with pnpm) and a Rust toolchain.

# clone
git clone https://github.com/krill-software/paint.git
cd paint

# build
pnpm install
pnpm tauri build