A desktop sticky-notes-style prompt manager — create, tag, search, and copy prompts instantly.
Built with Electron + React 19 + Vite + shadcn/ui + Tailwind CSS v4 + SQLite3
QuickPrompt is a fast, offline-first prompt manager designed for developers, writers, and AI users who constantly reuse prompts. Instead of losing prompts across notes, chats, and files, QuickPrompt keeps everything locally stored, properly tagged, and one-click copy ready.
- Instant access — floating action button for quick saves
- One-click copy — copy any prompt to clipboard instantly
- Smart tagging — autocomplete tag system with color-coded labels
- Full-text search — search across content and tags simultaneously
- Encrypted vault — store passwords, API keys, and secrets safely
- Folder organization — organize prompts and vault items into folders
- Backup & restore — encrypted export/import for secure data portability
- Multiple themes — Light, Cyberpunk, Volt, Noir, and Ember
- Quick save via floating action button
- Edit prompts from card menu or double-click to view full content
- Favorite system with filtering
- Grid/List toggle view
- Drag & drop reorder with keyboard support
- Store passwords, API keys, and other secrets
- Secrets encrypted with your computer's built-in security
- Grid and Accordion view toggle with sorting
- Sticky-note style cards with type-based coloring
- Pin important items and mark favorites
- Full folder system for prompts and vault items
- Folder grid view with breadcrumb navigation
- Create, rename, and delete folders
- Bulk selection for moving multiple items
- Custom folder icons with size customization
- Folder appearance picker with custom colors
- Animated search bar with toggle and clear
- Conditional search based on active view
- Spotlight search for quick navigation
- Settings sidebar search
- Encrypted backup and restore
- Secure data portability
- Local-only storage (no cloud dependency)
| Theme | Description |
|---|---|
| Light | Clean minimal UI |
| Cyberpunk | Neon-accented dark theme |
| Volt | Fresh electric green (default) |
| Noir | Dark, moody styling |
| Ember | Soft warm amber tint |
- System tray integration
- Minimal mode (no dock on macOS)
- Native menu bar integration
- Auto-update with download progress and ETA
- Splash screen with smooth loading transition
| Layer | Technology |
|---|---|
| Desktop | Electron 42 |
| UI | React 19, shadcn/ui, Radix UI |
| Styling | Tailwind CSS v4 |
| Icons | Tabler Icons |
| Database | SQLite3 |
| Build | Vite 8 + vite-plugin-electron |
| Packaging | electron-builder 26 |
| Animations | @dnd-kit (drag & drop) |
- Node.js v24 or later
- npm or yarn
# Clone the repository
git clone https://github.com/bilals2008/QuickPrompt.git
cd QuickPrompt
# Install dependencies
npm install
# Start development server
npm run dev# Windows (NSIS installer)
npm run dist:win
# macOS (DMG)
npm run dist:mac
# macOS ARM (Apple Silicon)
npm run dist:mac:arm
# Linux (AppImage + DEB)
npm run dist:linux
# All platforms
npm run dist:allOutput is generated in the release/ directory.
QuickPrompt/
├── electron/
│ ├── main.js # Electron main process
│ ├── preload.js # Preload script (IPC bridge)
│ ├── backup.js # Backup & restore with encryption
│ └── database/
│ ├── db.js # Database connection
│ ├── schema.js # Table definitions & migrations
│ ├── prompts.js # Prompt CRUD operations
│ ├── folders.js # Folder CRUD operations
│ ├── vault.js # Vault item CRUD
│ └── vault-folders.js # Vault folder CRUD
│
├── src/
│ ├── main.jsx # React entry point
│ ├── App.jsx # Root component & routing
│ ├── index.css # Global styles
│ │
│ ├── pages/
│ │ ├── HomePage.jsx # Main prompt list
│ │ ├── VaultPage.jsx # Encrypted vault
│ │ ├── CollectionsPage.jsx # Folder browser
│ │ └── Settings.jsx # App settings
│ │
│ ├── components/
│ │ ├── add-prompt-dialog.jsx
│ │ ├── edit-prompt-dialog.jsx
│ │ ├── prompt-card.jsx
│ │ ├── prompt-detail-dialog.jsx
│ │ ├── sortable-prompt-card.jsx
│ │ ├── tag-manager.jsx
│ │ ├── theme-provider.jsx
│ │ ├── empty-state.jsx
│ │ ├── section-header.jsx
│ │ ├── vault-item-dialog.jsx
│ │ ├── ui/ # shadcn/ui primitives
│ │ ├── folders/ # Folder components
│ │ ├── vault/ # Vault view components
│ │ ├── collections/ # Collection components
│ │ ├── icons/ # Custom icons
│ │ └── settings/ # Settings components
│ │
│ ├── features/
│ │ ├── import-export/ # Import/Export page
│ │ ├── onboarding/ # Onboarding flow
│ │ └── spotlight-search/ # Spotlight search
│ │
│ ├── hooks/
│ │ ├── use-theme.jsx
│ │ ├── useFolders.js
│ │ ├── useVaultFolders.js
│ │ ├── usePromptLoader.js
│ │ ├── useCardDisplaySettings.js
│ │ └── useFolderDisplaySettings.js
│ │
│ └── lib/
│ ├── utils.js
│ ├── prompt-utils.js
│ ├── folder-appearance.js
│ ├── vault-types.js
│ ├── tag-utils.js
│ ├── tag-colors.js
│ └── sticky-tint.js
│
├── public/
├── build/ # App icons
├── screenshots/
├── vite.config.js
├── components.json # shadcn/ui config
└── package.json
Data is stored locally at:
{userData}/QuickPrompt/quickprompt.db
| Table | Description |
|---|---|
prompts |
Prompt content, favorites, metadata |
tags |
Tag definitions and associations |
folders |
Prompt folder hierarchy |
vault_folders |
Vault folder hierarchy |
vault_items |
Encrypted vault entries |
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server with Electron |
npm run build |
Build for production |
npm run dist:win |
Package for Windows |
npm run dist:mac |
Package for macOS |
npm run dist:linux |
Package for Linux |
npm run dist:all |
Package for all platforms |
npm run lint |
Run ESLint |
npm run preview |
Preview production build |
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please use Conventional Commits format.
Muhammad Bilal Hassan
A more advanced prompt system with collections, analytics, templates & activity logs.
This project is licensed under the MIT License.
Built with care by Muhammad Bilal Hassan
