Skip to content

Release history

koel releases

Music streaming solution that works.

All releases

19 shown

Config change
v9.6.0 New feature
Auth Breaking upgrade

Subsonic endpoints + key encryption

No immediate action
v9.5.0 Bug fix

Fixes silent OOM

No immediate action
v9.4.2 Bug fix

OOM fix for TNT driver

No immediate action
v9.4.1 Mixed

Laravel upgrade + prune fixes

No immediate action
v9.4.0 New feature

OpenID Connect + WebDAV + test hardening

No immediate action
v9.3.6 Mixed

Tailwind migration + QR fix + deps bump

Review required
v9.3.5 Bug fix
Auth RCE / SSRF

Redirect target validation

Review required
v9.3.4 Bug fix
RCE / SSRF

URL validation fix

No immediate action
v9.3.3 Maintenance

Routine maintenance and dependency updates.

No immediate action
v9.3.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v9.3.0 New feature

Guest role

v9.2.1 Bug fix

Fixed file uploads above 100MB silently dropping.

Full changelog

What's Changed

  • fix: properly move playlist between folders / out to root on update by @phanan in https://github.com/koel/koel/pull/2436
  • chore: clarify radio-station public toggle label by @phanan in https://github.com/koel/koel/pull/2437
  • fix: restart radio playback when the on-air station's URL is edited by @phanan in https://github.com/koel/koel/pull/2438
  • fix: don't blank-page the app when GitHub is unreachable by @phanan in https://github.com/koel/koel/pull/2440
  • fix: arrowleft hotkey now seeks backward, not forward by @phanan in https://github.com/koel/koel/pull/2442

Full Changelog: https://github.com/koel/koel/compare/v9.2.0...v9.2.1

v9.2.0 Breaking risk
Breaking changes
  • Removed obsolete `acl/permissions` endpoint and `Permissionable` contract
  • Removed the entire `Acl` namespace; assignable roles are now bundled into initial data
Full changelog

What's Changed

  • fix: use default cursor on context menu items instead of text cursor by @phanan in https://github.com/koel/koel/pull/2408
  • feat: include user's edit permission in album resource by @phanan in https://github.com/koel/koel/pull/2409
  • feat: include user's edit permission in artist resource by @phanan in https://github.com/koel/koel/pull/2410
  • feat: include user's edit and delete permissions on playlist resource by @phanan in https://github.com/koel/koel/pull/2411
  • feat: include user's edit and delete permissions on radio station resource by @phanan in https://github.com/koel/koel/pull/2412
  • feat: include viewer's edit and delete permissions on user resource by @phanan in https://github.com/koel/koel/pull/2413
  • chore: remove obsolete acl/permissions endpoint and Permissionable contract by @phanan in https://github.com/koel/koel/pull/2414
  • chore: remove the Acl namespace entirely; bundle assignable roles into initial data by @phanan in https://github.com/koel/koel/pull/2415
  • test: strengthen User::getAssignableRoles tests with exact assertions by @phanan in https://github.com/koel/koel/pull/2416
  • fix: align user card with album/artist card affordances by @phanan in https://github.com/koel/koel/pull/2417
  • chore: announce loading regions to assistive technologies by @phanan in https://github.com/koel/koel/pull/2418
  • refactor: replace Btn boolean attrs with variant and size props by @phanan in https://github.com/koel/koel/pull/2419
  • fix: add hover state to BasicListSorter menu items by @phanan in https://github.com/koel/koel/pull/2420
  • refactor: migrate dropdowns and context menus to native popover API by @phanan in https://github.com/koel/koel/pull/2421
  • chore(deps): bump dompurify from 3.3.2 to 3.4.0 by @dependabot[bot] in https://github.com/koel/koel/pull/2404
  • chore(deps): bump phpseclib/phpseclib from 3.0.50 to 3.0.51 by @dependabot[bot] in https://github.com/koel/koel/pull/2401
  • fix: increase album/artist thumbnail corner radius by @phanan in https://github.com/koel/koel/pull/2423
  • refactor: consolidate DownloadService storage dispatch via factory by @phanan in https://github.com/koel/koel/pull/2425
  • refactor: extract shared store vault into useVault composable by @phanan in https://github.com/koel/koel/pull/2426
  • refactor: route paginated store URLs through flattenParams by @phanan in https://github.com/koel/koel/pull/2427
  • chore: align tsconfig with the typecheck override by @phanan in https://github.com/koel/koel/pull/2428
  • chore: thread Eloquent generics through custom builders + repo docblock cleanup by @phanan in https://github.com/koel/koel/pull/2429
  • chore: round out builder generics on remaining custom builders by @phanan in https://github.com/koel/koel/pull/2430
  • fix: shift tabindex from list/panel wrappers to media list items by @phanan in https://github.com/koel/koel/pull/2431
  • refactor: extract model-image cleanup into a field-bound ModelImageObserver by @phanan in https://github.com/koel/koel/pull/2432
  • fix: harden ModelImageObserver edge cases ('0' filename + log noise) by @phanan in https://github.com/koel/koel/pull/2433
  • chore: upgrade factoria to v5 by @phanan in https://github.com/koel/koel/pull/2435
  • chore(deps-dev): bump postcss from 8.5.8 to 8.5.10 by @dependabot[bot] in https://github.com/koel/koel/pull/2424

Full Changelog: https://github.com/koel/koel/compare/v9.1.2...v9.2.0

v9.1.2 New feature
Notable features
  • Drag progress bar to seek
  • Auto-hide visualizer controls in fullscreen
Full changelog

What's Changed

  • feat: allow dragging the progress bar to seek by @phanan in https://github.com/koel/koel/pull/2395
  • fix: preserve compilation album artist when editing songs by @phanan in https://github.com/koel/koel/pull/2396
  • fix: remove special colors from Favorites and Recently Played sidebar icons by @phanan in https://github.com/koel/koel/pull/2397
  • fix: resolve Butterchurn visualizer ESM interop double-wrapping regression by @acjohnson in https://github.com/koel/koel/pull/2399
  • feat: auto-hide visualizer controls in fullscreen mode by @phanan in https://github.com/koel/koel/pull/2400
  • fix: use most recent feed date for podcast sync freshness check by @phanan in https://github.com/koel/koel/pull/2407

New Contributors

  • @acjohnson made their first contribution in https://github.com/koel/koel/pull/2399

Full Changelog: https://github.com/koel/koel/compare/v9.1.1...v9.1.2

v9.1.1 Bug fix

Fixed radio station URL validation by implementing a GET fallback for failed HEAD requests and corrected list-view card height stretching in the UI.

v9.1.0 Mixed

Introduced offline caching status visibility, virtual grid scroller for lists, keyboard navigation for context menus, and duplicate file upload detection. Fixed SSRF vulnerability via podcast subscription URLs, improved context menu hover reliability, and updated play count logic using leftJoin.

v9.0.0 Breaking risk
Breaking changes
  • Requires PHP 8.3 or higher (previously PHP 8.2)
Security fixes
  • Fixed CVE-2025-7783 (form-data unsafe random boundary)
Notable features
  • Offline song caching
  • Crossfade playback with configurable duration
  • AI-powered music assistant
v8.3.1 Bug fix

Fixed critical issue where artists were deleted when album artist was provided, improved doctor command, and updated dependencies for security.

v8.3.0 Bug fix

Fixed hover status on context menu items and updated dependencies including sodium_compat library.

Beta — feedback welcome: [email protected]