# maCopy roadmap Living list of shipping ideas. Checked items are done (or landed in the current branch). ## Done recently - [x] Global hotkey `` Ctrl+` `` (avoids macOS Cmd+` window-cycle); configurable - [x] Performance: pasteboard changeCount, list previews, no full-image list payloads - [x] Image thumbnails in the picker (+ backfill) - [x] Reliable left-click paste (mousedown + delayed blur hide) - [x] Image paste via real clipboard image write - [x] **Sensitive redaction** — save passwords / cards / banking / secrets fully, show `••••` in the list; paste still uses the real value - [x] **Paste transforms** — right-click → Transform (trim, case, collapse, JSON pretty, single line) - [x] **Paste plain** — ⌥/Alt+click or “Paste plain” (strip HTML-ish formatting / entities) - [x] Launch at login wired to macOS Login Items - [x] Visible `npm run test:visual` walkthrough - [x] **Copy only** — right-click → Copy puts content on the clipboard without auto-paste/hide - [x] **Color swatches** — hex/rgb/hsl entries show a preview chip (Ditto/Pastebot-style) - [x] **SQLite speed pragmas** — WAL + synchronous=NORMAL so reads don't block on writer fsyncs - [x] **Memoized list rows** — selection/focus changes no longer re-render every row's preview ## Next up (high value) - [ ] **Exclude apps** — don’t capture from 1Password / banking / Terminal patterns (macOS frontmost app filter) - [ ] **Signed + notarized release** + install to `/Applications` (see [docs/SHARING.md](docs/SHARING.md)) - [ ] **Accessibility first-run guide** - [ ] **CI** on `npm run check` - [ ] **Default transform preference** in Settings - [ ] **Snippets / favorites** — named, always-available text (separate from history) - [ ] **Ignore patterns** — regex list that auto-drops or auto-redacts matches - [ ] **Auto-delete window for sensitive** — purge redacted items after N minutes (optional) - [ ] **Virtualized list** — if history UI grows past a few hundred rows ## Later / brainstorm ### Privacy & trust - Encrypt DB at rest (macOS Keychain-wrapped key) - Per-entry “never show again” / blacklist hash - Paste confirmation for sensitive items (`Confirm paste?`) - Clear sensitive on lock / sleep - Don’t sync sensitive items if/when sync exists ### Capture quality - HTML + plain dual capture with “prefer plain” default - File lists / Finder copy - Link enrichment (title/favicon for URLs) - OCR on image entries → searchable text (private, on-device) ### Paste power - Paste stack / sequential paste (next item on each paste) - Paste as keystrokes (for fields that block paste) - Numbered paste queue from multi-select order - Date/time templates, UUID, lorem in snippets - Shell-escape / URL-encode / base64 transforms - “Edit before paste” quick editor sheet ### UX polish - Compact vs comfortable density - Pin board / tabs (All · Pins · Images · Sensitive) - Drag item onto another app - Keyboard: Tab into transforms, `/` transform palette - Menu bar: last N items quick-paste submenu - Sound / haptic optional on paste ### Sync & backup - Optional Tailscale / local LAN sync between machines - Export/import encrypted archive - Time-machine-friendly atomic DB ### Power-user system - Alfred / Raycast callback URL or CLI (`macopy paste 3 --plain`) - Shortcuts / URL scheme - AppleScript / JXA bridge ### Hardening - Sandbox-friendly Accessibility prompt flow + in-app guide - Crash-safe write-ahead DB - Telemetry: none (keep it that way); optional local diagnostics export ## Non-goals (for now) - Cloud sync through a third-party host - Browser extension dependency - AI “summarize my clipboard” calling external APIs by default