Please report privately rather than opening an issue: use GitHub's private advisory form, or email the address on the maintainer's GitHub profile.
Say what you found, how to reproduce it, and what an attacker gets. You will get a reply within a week.
Everything is in ~/Library/Application Support/Copas/:
clips.sqlite |
clip text, previews, recognised text, timestamps |
blobs/ |
images, and text over 8 KB, named by SHA-256 |
thumbs/ |
card-sized copies of images |
Unencrypted, and readable by anything running as you. That is true of every clipboard manager on macOS, and it is worth being explicit about: if you copy a password, it is on disk until it is trimmed or deleted.
Copas is not sandboxed, because it synthesises a paste into whichever app was frontmost and that needs Accessibility.
- No account, no sync, no analytics, no crash reporting.
- The only network request is to the update feed at
sigitkusuma.github.io/copas/appcast.xml. Updates are signed with EdDSA and Sparkle refuses anything that does not verify. - Text recognition runs locally through Vision. No image and no recognised text leaves the machine.
Anything marked with the nspasteboard.org conventions
— org.nspasteboard.ConcealedType, TransientType, AutoGeneratedType — which
is what password managers set on what they copy. The check happens before the
contents are read, so a concealed value is never held in memory, never hashed,
and never written to disk.
Apps that do not follow the convention can be excluded by hand in Settings → History.
Both are asked for only when first needed, never at launch:
- Accessibility — to press ⌘V for you. Denying it means clips still reach the clipboard and you paste by hand.
- Screen Recording — for capture to text, on first use of ⇧⌘2. Denying it disables only that feature.