Files
prompt/README.md
T
TZGyn c7b4ed32f2 Make the row checkbox select items instead of ticking them off
The checkbox was marking items done, but the intent was to gather items
and act on them: tick several, then right-click to copy, copy as a list,
move, merge or delete them all at once. Done is still available from the
same menu, it is just no longer what the checkbox does.
2026-10-09 17:54:54 +08:00

4.3 KiB
Raw Blame History

Prompt

A native macOS app for keeping prompts and photos, in the spirit of Copper by shadcn: a floating panel that sits next to your work. Click anything to copy it back to your clipboard.

  • Checkbox to select — every item has a checkbox; tick several and act on them at once (copy, delete, move, merge). Clicking the row itself still copies that item.
  • Click to copy — text notes go back as text, photos go back as images.
  • Capture from anywhere — select text in any app and tap Left Shift twice.
  • Photos — paste (Cmd+V), drag & drop, or add via the photo button.
  • Workspaces — type # Name in the composer, or use "New Workspace" in the Cmd+K switcher (which opens a name modal); Cmd+K switches, and the up/down arrows in the switcher reorder them. (The code and the saved JSON still call these sections so existing data keeps working.)
  • Copy as List / Copy as Lines — select with the checkboxes (or Cmd+click, or Shift+click for a range), then copy the selection as a numbered list or as plain newline-separated text, from the selection bar, the right-click menu, or Shift+Cmd+C / Option+Cmd+C. The same menu deletes, moves or merges the selection.
  • Merge Notes, Mark as Done, Edit, Move To — right-click any item.
  • Search — Cmd+F searches across all sections.
  • Sync (optional) — generate an 8-digit code (1234-5678) on one Mac and enter it on the other; no account, no login. The code is the only secret.
  • Local & private — everything lives in ~/Library/Application Support/Prompt/ (store.json + Images/). No account, no sync, no telemetry.

Shortcuts

Action Shortcut
Capture current selection Left Shift ×2 (or Cmd+Shift+C)
Show/hide panel Right Shift ×2 (or Cmd+Shift+Space)
Switch/create workspace Cmd+K
Search Cmd+F
Focus composer Cmd+N
Sync settings Cmd+,
Copy selection as numbered list Shift+Cmd+C
Copy selection as plain lines Option+Cmd+C
Clear selection Esc
Close panel Esc

Double-Shift gestures require Accessibility access (Prompt reads the selection by simulating Cmd+C, then restores your clipboard untouched). Until it is granted, use Cmd+Shift+Space and Cmd+Shift+C, or click the menu bar icon — and launching the app again always brings the panel back. Bare keys like Space and Cmd+C are deliberately not bound inside the panel so they never conflict with typing in the composer.

Install

brew tap TZGyn/tap https://gitea.tzgyn.dev/TZGyn/homebrew-tap.git
brew trust TZGyn/tap
brew install --cask prompt

Sync server

Sync is optional and needs the small Go backend in Server/. There is no authentication: a sync group is identified by an 8-digit code, and whoever has the code can read and write the group.

createdb prompt_sync
cd Server
PROMPT_SYNC_DATABASE_URL="postgres://localhost:5432/prompt_sync?sslmode=disable" \
  go run .          # listens on :8080

Or build the Docker image (docker build -t prompt-sync Server/) and point it at your own Postgres — see Server/README.md for that and for deploying to a host.

Then in the panel: click the sync icon (or Cmd+,), confirm the server URL, and either Generate Code on the first Mac or paste the code into Join on the other.

Notes:

  • Sync defaults to https://prompt.tzgyn.dev; change it in the sync panel to point at your own server. Both Macs must be able to reach it — a LAN address or a Tailscale hostname works, and localhost only works if the server runs on the same Mac. See Server/README.md to deploy it.
  • Joining a group that already has notes replaces what's on that Mac.
  • The app polls every 5 seconds (a tiny version check) and pushes 1.5s after a change; last write wins, and changes that came from the server are not echoed back.
  • Verify sync from a terminal with Prompt --sync-check.

Build from source

swift build                          # debug build
swift run Prompt                     # dev run (menu bar icon appears)
./build-app.sh 0.1.0                 # release build + Prompt.app + icon + codesign
./release.sh 0.1.0                   # build + dist/Prompt.zip (+ notarization when configured)

Requires macOS 14+.