Set a grid size, pick a color, and place pixels to build sprite-scale art — then save it as a plain PNG where one cell is exactly one image pixel.
Start square at 16, 32, or 64 — or any width × height you like. Empty cells show a checkerboard, and the canvas scales up to fill the window so every pixel is a comfortable target.
Three tools, one key each — B, E, I. Click to place a pixel, drag to lay a run. Every stroke is one step on the undo stack, so nothing is ever a one-way door.
A 32×32 canvas saves as a 32×32 PNG, transparency and all — and any PNG opens straight back into a grid of its size. No project format to learn, a perfect round-trip.
Working across a sheet of sprites? Step to the next or previous .png in the same folder with the chevrons or Ctrl+] and Ctrl+[ — your colors stay put, no file dialog.
A current swatch with a native picker, and a strip of recent colors that follows you between files. Scroll the canvas to cycle the set; open a .gpl palette to load your own.
Small binary, AppImage and .deb, real .png file association, in-app updater. Built on Tauri and Rust — no Electron.
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 pixel-editor
Clone, install dependencies, and build with Tauri. Needs Node (with pnpm) and a Rust toolchain.
# clone git clone https://github.com/krill-software/pixel-editor.git cd pixel-editor # build pnpm install pnpm tauri build