A Spotlight-style desktop app for instantly searching, selecting, and pasting prompts into any application.
Want to try it out? Download pre-built installers from the Releases page.
Power users accumulate dozens or hundreds of prompts for coding, writing, and analysis. These live scattered across notes apps, text files, and bookmarks. When you need a prompt, you leave your current context, hunt through files, copy, return, and paste. This friction kills flow.
PromptLight removes that friction with a keystroke-summoned launcher that finds and pastes prompts without leaving your current app.
- Global Hotkey - Summon with
Cmd+/from anywhere - Instant Search - Type to filter prompts in real-time
- Keyboard Navigation - Arrow keys to navigate, Enter to paste
- Folders - Organize prompts by project or category
- Variables - Use
{{placeholders}}for dynamic content - Cloud Sync - Optional sync across machines (requires Firebase setup)
- Node.js 18+
- Rust (via rustup)
- macOS (currently macOS only, though Tauri supports cross-platform builds)
git clone https://github.com/bladnman/promptlight.git
cd promptlight
npm installnpm run devThe app will launch in development mode with hot reload.
Alternatively, use the shell script directly (which cleans up stale processes first):
./scripts/dev.shTo build a release version and install to /Applications:
./scripts/install.shNote: Cloud sync is entirely optional. If you just want local prompts, skip this section. Everything works without Firebase.
To sync prompts across multiple machines, you'll need to set up Google OAuth and Firebase. See the Firebase Setup Guide for detailed instructions.
src/ # React frontend
components/ # UI components (launcher, editor)
stores/ # Zustand state management
hooks/ # React hooks
config/ # Constants and configuration
theme/ # Design tokens
src-tauri/ # Rust backend
src/
os/ # Platform-specific OS interactions
data/ # Data persistence (JSON files)
auth/ # Google OAuth + Firebase auth
scripts/ # Shell scripts for dev/build
docs/ # Documentation
| Command | Description |
|---|---|
npm run dev |
Start dev server with hot reload (full Tauri app) |
npm run dev:vite |
Start Vite only (frontend, no Tauri) |
npm run build |
TypeScript check + Vite build (frontend only) |
npm run install:local |
Build and install to /Applications |
npm run test |
Run all tests |
npm run test:watch |
Run tests in watch mode |
./scripts/dev.sh |
Clean start dev server (kills existing processes) |
./scripts/install.sh |
Build and install to /Applications |
Copy .env.example to .env.local and configure as needed:
cp .env.example .env.localThe VITE_PORT variable lets you run multiple development instances on different ports (useful for parallel feature development).
# Run all tests
npm run test
# Run in watch mode
npm run test:watch
# Run a specific test file
npx vitest run src/__tests__/stores/editorStore.test.ts
# Rust tests
cd src-tauri && cargo test- Fork the repository
- Create a feature branch
- Make your changes
- Ensure tests pass:
npm run test - Ensure build succeeds:
npm run build - Submit a pull request
MIT