Skip to main content

swipic demo

swipic

Stop hoarding photos you'll never look at.

PyPI macOS Python 3.10+ MIT License GitHub stars


  • 📸 Tinder-style swiping for your macOS Photos.app library
  • ⌨️ Keyboard-driven — → keep, ← reject, U undo
  • 📅 Filter by date — year, month, or specific day
  • 🗑️ Safe deletes — one confirmation for the whole batch, 30-day recovery
  • 🍎 Native macOS — reads Photos.app directly, no export needed

Install

pipx install swipic

Or with uv:

uvx swipic

Usage

swipic              # all photos
swipic 2023         # only 2023
swipic 2023-06      # only June 2023
swipic 2023-06-15   # only that day
⌨️ Keyboard controls
Key Action
→ Keep photo
← Reject photo
U Undo last decision
Q / Esc End session

How it works

  1. swipic reads your Photos.app library directly
  2. Photos appear one by one — press → to keep or ← to reject
  3. When you're done, macOS asks for confirmation once for all rejected photos
  4. Confirmed deletions go to Recently Deleted (recoverable for 30 days)

Setup

swipic needs access to your Photos library. Grant it in:

System Settings → Privacy & Security → Photos → set Terminal (or iTerm2) to Full Access

If Terminal doesn't appear in the list, click + and add it from /Applications/Utilities/Terminal.app.

License

MIT

Metadata

Release files for swipic 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for swipic 0.1.1
File Size Uploaded
swipic-0.1.1.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for swipic 0.1.1
File Interpreter ABI Platform
swipic-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.3 MB

Release files / swipic-0.1.1.tar.gz

Download URL swipic-0.1.1.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
c57d10fc1f0345c2cc144fff044ac50ec931011d6530c073cae0b0bf55f6f169
BLAKE2b-256 checksum
How to use checksums
6b7e67da0c8f144575a102a4bdc0947ad7a80df0083705d5aa429552ca9c80ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 29, 2026.

Transparency log

Release files / swipic-0.1.1-py3-none-any.whl

Download URL swipic-0.1.1-py3-none-any.whl
Size 10.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82a2c13be0b9bc5e1594685e828868150473d7f8703a8867eeef500cc9ce0c92
BLAKE2b-256 checksum
How to use checksums
d93afeeefa1a5dbe8d7a66c4e65721ef893638a7670dd78b04f21e1759fe91de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page