Petrichor An offline music player for macOS Summary ✨ Features Everything you'd expect from an offline music player! Map your music folders and browse your library in an organized view. Create playlists and manage the play queue interactively. Browse music using folder view when needed. Pin anything (almost!) to the sidebar for quick access to your favorite music. Navigate easily: right-click a track to go to its album, artist, year, etc. Native macOS integration with menubar and dock playback controls, plus dark mode support. Search quickly through large libraries containing thousands of songs. 💡 Tip: Petrichor relies heavily on tracks having good metadata for all its features to work well. ⌛ Planned features Smart playlists with user-configurable conditional filters AirPlay 2 casting support Miniplayer and full-screen modes Automatic in-app updates Online album & artist information fetching ... and much more! Requirements macOS 14 or later ⚙️ Installation Go to Releases and download the latest .dmg . . Open the .dmg and drag the app icon into the Applications folder. and drag the app icon into the Applications folder. In Applications, right-click Petrichor > Open. P.S. I plan publish it on Homebrew soon. 📷 Screenshots 🏗️ Development Motivation I have a large collection of music files that I’ve gathered over the years, and I missed having a good offline music player on macOS. I used Swinsian (great app, by the way!), but it hasn't been updated in years. I also missed features commonly found in streaming apps; so I built Petrichor to scratch that itch and learn Swift and macOS app development along the way! Implementation Overview Built entirely with Swift and SwiftUI for the best macOS integration. Once folders are added, the app scans them and populates a SQLite database using GRDB. Petrichor does not alter your music files, it only reads from the directories you add. alter your music files, it only reads from the directories you add. Tracks searching is powered...
First seen: 2025-07-10 00:37
Last seen: 2025-07-10 13:42