| Feature | KORAI v1.4 | Spotify | Apple Music | VLC |
|---|---|---|---|---|
| Privacy | ||||
| Open source (auditable code) | ✅ | ❌ | ❌ | ✅ |
| Zero telemetry / tracking | ✅ | ❌ | ❌ | ✅ |
| No account required | ✅ | ❌ | ❌ | ✅ |
| Local-first (no cloud) | ✅ | ❌ | ❌ | ✅ |
| Free forever | ✅ | ❌ | ❌ | ✅ |
| Audio Quality | ||||
| Graphic EQ | ✅ (5 bands) | ❌ | ❌ | ✅ (10 bands) |
| Real-time spectrum analyzer | ✅ | ❌ | ❌ | ❌ |
| Live waveform on timeline | ✅ | ❌ | ❌ | ❌ |
| Tempo control (0.5x–2.0x) | ✅ | ❌ | ❌ | ✅ |
| Gapless + Crossfade | ✅ | ✅ | ✅ | ❌ |
| Intelligence | ||||
| Local smart recommendations | ✅ | ❌ | ❌ | ❌ |
| BPM detection | ✅ (3 algorithms) | ❌ | ❌ | ❌ |
| Energy + Genre detection | ✅ | ❌ | ❌ | ❌ |
| Extensibility | ||||
| Plugin architecture | ✅ | ❌ | ❌ | ✅ |
| Plugin Marketplace | 🚧 v1.5 | ❌ | ❌ | ❌ |
| Audio effects framework | 🚧 v1.5 | ❌ | ❌ | ❌ |
| Visual Experience | ||||
| 3D cover art + hover | ✅ | ❌ | ❌ | ❌ |
| Marquee scrolling text | ✅ | ❌ | ❌ | ❌ |
| Artist section with cards | ✅ | ✅ | ✅ | ❌ |
| Performance mode | ✅ | ❌ | ❌ | ❌ |
| Library Control | ||||
| Built-in tag editor | ✅ | ❌ | ❌ | ❌ |
| M3U/PLS import/export | ✅ | ❌ | ❌ | ✅ |
| CUE sheet support | ✅ | ❌ | ❌ | ✅ |
| CSV export (analytics) | ✅ | ❌ | ❌ | ❌ |
| Usability | ||||
| Persian/Farsi RTL | ✅ | ❌ | ❌ | ❌ |
| Mini-player + system tray | ✅ | ✅ | ❌ | ✅ |
| Media keys support | ✅ | ✅ | ✅ | ✅ |
KORAI has no "premium tier." Everything — EQ, visualizers, tag editor, artist view — is free forever.
KORAI is 100% open source. Every line of code is on GitHub for anyone to audit.
╔═══════════════════════════════════════════════════════════════════════════════╗
║ ║
║ Proprietary players (Spotify, Apple Music): ║
║ → You cannot verify what data they collect. Their code is closed source. ║
║ → Your listening habits become their product. ║
║ ║
║ Open source players (KORAI, VLC): ║
║ → The code is public. You can check it yourself. No hidden telemetry. ║
║ → Your data never leaves your computer. ║
║ ║
║ KORAI takes it further: ║
║ → Not just open source, but beautifully designed open source. ║
║ → Not just local, but intelligent local recommendations. ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════╝
For privacy-focused users who refuse to compromise on design or intelligence, open source offers verifiable security.
╔═══════════════════════════════════════════════════════════════════════════════╗
║ ║
║ KORAI: Local JSON storage → Your hard drive only ║
║ Spotify: Cloud database → Their servers (and third-parties) ║
║ Apple: Cloud + analytics → "We care about privacy" (trust us) ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════╝
No telemetry. No analytics. No "improvement programs." No trust required — verify it yourself.
Unlike cloud-based recommendation engines that require your listening history to be uploaded, KORAI's similarity engine runs entirely locally.
| Metric | Weight | Description |
|---|---|---|
| Genre matching | 35 pts | Same genre family = highest score |
| BPM similarity | 30 pts | Tempo matching within estimated ±5 BPM |
| Energy (RMS) | 20 pts | Perceived loudness similarity |
| Loudness | 10 pts | Volume level matching |
| Discovery bonus | 8 pts | Prioritizes less-played tracks |
Total possible score: 98 points — no cloud needed, no listening history sent anywhere.
Real DSP features accessible to all users, not hidden behind "Pro" subscriptions:
| Feature | Specification |
|---|---|
| Equalizer | 5 bands: 60Hz, 230Hz, 910Hz, 4kHz, 14kHz |
| Spectrum analyzer | Real-time frequency visualization |
| Tempo shift | 0.5x to 2.0x with pitch preservation |
| Crossfade | 0–12 seconds, configurable |
| Gapless playback | For albums that flow track to track |
KORAI now features a complete plugin architecture — extend functionality without modifying core code.
╔═══════════════════════════════════════════════════════════════════════════════╗
║ ║
║ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ║
║ │ Audio FX │ │ Visualizer │ │ Lyrics │ │ Scrobbler │ ║
║ │ Plugin │ │ Plugin │ │ Plugin │ │ Plugin │ ║
║ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ ║
║ │ │ │ │ ║
║ ▼ ▼ ▼ ▼ ║
║ ┌─────────────────────────────────────────────────────────────────────┐ ║
║ │ Plugin Host │ ║
║ │ • Isolated worker threads • Granular permissions │ ║
║ │ • VM sandbox • Auto-disable on crash │ ║
║ │ • Performance monitoring • Hot reload development │ ║
║ └─────────────────────────────────────────────────────────────────────┘ ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════╝
| Plugin Feature | Status |
|---|---|
| Isolated execution (VM sandbox) | ✅ Available now |
| Permissions system | ✅ Available now |
| Plugin CLI tool | ✅ Available now |
| Plugin Marketplace UI | 🚧 Coming in v1.5 |
| Audio effects UI | 🚧 Coming in v1.5 |
Built-in plugin: korai/change-logs@1.0.0 — Display application change history
Plugin permissions:
| Permission | What it allows | User Approval |
|---|---|---|
filesystem |
Read/write user-selected directories | ✅ Always |
network |
Outbound network requests | ✅ Always |
audio |
Register audio effects and process audio | ✅ Once |
preferences |
Read/write plugin settings | ✅ Once |
notifications |
Send system notifications | ✅ Once |
clipboard |
Read/write clipboard | ✅ Always |
For developers:
# Create a plugin in 30 seconds
npm install -g korai-plugin-cli
korai-plugin create my-plugin
korai-plugin dev my-plugin
korai-plugin pack my-pluginKORAI doesn't just sound good — it looks like nothing else on your desktop.
| Visual Feature | What it does |
|---|---|
| 3D cover art | Hover any album cover — it scales, glows, and reacts to your cursor |
| Live waveform timeline | The progress bar pulses and moves with your music's frequency |
| Marquee scrolling | Long song titles and artist names scroll elegantly when they don't fit |
| Artist cards | Browse your library by artist with album art, track counts, and instant play |
| Spectrum analyzer | Live frequency visualization in the stats panel |
No other open source player looks like this. No other player combines privacy with this level of visual polish.
Wrong metadata? Fix it. Need to export your data? Do it. Want to see your listening patterns? Analyze it.
| Action | KORAI | Spotify / Apple Music |
|---|---|---|
| Edit song title | ✅ | ❌ (read-only) |
| Fix artist name | ✅ | ❌ (read-only) |
| Add custom lyrics | ✅ | ❌ |
| Export playlist (M3U/PLS) | ✅ | ❌ |
| Import playlist | ✅ | ❌ |
| Parse CUE sheets | ✅ | ❌ |
| CSV export for analysis | ✅ | ❌ |
| Fix album art | ✅ | ❌ |
Your library, your rules. Not a rental.
| Mode | Description |
|---|---|
| Repeat One | Loop a single track. Perfect for learning a song or vibing to that one track. |
| Smart Shuffle | History tracking prevents repeats across library, playlists, favorites, and artist views. |
| Context-aware | Shuffle respects where you started (artist page? playlist? favorites?). |
KORAI includes full RTL (Right-to-Left) support:
- Persian/Farsi translation
- Interface flips automatically
- Metadata supports Persian characters
- Search works with Persian text
Because great software should speak your language.
Not everyone has a gaming rig. KORAI v1.4 detects low-resource devices automatically.
- Automatic detection (RAM < 4GB, CPU cores < 4)
- Reduces visual effects where it matters
- Keeps audio playback buttery smooth
Beautiful on high-end machines. Smooth on old laptops.
| Category | Specification |
|---|---|
| Audio Formats | MP3, FLAC (24-bit/192kHz), WAV, OGG, M4A |
| Metadata | ID3v2.2/2.3/2.4, Vorbis comments, FLAC tags |
| BPM Detection | Peak + Autocorrelation + FFT onset (60–200 BPM) |
| Energy Detection | RMS-based loudness analysis |
| EQ Bands | 5 bands: 60Hz, 230Hz, 910Hz, 4kHz, 14kHz |
| Crossfade | 0–12 seconds (configurable) |
| Tempo Range | 0.5x – 2.0x (pitch-preserved) |
| Plugin System | Isolated workers + VM sandbox + permission model |
| Memory (idle) | ~120MB (Electron base) |
| Memory (playing) | ~180MB |
| Memory (50k+ tracks) | ~250MB (Electron + JSON cache) |
| Storage | ~200MB + library cache |
| Feature | Description | Status |
|---|---|---|
| Plugin architecture | Isolated workers + VM sandbox + permission model | ✅ Available |
| Plugin CLI tool | korai-plugin create, pack, validate, dev |
✅ Available |
| Home page redesign | Cinematic hero + stats cards + mood chips | ✅ Available |
| Library masonry | CSS columns + virtual scrolling | ✅ Available |
| 3D cover art | Hover effects with scale, glow, and shadow | ✅ Available |
| Live waveform timeline | 45 animated bars that pulse with your music | ✅ Available |
| Repeat One mode | Loop a single track | ✅ Available |
| Smart shuffle | History tracking prevents repeats | ✅ Available |
| Performance mode | Auto-detects low-resource devices | ✅ Available |
| Feature | Description |
|---|---|
| Plugin Marketplace UI | Browse, search, and install plugins from UI |
| Audio effects UI | Reverb, chorus, delay, compression, distortion |
| 10-band EQ | Extended equalizer with more bands |
| Vocal extraction | High-fidelity vocal removal |
| macOS + Linux builds | Cross-platform support |
- Database: Write debouncing (100ms), async file writes
- Crossfade:
exponentialRampToValueAtTime(audio thread) - Visualizer: Reduced to 20 FPS, visibility-based rendering
- Image loading: IntersectionObserver lazy loading
| Category | v1.3 → v1.4 |
|---|---|
| Files changed | 30+ |
| Lines added | ~7,500 |
| Lines removed | ~600 |
| New backend modules | 12 |
| New frontend modules | 8 |
- Built with Electron → ~180-250MB memory usage. You won't get a C++ memory footprint, but you get cross-platform compatibility.
- Windows only currently → macOS and Linux builds planned (no ETA).
- 5-band EQ, not 10-band → More bands planned for v1.5.
- BPM detection is estimated → ~±5 BPM accuracy. Works great for matching tempos, not lab-grade.
- Plugin Marketplace & Audio Effects UI → Framework ready, UI coming in v1.5.
| Shortcut | Action |
|---|---|
Space |
Play / Pause |
← / → |
Seek -10s / +10s |
Ctrl + ← / Ctrl + → |
Previous / Next |
↑ / ↓ |
Volume +10% / -10% |
M |
Mute |
F |
Toggle fullscreen |
Esc |
Exit fullscreen |
Ctrl + K |
Focus search |
N |
Next track |
B |
Previous track |
Media keys (Play, Pause, Next, Previous) work on all platforms.
bpm>120 → BPM greater than 120
bpm<100 → BPM less than 100
bpm:120-140 → BPM between 120 and 140
genre:rock → Genre contains "rock"
genre:rock|metal → Genre is rock OR metal
year:2020-2024 → Year between 2020-2024
energy>0.7 → Energy greater than 0.7
duration<240 → Shorter than 4 minutes
playcount>10 → Played more than 10 times
likecount>0 → Has likes
artist:beatles → Artist contains "beatles"
title:love → Title contains "love"
genre:!pop → NOT pop (negation)
q:hello world → Search title, artist, album, genre
korai-player/
│
├── main.js # Electron main process
├── preload.js # Secure context bridge
├── package.json # Dependencies
│
├── src/
│ ├── backend/
│ │ ├── server.js # Express API (port 3050)
│ │ ├── database.js # JSON storage (debounced writes)
│ │ ├── analyzer.js # Metadata extraction
│ │ ├── recommender.js # Similarity engine
│ │ ├── bpmDetector.js # BPM detection (3 algorithms)
│ │ ├── cueParser.js # CUE sheet parser
│ │ ├── playlistExporter.js # M3U/PLS/CSV exporter
│ │ ├── updater.js # Auto-update notifications
│ │ ├── pluginManager.js # Plugin lifecycle
│ │ ├── pluginHost.js # Host process for workers
│ │ ├── pluginWorker.js # Isolated VM execution
│ │ ├── pluginRoutes.js # HTTP API for plugins
│ │ ├── pluginSettings.js # Per-plugin config storage
│ │ ├── pluginPerformanceMonitor.js # CPU/memory tracking
│ │ ├── pluginHealthMonitor.js # Auto-disable on failures
│ │ └── worker/
│ │ └── analyzer.worker.js
│ │
│ └── frontend/
│ ├── index.html
│ ├── styles.css # Liquid Glass + RTL
│ ├── additional.css # v1.4 visual upgrades
│ ├── app.js # Core player logic
│ ├── lang.js # i18n (English/Persian)
│ ├── advancedSearch.js
│ ├── gaplessPlayer.js
│ ├── tagEditor.js
│ ├── homePremium.js # Premium home page
│ ├── homeEnhancements.js # Micro-interactions
│ ├── libraryMasonry.js # Virtualized masonry
│ ├── pluginManagerUI.js # Plugin management UI
│ ├── pluginStoreUI.js # Marketplace UI (coming)
│ ├── plugins.html # Plugin manager page
│ ├── store.html # Marketplace page (coming)
│ └── additional.js # Utility helpers
│
├── plugins/ # Plugin installation directory
│ └── korai-change-logs@1.0.0/
│
├── korai.png
└── screenshot/
👉 github.com/Behdad-kanaani/korai-player/releases/latest
| Format | File |
|---|---|
| NSIS installer | KORAI-Setup-{version}.exe |
| Platform | Status |
|---|---|
| macOS | 🚧 Planned |
| Linux | 🚧 Planned |
git clone https://github.com/Behdad-kanaani/korai-player.git
cd korai-player
npm install
npm start # development mode
npm run dist:win # build Windows installerRequirements: Node.js 18+ (20 LTS recommended) · npm 9+
| Version | Status | Key Features |
|---|---|---|
| v1.0 | ✅ Released | Core playback · 5-band EQ · Persian RTL · System tray · BPM detection |
| v1.2 | ✅ Released | Liquid Glass theme · Tag editor · Gapless + Crossfade · M3U/PLS/CUE |
| v1.3 | ✅ Released | 3D cover art · Live waveform · Repeat One · Smart shuffle |
| v1.4 | ✅ Current | Plugin architecture · Home redesign · Library masonry |
| v1.5 | 🔄 Planned | Plugin Marketplace UI · Audio effects UI · 10-band EQ · Vocal extraction · macOS + Linux |
git checkout -b feature/your-idea
git commit -m 'feat: description'
git push origin feature/your-ideaCommit convention:
| Prefix | Purpose |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation |
refactor: |
Code restructuring |
perf: |
Performance improvement |
chore: |
Maintenance |
Plugin development: Use korai-plugin create to scaffold new plugins.
| Question | Answer |
|---|---|
| Is KORAI open source? | ✅ Yes — fully auditable |
| Can I audit the code? | ✅ Yes — every line is public |
| Does it send telemetry? | ❌ No — zero network requests except localhost API |
| Does it require an account? | ❌ No — no sign-up, no login |
| Where is my data stored? | %APPDATA%\korai-player\ (Windows) |
| Can I delete my data? | ✅ Yes — delete userData folder or uninstall |
Apache License 2.0 + Commons Clause
Copyright © 2026 Behdad Kanaani
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software... to use, modify, and distribute for NON-COMMERCIAL purposes.
You may NOT:
- Sell the Software
- Offer the Software as a paid service
- Charge for access to the Software's functionality
| Use Case | Allowed |
|---|---|
| Personal use | ✅ |
| Non-commercial sharing | ✅ |
| Modify and redistribute (non-commercial) | ✅ |
| Sell or sublicense | ❌ |
| Offer as SaaS | ❌ |
- Electron — Cross-platform desktop framework
- music-metadata — Audio metadata parsing
- Node-ID3 — ID3 tag reading/writing
- Express — Local API server
- Font Awesome — Icons
- adm-zip — Plugin packaging
- AJV — JSON schema validation
| Purpose | Link |
|---|---|
| 🐛 Report bug | GitHub Issues |
| 💡 Request feature | GitHub Issues |
| 💬 Discussion | GitHub Discussions |
| ⬇️ Download | Releases |


