Initial commit: a Copper-style panel for prompts and photos

Keeps text prompts and photos in a floating always-on-top panel and
copies them back to the clipboard on click. Double-Shift captures the
selection from any app; sections, search, copy-as-list, merge, and
local JSON persistence mirror shadcn's Copper workflow.

💘 Generated with Crush

Assisted-by: Crush:kimi-k3
This commit is contained in:
2026-10-07 20:54:49 +08:00
commit c074be3378
14 changed files with 1675 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
# Prompt
A native macOS app for keeping prompts and photos, in the spirit of
[Copper](https://shadcn.com/copper) by shadcn: a floating panel that sits next
to your work. Click anything to copy it back to your clipboard.
- **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.
- **Sections** — type `# Name` in the composer; Cmd+K switches sections.
- **Copy as List** — Cmd+click to multi-select, right-click → Copy as List
(or Shift+Cmd+C) for a numbered list ready to paste into a chat.
- **Merge Notes, Mark as Done, Edit, Move To** — right-click any item.
- **Search** — Cmd+F searches across all sections.
- **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 section | Cmd+K |
| Search | Cmd+F |
| Focus composer | Cmd+N |
| Copy selection as numbered list | Shift+Cmd+C |
| Close panel | Esc |
Double-Shift gestures require **Accessibility access** (Prompt reads the
selection by simulating Cmd+C, then restores your clipboard untouched). The
Cmd+Shift fallbacks work without it. Bare keys like Space and Cmd+C are
deliberately not bound inside the panel so they never conflict with typing in
the composer.
## Install
```bash
brew tap TZGyn/tap https://gitea.tzgyn.dev/TZGyn/homebrew-tap.git
brew trust TZGyn/tap
brew install --cask prompt
```
## Build from source
```bash
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+.