Local screenshots vault. A tiny Electron app that turns a folder of screenshots into a Pinterest-style masonry grid. Click an image for a fullscreen modal, paste from the clipboard to add new ones.
npm install
npm start- Add: paste with
⌘V, drag image files in from Finder, or drop them directly into the screenshots folder. Saved aspaste-<timestamp>-<rand>.<ext>. Max 25 MB per image. Supported types:png, jpg, jpeg, gif, webp, avif, bmp. - Modal: click any image to open. Arrow keys navigate,
Esccloses. - Reveal in Finder: hover a thumbnail, click the ↗ in the corner.
- Delete: hover a thumbnail, click the × in the corner.
- Change folder: click the ⚙ cog in the header.
| What | Path |
|---|---|
| Screenshots (default) | ~/Library/Application Support/vibes-machine/screenshots/ |
| Settings | ~/Library/Application Support/vibes-machine/config.json |
The screenshots folder is configurable: click the ⚙ cog in the header to
pick a different folder via the native picker. Your choice is persisted in
config.json. Switching folders does not move existing files — the new folder
just becomes the source.
- Electron 33, plain JavaScript, no bundler.
- Main process (main.js) owns the filesystem; renderer talks to it
via a
contextBridgeIPC surface (window.vibes.{list,save,delete,onChanged}). - Images render via
<img src="file:///…">directly — no custom protocol. fs.watchon the screenshots dir broadcasts avibes:changedevent to the renderer (debounced 75 ms) which reconciles state by re-listing.
See CLAUDE.md for architecture details.
The original Astro 5 SSR version is preserved under legacy/ as a
fallback reference. Run with cd legacy && npm i && npm run dev.