Dither any image in the browser. Clean monochrome studio plus CLI and HTTP API for coding agents.
Studio · DitherSkill · GitLab · GitHub
- Studio: https://ditherstudio.ideatr.dev
- Agent skill + examples: https://ditherskill.ideatr.dev
- Example pack:
/examplesin the studio (portrait, landscape, UI, logo, gradient)
npx skills add arjunkshah/ditherskill -g -ynpm run examplesnpm install
npm run devDrop an image, pick an algorithm, export PNG. All client-side.
npm run cli -- photo.jpg -o out.png -a floyd-steinberg -t 128 --json
npm run cli -- clip.mp4 -o clip-dither.mp4 -a bayer-8 --video-fps 12 --video-crf 24
npm run cli -- algorithms --jsonVideo input uses local ffmpeg/ffprobe for frame extraction and encoding. Add --no-audio to drop the source audio track.
npm run serve
# http://127.0.0.1:8787curl -sS -X POST \
"http://127.0.0.1:8787/v1/dither?algorithm=atkinson&threshold=140" \
-F "file=@photo.jpg" -o out.pngGET /healthGET /v1/algorithmsGET /openapi.jsonPOST /v1/ditherPOST /v1/dither/base64
import { ditherFile, ALGORITHMS } from 'ditherstudio'
await ditherFile('in.png', 'out.png', {
algorithm: 'stucki',
threshold: 128,
})Threshold · Random · Floyd-Steinberg · Atkinson · Jarvis-Judice-Ninke · Stucki · Burkes · Sierra · Bayer 2/4/8 · Halftone · Blue-noise · Riemersma · Hybrid
- AGENTS.md
- llms.txt
- Companion skill: arjunkshah/ditherskill
Vite · React · TypeScript · Tailwind · sharp (CLI/API)
MIT