Early preview — built with Rust + Wasm

Photo editing
at the speed of thought

Vim-inspired keyboard controls for every adjustment. Navigate sliders, copy-paste edits across batches, export — all without touching the mouse.

j k slider h l adjust y yank p paste e export
darkslide.app
Darkslide editor — keyboard-driven photo adjustments with histogram, curve editor, and filmstrip

Features

Built for photographers who edit hundreds of images

vi

Keyboard-first controls

Navigate sliders with jk, adjust with hl. Coarse ±10 with HL. Count prefixes work — 5l adds 5. Arrow keys supported too.

yn

Yank & paste edits

Press y to yank all adjustments. Select images in the filmstrip with HL, then p to paste across the batch. Edit hundreds of photos in one session.

e

Bulk export

Select images, press e. Pick a folder once — files export with a live progress bar. No dialogs, no waiting. Works in browser and native.

~

Tone curves

Full curve editor, entirely keyboard-driven. Add points with a, move with hjkl, delete with d. Fritsch-Carlson monotone cubic interpolation.

20

20 adjustment sliders

Exposure, contrast, highlights, shadows, whites, blacks, brightness, temperature, tint, hue, saturation, vibrance, texture, clarity, black point, sharpen, grain amount, size, and roughness.

fn

Live histograms

RGB color and luminance histograms update in real-time as you adjust. Always visible — no panels to open. Context-sensitive keyboard hints adapt to your current mode.

Workflow

Your hands never leave the keyboard

o

Open images

Press o to add files, O to replace the current set. Thumbnails appear in the filmstrip. Works with any image format your browser supports.

j k

Navigate sliders

Move between adjustments grouped by Light, Color, H&S, and Detail. The focused slider highlights in the sidebar. Scroll follows automatically.

h l

Adjust values

h/l for fine ±1, H/L for coarse ±10. Prefix with a number: 5l adds 5. Press c to clear one slider, C to reset everything.

Tab

Switch to filmstrip

Tab toggles between sidebar and filmstrip. In filmstrip: h/l navigates images, H/L selects while moving, Esc clears selection.

y p

Yank and paste

y copies all adjustments (including curves) from the current image. Select a batch with H/L, then p to apply everywhere. One keystroke per image.

e

Export

Exports current image or entire selection as PNG. Pick a folder once — files write in parallel with a progress indicator. Native export via Tauri on desktop.

Under the hood

Fast by architecture, not by accident

Rust
All pixel math — adjustments, curves, sharpening, grain — runs in compiled Rust
WebAssembly
Near-native speed in the browser. No server, no uploads, photos stay on your machine
React
Declarative UI with fine-grained memoization keeps the editor responsive during Wasm-intensive processing

Try it now

No account. No install. Runs entirely in your browser. Your photos never leave your machine.

Launch Darkslide