Izzy Music Player follows a modular, feature-based organization with clear separation between frontend Swift code and backend Python services.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ShubhamPP04/Izzy/llms.txt
Use this file to discover all available pages before exploring further.
Root directory structure
Managers directory
Managers contain the core business logic for different features:Key managers
PlaybackManager.swift:309
The largest and most complex manager, handling:- AVPlayer integration for audio playback
- Queue management (play queue, up next, shuffle)
- Playback controls (play, pause, skip, seek)
- Stream URL fetching from Python service
- Playback state persistence
- Auto-play and crossfade features
MusicSearchManager.swift:309
Handles music search functionality:- Debounced search queries
- Result filtering and sorting
- Search history
- Integration with PythonServiceManager
MenuBarManager.swift:309
Manages the menu bar player interface:- Status item in macOS menu bar
- Now playing display
- Playback controls in menu bar
- Click actions and popover
Services directory
Services provide infrastructure and external API integrations:Key services
PythonServiceManager.swift:81
Manages the Python backend process:- Process lifecycle (start, stop, restart)
- JSON request/response handling
- Pipe-based IPC communication
- Timeout and error handling
- Automatic retry logic
- Inactivity-based suspension
- Convenience methods for all music operations
DownloadManager.swift:309
Handles music downloads:- Stream URL extraction
- File download and storage
- Progress tracking
- Download queue management
Models directory
Data structures and type definitions:MusicModels.swift:309
Defines all core data types: Music Sources:MusicSourceenum (YouTube Music, JioSaavn, Tidal)
SearchResult- Individual search resultSearchResultType- Type of result (song, album, artist, playlist)MusicSearchResults- Grouped search resultsAISearchResponse- AI search with insights
Track- Playback track modelPlaybackState- Current playback stateRepeatMode- Repeat settingsStreamInfo- Stream URL information
FavoriteSong- Favorite track with metadataPlaybackData- Persistence model
HomeSection- Home feed sectionsChartsData- Music chartsMoodCategory- Mood/genre categories
Views directory
SwiftUI views organized by feature:View organization
Views are categorized by function: Main Navigation:- HomeView - Primary interface with discovery feed
- SearchResultsView - Search results with filtering
- MusicSearchView - Search bar and interface
- PlaybackControlsView - Player controls and progress
- QueueView - Current play queue
- UpNextView - Up next queue visualization
- FavoritesView - Liked songs collection
- PlaylistView - Custom playlists
- RecentlyPlayedView - Listen history
- MenuBarView - Menu bar player popover
- MiniPlayerView - Floating mini player
- AISearchView - AI-powered search
Supporting files
Core utilities and coordinators:WindowManager.swift:309
Manages floating panel windows:- Window creation and configuration
- Show/hide animations
- Positioning and sizing
- Focus management
GlobalHotkeyManager.swift:309
Global keyboard shortcuts:- Hotkey registration
- Default: Option + Space
- Customizable shortcuts
- Carbon events integration
FloatingPanel.swift:309
Custom NSPanel subclass:- Floating window behavior
- Always-on-top positioning
- Click-through and focus handling
SearchBar.swift:309
Reusable search bar component:- Text input with placeholder
- Search icon and clear button
- Focus state management
SearchState.swift:309
Global search state management:- Search query tracking
- Results caching
- Search history
- Integration with managers
Python backend
ytmusic_service.py:1
Python backend service (177KB) providing: Music Service Integrations:- YouTube Music API (ytmusicapi)
- JioSaavn integration (saavn.dev)
- Tidal integration
- Gemini AI search
- Music search across services
- Stream URL extraction (yt-dlp)
- Album/playlist/artist browsing
- Home feed and charts
- Mood-based playlists
- AI-powered search
- Async request handling
- JSON stdin/stdout communication
- Service abstraction layer
- Error handling and logging
Assets
Configuration files
Info.plist
App metadata and configuration:- Bundle identifier
- Version information
- Required device capabilities
- URL schemes
Izzy.entitlements
Sandbox permissions:- Network access (outgoing)
- Audio input/output
- File system access
- User-selected files
File size distribution
Largest files by size:- ytmusic_service.py - 177KB (Python backend)
- HomeView.swift - 84KB
- PlaybackControlsView.swift - 61KB
- PlaybackManager.swift - 44KB
- SearchResultsView.swift - 43KB
- PlaylistView.swift - 36KB
- SettingsView.swift - 31KB
- PythonServiceManager.swift - 29KB
Dependencies location
Python dependencies are specified in~/workspace/source/requirements.txt and installed in:
- Bundled:
Resources/music_env/(created by build script) - System: System Python with pip packages