PromptVault is a local-first desktop app for organizing prompt libraries with text, image, and video references. It is built with React, Vite, Tailwind CSS, Zustand, and Electron.
The app does not require a hosted backend. It works with a folder you choose on your own machine and stores prompt data directly in that folder.
Also this is my first app. enjoy :)
- Browse folders as prompt collections.
- Create, rename, and delete folders and prompts.
- Store prompt text in
prompt.jsonfiles. - Attach images and videos to prompts.
- Choose a cover image or video for each prompt.
- Preview media in cards, modals, and a lightbox.
- Preserve a simple legacy layout where media files are paired with
.txtprompt files.
Screenshots are not included in this source release yet. Add current app screenshots to docs/screenshots/ before publishing a polished GitHub release page.
- Node.js 18 or newer.
- npm 9 or newer.
- Windows, macOS, or Linux for development.
- GitHub Actions can build unsigned Windows, macOS, and Linux release artifacts.
npm installnpm run devThis starts Vite on http://localhost:5173 and launches Electron against that development server.
npm run buildThis creates the production web bundle in dist/.
npm run packageOn Windows, electron-builder may need Developer Mode or administrator privileges because its signing helper archive contains symbolic links. If packaging fails with Cannot create symbolic link, enable Windows Developer Mode, run the terminal as administrator, or package in CI.
For a faster unpacked local smoke build:
npm run package:dirThis script disables asar and Windows executable resource editing so it can run on standard Windows accounts that cannot create symbolic links. For a production-style unpacked build with asar enabled, use:
npm run package:dir:productionThe repository includes a GitHub Actions release workflow. To build unsigned installers for Windows, macOS, and Linux, create and push a version tag:
git tag v2.0.0
git push origin v2.0.0GitHub Actions will build release artifacts on platform-specific runners and attach them to the GitHub Release.
PromptVault supports two local library formats.
Each prompt is a folder containing:
My Prompt/
prompt.json
cover.png
media/
reference-1.png
reference-2.mp4
prompt.json:
{
"name": "My Prompt",
"text": "Prompt text goes here",
"meta": {},
"created": 1710000000000
}PromptVault can also read flat media/text pairs:
my-prompt.png
my-prompt.txt
The media file becomes the preview and the .txt file becomes the prompt text.
electron/ Electron main process and preload bridge
src/ React renderer app
src/components UI components
src/store Zustand app state
PromptVault is intended as a local desktop app for user-selected folders. It exposes file-system operations from Electron's main process to the renderer through a preload bridge. Do not load untrusted remote web content in this app without first tightening the Electron security model. See SECURITY.md.
See CONTRIBUTING.md.
PromptVault itself is released under MIT. See LICENSE.
Third-party dependency licenses are listed in THIRD_PARTY_NOTICES.md.