Skip to content

Catafal/prompt-spotlight

Repository files navigation

Prompt Spotlight

A macOS menu bar app for storing, searching, and quick-copying prompts via a Spotlight-like overlay.

What It Does

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.

Download

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 .dmg and dragging to Applications, run:

xattr -cr "/Applications/Prompt Spotlight.app"

Then open the app normally.

Setup

1. Create a Supabase project

  1. Go to supabase.com and create a free account
  2. Click New Project — pick a name and region, set a database password
  3. Once the project is ready, go to SQL Editor (left sidebar)
  4. Paste the contents of db/001-create-prompts.sql and click Run
  5. Go to Settings → API (left sidebar) and copy:
    • Project URL (e.g. https://xxxx.supabase.co)
    • anon public key (under "Project API keys")

2. Configure the app

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.

3. Verify it works

  1. App icon appears in the macOS menu bar (not the dock)
  2. Press Cmd+Shift+P — overlay window appears centered on screen
  3. Press Cmd+Shift+P again — overlay hides
  4. Click tray icon → Add Prompt — add your first prompt
  5. Press Cmd+Shift+P, type to search, press Enter to copy to clipboard

Development

Prerequisites

Install & Run

git clone https://github.com/Catafal/prompt-spotlight.git
cd prompt-spotlight
npm install
npm run tauri dev

Verify It Works

  1. App icon appears in the macOS menu bar (not the dock)
  2. Press Cmd+Shift+P — overlay window appears centered on screen
  3. Press Cmd+Shift+P again — overlay hides
  4. Click tray icon — menu shows: Add Prompt, Manage Prompts, Quit

Project Structure

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

Commands

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          # Prettier

Architecture

The 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+P global 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.

Documentation

Document Purpose
PRD.md Product requirements and non-goals
docs/reference/ Technical reference docs
docs/adr/ Architecture Decision Records

Contributing

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes
  4. Push and open a Pull Request

See the documentation table above for architecture context before diving in.

License

This project is licensed under the GNU General Public License v3.0.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors