A desktop application for aggregating, organizing, and browsing large image and video collections. Picto downloads media from online sources via subscriptions, stores everything in a local library, and provides powerful tools for tagging, searching, and managing your collection. It is not a sharing platform — everything stays on your machine.
- Download & aggregate — subscribe to artists, tags, or feeds across dozens of sites (Pixiv, Gelbooru, Danbooru, Twitter/X, DeviantArt, Patreon, and more). Picto fetches new content automatically on a schedule.
- Organize — folders, smart folders, tags (with namespaces), star ratings, and color-based search. Drag and drop between folders, bulk-tag selections, and auto-tag with AI.
- Browse — waterfall, justified, and grid layouts. Full-screen media view with zoom/pan. Strip view for reading comics and image sequences. Duplicate detection with visual similarity matching.
- Import — drag files or folders into the app, or point Picto at a directory to watch for new content.
- Everything local — libraries are self-contained folders on disk. No cloud, no accounts, no uploads.
The user manual and feature documentation live in the docs/ directory:
docs/pbis/active-alpha/— current alpha backlog and feature specsdocs/pbis/archive/— completed feature specs
Picto is built with Electron + React + a Rust core (via napi-rs). The Rust backend handles SQLite, image processing, and all heavy lifting. The frontend is a React app with canvas-based rendering for the grid.
- Node.js 20+
- Rust toolchain (stable)
- Yarn
yarn install
cd native/picto-node && yarn install && cd ../..yarn dev:electroncd native/picto-node && ./node_modules/.bin/napi buildAlpha blocking gate:
yarn gate:alphaLocal package:
yarn alpha:packageLocal smoke test:
yarn alpha:smoke -- --platform local --report artifacts/alpha-smoke/local.json