Skip to content

Repository files navigation

PromptVault

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 :)

Features

  • Browse folders as prompt collections.
  • Create, rename, and delete folders and prompts.
  • Store prompt text in prompt.json files.
  • 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 .txt prompt files.

Screenshots

Screenshots are not included in this source release yet. Add current app screenshots to docs/screenshots/ before publishing a polished GitHub release page.

Requirements

  • 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.

Install

npm install

Run In Development

npm run dev

This starts Vite on http://localhost:5173 and launches Electron against that development server.

Build

npm run build

This creates the production web bundle in dist/.

Package

npm run package

On 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:dir

This 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:production

GitHub Releases

The 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.0

GitHub Actions will build release artifacts on platform-specific runners and attach them to the GitHub Release.

Library Format

PromptVault supports two local library formats.

Current Format

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
}

Legacy Format

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.

Project Structure

electron/      Electron main process and preload bridge
src/           React renderer app
src/components UI components
src/store      Zustand app state

Security Model

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.

Contributing

See CONTRIBUTING.md.

License

PromptVault itself is released under MIT. See LICENSE.

Third-party dependency licenses are listed in THIRD_PARTY_NOTICES.md.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages