Skip to content

Import clipboard history from Paste.app #99

Description

@MaximeFontaine68

Summary

Feature request: let people switching from Paste bring their existing clipboard history (and pinboards) into Pesty.

Pesty is the closest open-source match to Paste's strip UI, but there is currently no way to import history. Paste also has no official export, so the only path today is to keep both apps around or start from an empty store.

Why

Switching currently means losing years of local clipboard history. A one-shot, local-only importer would make Pesty a realistic replacement for Paste users.

Where Paste stores data (local, user-owned)

On Mac, current Paste versions keep a Core Data SQLite database at:

~/Library/Containers/com.wiheads.paste/Data/Library/Application Support/Paste/db.sqlite

Relevant tables from a current install:

  • ZITEMENTITY — clip metadata (title, timestamps, type, source app, pinboard membership)
  • ZITEMDATAENTITY.ZRAWPASTEBOARDITEMS — serialized NSPasteboard payload
  • ZLISTENTITY — lists / pinboards (Clipboard plus user pinboards)
  • ZAPPLICATIONENTITY — source app name / bundle id

An older Paste.db / ZSNIPPET layout may still exist in backups; supporting both would be nice but current db.sqlite is the important one.

The large index.sqlite next to it is a search/OCR index and should not be required for import.

Suggested behaviour

  • Settings action: Import from Paste…
  • Auto-detect the container path above, with a file picker fallback (user may point at a copied db.sqlite)
  • Map:
    • Paste history → Pesty history
    • Paste pinboards → Pesty pinboards (same names/colors if available)
    • text / rich text / links / images / files / colors when the pasteboard blob can be decoded
  • Preserve original copy timestamps
  • Deduplicate against clips already in Pesty
  • Skip items Paste/Pesty would treat as concealed (password-manager types)
  • Warn if imported count exceeds the current history limit (default 500; time-based mode also has a 5,000 safety cap) and offer to raise it for this import
  • Read-only against Paste's files; never write back to Paste
  • Entirely local — no network

Images would need to be extracted from the pasteboard blob and written into Pesty's images/ directory, then referenced from store.json as today.

Out of scope (for a first PR)

  • iCloud / CloudKit history from other devices that is not already on this Mac
  • Import from Maccy / Alfred / Clipy (can be follow-ups)
  • Live two-way sync with Paste

Notes

Pesty is independent of Paste and should stay that way. This would only read the user's own local files so they can take their data with them.

Happy to open a PR if this direction sounds good. Wanted to check scope first (Paste-only vs a generic importer, pinboards yes/no, history-limit handling).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions