A modern, local music player with a Spotify-inspired experience
Features β’ Installation β’ Development β’ Plugins β’ License
Clean, modern interface for browsing your music library
Real-time synced lyrics with smooth scrolling
Immersive full-screen player with album art and lyrics
Beautiful album pages with track listings
Extensible plugin system for custom functionality
- Local Library Management β Scan and organize your local music collection with automatic metadata extraction
- Album Art Display β Beautiful album artwork fetched from your music files
- Smart Playlists β Create, edit, and manage custom playlists
- Queue Management β Full queue control with drag-and-drop reordering
- Synced Lyrics β Real-time synchronized lyrics from LRCLIB and Musixmatch
- Word-by-Word Sync β Premium karaoke-style word highlighting
- Lyrics Panel β Dedicated panel with smooth auto-scrolling
- Local Caching β LRC files saved locally for offline access
- Theme Engine β Fully customizable color schemes with live preview
- Dark/Light Mode β System-aware theme switching
- Accent Colors β Choose your preferred accent color palette
- Mini Player β Compact mode for minimal desktop footprint
- Extensible Architecture β JavaScript and WebAssembly plugin support
- Permission System β Granular permissions for plugin security
- Event API β React to player events (track changes, play/pause, etc.)
- UI Injection β Plugins can add custom UI elements
- Full-Screen Mode β Immersive full-screen player with lyrics
- Keyboard Shortcuts β Quick controls for power users
- Context Menus β Right-click actions for tracks, albums, and artists
- Cross-Platform β Native performance on Windows, macOS, and Linux
Download the latest release for your platform from the Releases page.
| Platform | Download |
|---|---|
| Windows | Audion_1.0.0_x64-setup.exe |
# Clone the repository
git clone https://github.com/dupitydumb/Audion.git
cd audion
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Build for production
npm run tauri build| Layer | Technology |
|---|---|
| Framework | Tauri 2.0 |
| Frontend | SvelteKit + TypeScript |
| Backend | Rust |
| Database | SQLite (via rusqlite) |
| Styling | CSS Variables + Custom Theme Engine |
audion/
βββ src/ # Frontend (SvelteKit)
β βββ lib/
β β βββ components/ # UI components
β β βββ stores/ # Svelte stores (state management)
β β βββ plugins/ # Plugin runtime & API
β β βββ lyrics/ # Lyrics fetching (LRCLIB, Musixmatch)
β β βββ api/ # Tauri API wrappers
β βββ routes/ # SvelteKit routes
βββ src-tauri/ # Backend (Rust)
β βββ src/
β β βββ commands/ # Tauri commands
β β βββ db/ # SQLite database operations
β β βββ scanner/ # Music file scanner
β βββ tauri.conf.json # Tauri configuration
βββ plugin-examples/ # Example plugins
βββ static/ # Static assets
npm run dev # Start SvelteKit dev server
npm run build # Build frontend for production
npm run tauri dev # Run full Tauri app in development
npm run tauri build # Build production binaries
npm run check # TypeScript type checkingAudion supports a flexible plugin system that allows extending functionality.
| Permission | Description |
|---|---|
player:read |
Access current track, playback state |
player:control |
Play, pause, skip, seek |
storage:local |
Persist plugin data locally |
ui:inject |
Add custom UI elements |
system:notify |
Show system notifications |
(function() {
const MyPlugin = {
init(api) {
this.api = api;
// Listen for track changes
api.on('trackChange', (track) => {
console.log('Now playing:', track.title);
});
},
start() {
// Plugin enabled
},
stop() {
// Plugin disabled
}
};
window.MyPlugin = MyPlugin;
window.AudionPlugin = MyPlugin;
})();See the plugin-examples folder for more examples.
Audion supports all audio formats that your system can play, including:
- Lossless: FLAC, WAV, ALAC, AIFF
- Lossy: MP3, AAC, OGG, Opus, M4A
- Metadata: ID3v2, Vorbis Comments, APE Tags
This project is licensed under the MIT License. See the LICENSE file for details.