A macOS menu bar app for storing, searching, and quick-copying prompts via a Spotlight-like overlay.
Press Cmd+Shift+P anywhere on macOS to open a floating search overlay. Type to search your prompts, press Enter to copy one to your clipboard. The overlay dismisses automatically.
The app lives in the macOS menu bar with no dock icon. Right-click the tray icon to add or manage prompts.
Get the latest release from the Releases page.
macOS note: Since the app isn't code-signed, macOS will show "damaged" or block it on first open. After mounting the
.dmgand dragging to Applications, run:xattr -cr "/Applications/Prompt Spotlight.app"Then open the app normally.
- Go to supabase.com and create a free account
- Click New Project — pick a name and region, set a database password
- Once the project is ready, go to SQL Editor (left sidebar)
- Paste the contents of
db/001-create-prompts.sqland click Run - Go to Settings → API (left sidebar) and copy:
- Project URL (e.g.
https://xxxx.supabase.co) - anon public key (under "Project API keys")
- Project URL (e.g.
On first launch, the app shows a Settings screen. Paste your Project URL and anon key from the previous step. Credentials are stored locally on your machine.
- App icon appears in the macOS menu bar (not the dock)
- Press
Cmd+Shift+P— overlay window appears centered on screen - Press
Cmd+Shift+Pagain — overlay hides - Click tray icon → Add Prompt — add your first prompt
- Press
Cmd+Shift+P, type to search, press Enter to copy to clipboard
- Rust (1.70+): Install via rustup
- Node.js (18+): Install via nvm or homebrew
git clone https://github.com/Catafal/prompt-spotlight.git
cd prompt-spotlight
npm install
npm run tauri dev- App icon appears in the macOS menu bar (not the dock)
- Press
Cmd+Shift+P— overlay window appears centered on screen - Press
Cmd+Shift+Pagain — overlay hides - Click tray icon — menu shows: Add Prompt, Manage Prompts, Quit
prompt-spotlight/
├── src/ # React frontend
│ ├── components/ # UI components (PascalCase)
│ │ └── ui/ # Reusable primitives
│ ├── hooks/ # Custom React hooks
│ ├── services/ # Supabase client
│ ├── types/ # TypeScript interfaces
│ └── styles/
│ └── globals.css # Tailwind + dark theme tokens
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── lib.rs # Tray icon, global shortcut, window management
│ │ └── main.rs # Entry point
│ ├── capabilities/
│ │ └── default.json # Tauri permissions
│ ├── tauri.conf.json # Window + app configuration
│ └── Cargo.toml # Rust dependencies
├── db/
│ └── 001-create-prompts.sql # Database schema
├── docs/
│ ├── adr/ # Architecture Decision Records
│ ├── reference/ # Technical reference docs
│ └── how-to/ # Task-oriented guides
└── tests/ # Test files
npm run tauri dev # Launch dev mode (frontend + Tauri)
npm run dev # Frontend only (Vite dev server on port 1420)
npm run build # Production build (frontend)
npm run tauri build # Build distributable macOS app
npm run lint # ESLint
npm run format # PrettierThe app has two layers with a clear separation of concerns:
Rust backend (src-tauri/src/lib.rs) handles system-level operations only:
- Hides app from dock (
ActivationPolicy::Accessory) - Registers
Cmd+Shift+Pglobal shortcut to toggle the overlay window - Creates menu bar tray icon with Add Prompt, Manage Prompts, Quit actions
- Manages window visibility (show/hide/center/focus)
React frontend (src/) handles all UI and data operations:
- Renders the Spotlight-like overlay
- Connects to Supabase for prompt CRUD
- Copies prompts to clipboard via Tauri plugin
See docs/reference/architecture.md for detailed technical reference.
| Document | Purpose |
|---|---|
| PRD.md | Product requirements and non-goals |
| docs/reference/ | Technical reference docs |
| docs/adr/ | Architecture Decision Records |
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Push and open a Pull Request
See the documentation table above for architecture context before diving in.
This project is licensed under the GNU General Public License v3.0.