Releases: SysAdminDoc/LibreSpot
LibreSpot v3.7.2
LibreSpot v3.7.2
Premium UI overhaul with a critical hotfix for the Easy/Custom install confirmation dialog.
Highlights
- Win11 Mica backdrop via
DwmSetWindowAttribute(graceful solid-color fallback on Windows 10 / pre-22H2). - Sidebar navigation — 252-px rail with Lucide icons (Sparkles / Sliders / Wrench) replaces the old top tab bar. Mode headline + summary moved into a compact in-content title bar.
- Design tokens — Surface / Border / Accent / Info / Warning / Danger / Fg brushes plus Hero / H1 / H2 / Body / Caption type tokens. Inline hex codes swept to
{StaticResource}references. - Hover-lift micro-interactions —
ActionButtontranslatesYby-1.5pxover 120ms with an accent-colored DropShadow glow on focus. - Shimmering progress bar during install via animated
LinearGradientBrushoverlay. - Density pass — every panel (Easy, Custom, Maintenance) tightened so options fit a 1080-px screen without scrolling. Hero font 22→17, card padding 20→14, inset padding 16→12, control heights down a tier across the board.
- Fresh app icon —
icon.icoandLibreSpot.icoregenerated fromlogo.pngas a 7-size multi-resolution ICO (16/24/32/48/64/128/256). Runtime brand image now sourceslogo.pngdirectly for crisper rendering at the sidebar's 44-px tile.
Hotfix
Show-ThemedDialogruns as a separateWindowwith its own here-string XAML and does NOT inherit the main window's resource dictionary. The v3.7.0Foreground="#FFE7EDF3"→{StaticResource FgPrimaryBrush}sweep caught three references inside that dialog template, which threwCannot find resource named 'FgPrimaryBrush'the moment Easy-mode installers clicked "Install recommended setup". Reverted those three to inline hex.
Same install behavior
Every $ui[name] reference, event handler, and config round-trip is preserved from v3.6.0. SpotX, Spicetify CLI, Marketplace, and theme commit pins are unchanged.
Install
irm https://github.com/SysAdminDoc/LibreSpot/releases/latest/download/LibreSpot.ps1 | iexOr download LibreSpot.exe and right-click → Run as administrator.
Verification
SHA256 checksums in checksums.txt. Note: this build is unsigned — SignPath Foundation enrollment is still pending. The shipped .exe will produce a SmartScreen warning until certs land.
LibreSpot v4.0.0-preview.1
Pre-release of the new native WPF desktop shell. The trusted PowerShell install and maintenance pipelines are preserved — they're now driven through a structured stdout protocol behind a cohesive, premium-feeling product surface.
Added
- Native WPF desktop shell (.NET 8, MVVM) replacing the PS2EXE GUI wrapper
- Token-based design system: surface elevation, semantic intent, motion, easing, radius, and spacing scales read from a single source of truth
- Focus rings as overlay borders (no 1px layout jitter on keyboard focus)
- Button hover-tint via Opacity animation + tactile 0.985x press-scale
- Indeterminate progress shimmer, rotating ComboBox chevron, fade-in checkbox checkmarks
- Overlay cards (activity + prompt) fade + scale-in on every show via DataTrigger EnterActions
- State-aware activity badge — accent pulse while running, Danger + "Needs attention" on failure, "Run complete" on success, "Working..." during indeterminate runs
- Staggered accent-dot empty state for the log panel
- Structured stdout protocol between WPF shell and embedded PowerShell backend
- Embedded backend script extracted to LocalAppData and SHA-verified before each run
- Action allow-list validation before any PowerShell dispatch
- Cancellation chain tears down the child process tree on window close
Changed
- Backend flows hardened for the new shell integration (install/maintenance pipelines preserved)
- Desktop UX polish across controls, states, and transitions
- Single-file self-contained .NET 8 executable (no runtime dependency)
Install
Download LibreSpot-v4.0.0-preview.1.exe below and run. Requires Windows 10/11. No .NET runtime install needed — the executable is self-contained.
This is a pre-release. The stable PS1/PS2EXE shell is still available on the v3.1.1 release.
LibreSpot v3.2.0 (test build)
v3.2.0 - Harden setup and recovery flows
Near-complete rewrite of install/maintenance infrastructure for resilience and recoverability.
Highlights
- Robust self-elevation - handles .ps1, .exe, and inline scriptblock launch contexts
- Config hardening - type-safe parsing, corrupt config quarantine, atomic write-then-replace saves
- Themed dark dialogs - custom WPF dialogs replace native MessageBox throughout
- Safe file removal - blocklist protection prevents accidental deletion of system directories
- Backup/restore with rollback - staged copy with automatic rollback on failure
- Streaming process output - real-time SpotX log display during install
- Unsaved changes guard - config fingerprinting detects unsaved Custom mode edits on close
- 8-phase Spotify uninstaller - processes, Store app, native uninstaller, filesystem, registry, scheduled tasks, firewall rules, verification sweep
- Declarative extension sync - preserves user-installed items while managing LibreSpot-controlled extensions
- Icon branding - window and dialog icons, multi-size icon assets
Downloads
LibreSpot.exe— compiled standalone executable (right-click > Run as Administrator)LibreSpot.ps1— PowerShell script (right-click > Run with PowerShell)
LibreSpot v3.1.1
v3.1.1 - Theme Preview + Cleanup
New: Live Theme Preview
Selecting a theme/scheme in Custom Install now shows an inline preview image fetched from the spicetify-themes repo. Images are cached in memory for instant scheme switching. Async loading keeps the UI responsive.
Reverted: Custom Apps & Extension Packs
The v3.2.0 custom apps (Statistics, Lyrics Plus, Reddit, Visualizer) and extension pack presets have been removed — they didn't work reliably with the current Spicetify version. Users can install these from the Spicetify Marketplace instead.
Includes all v3.1.0 fixes
- Anti-hang:
-confirm_uninstall_ms_spotiflag - Spicetify apply failure auto-recovery
- 27 lyrics color themes
- Old Lyrics + Collaboration Icons options
- SpotX updated to
6070bbcf(Spotify 1.2.85.519)
LibreSpot v3.1.0
v3.1.0 - Audit & Hardening Release
Bug Fixes
- Anti-hang: Added
-confirm_uninstall_ms_spotiflag so SpotX auto-removes MS Store Spotify without prompting (which caused stdin hang since LibreSpot redirects stdout) - Apply failure recovery: If
spicetify backup applyfails, LibreSpot now auto-restores vanilla Spotify to prevent blank screen from broken theme injection - Version logging: Installed Spotify version is now logged after SpotX patching for easier debugging
New Options (Custom Install)
- 27 lyrics themes: Expanded from 2 (spotify, blueberry) to all 27 SpotX static lyrics colors
- Restore old lyrics UI: New checkbox for
-old_lyricsflag - Show collaboration icons: New checkbox for
-hide_col_icon_offflag
Code Cleanup
- Removed dead
Module-PreInstallSpotifyfunction andURL_SPOTIFY_SETUPvariable (SpotX manages Spotify download since v3.0.6) - Fixed duplicate ComboBox scheme population on startup
- Updated SpotX version label from placeholder
Includes v3.0.6 fixes
- SpotX updated to
6070bbcf(supports Spotify 1.2.85.519) - Removed
-SpotifyPathto let SpotX manage version compatibility - Added
-confirm_spoti_recomended_overfor auto-downgrade
Fixes #5
LibreSpot v3.0.6
Fix: Blank screen on latest Spotify
Root cause: LibreSpot passed -SpotifyPath to SpotX, which bypassed SpotX's version compatibility check. When Spotify's installer delivered a version newer than what SpotX supports (e.g. 1.2.86 vs patches for 1.2.85.519), the patches would corrupt Spotify's UI — causing a blank/white screen.
Fix:
- Removed
-SpotifyPath— SpotX now manages Spotify version compatibility directly - Added
-confirm_spoti_recomended_overso SpotX auto-overwrites unsupported versions with its tested version - SpotX handles the Spotify download itself, ensuring the correct version is always installed
- Updated SpotX pin from
393d660dto6070bbcf(supports Spotify 1.2.85.519)
Fixes #5
LibreSpot v3.0.5
Bug Fixes & Hardening
- Fix
Expand-Archivemodule load failure (#4) — Replaced allExpand-Archivecalls with[System.IO.Compression.ZipFile]::ExtractToDirectory()which uses .NET directly and has no PowerShell module dependency - Fix worker runspace missing assembly — The ZipFile calls run in a background thread; the
System.IO.Compression.FileSystemassembly is now loaded into the worker runspace's InitialSessionState - BITS transfer fallback — Polling loop now handles
QueuedandTransientErrorjob states instead of failing immediately - Desktop shortcut cleanup —
Get-DesktopPathnow expands environment variables from registry (e.g.%USERPROFILE%\Desktop) - Download verification —
Download-FileSafenow verifies the output file exists and is non-empty after download, catching silent failures (disk full, redirect to error page) - Reapply config parsing — Maintenance > Reapply now uses
Load-LibreSpotConfiginstead of inline JSON parsing that didn't handle array properties (extensions list) - WebResponse leak —
Test-NetworkReadynow properly disposes the response viafinallyblock - Cache limit input — Textbox now restricts input to digits only
LibreSpot v3.0.3
Bug Fixes
- Update checker: SpotX check no longer falsely reports updates (was comparing against
1.9+instead of pinned commit hash) - AllowSpotify flag leak: Watcher runspace flag now properly resets via
try/finallyeven when SpotX or Reapply errors out - Overlay install: Spotify pre-install step now skips when Spotify.exe already exists (unchecked "Clean Install")
- Stale CEF warnings removed: 1.2.70+ incompatibility warnings removed from maintenance panel and Reapply dialog (pinned SpotX handles modern Spotify via JS patches)
- Dead code cleanup: Removed unused
Get-SpotifyInstalledVersionfunction and its runspace injection - User-Agent version: No longer hardcoded to
3.0-- dynamically uses$global:VERSION
Improvements
- Log file auto-save: Every log line is now written to
%APPDATA%\LibreSpot\install.log(reset each run) for post-install debugging - Watcher runspace cleanup: Window closing now signals
IsRunning = $falsebefore disposing runspaces - Config save errors logged: Save failures are now logged instead of silently swallowed
- Spicetify command logging: All
spicetify.exe configcalls now capture and log stdout/stderr
New Features
- LibreSpot self-update check: "Check for Updates" in Maintenance now also checks for new LibreSpot releases
- Taskbar flash on completion: Taskbar icon flashes 5 times via
FlashWindowExwhen install or maintenance finishes
LibreSpot v3.0.2
Changelog
Fixed: Spotify CDN Download Failures
Spotify added JWT-signed URLs (fauth) to their CDN in March 2026, breaking all direct installer downloads with 403 Forbidden errors. This affected SpotX and any tool that downloaded Spotify installers via static upgrade.scdn.co URLs.
LibreSpot now handles Spotify installation independently:
- Downloads and runs the official Spotify installer (
SpotifySetup.exe) fromdownload.spotify.combefore invoking SpotX - De-elevates the installer via a temporary scheduled task (Spotify's per-user installer refuses to run from admin context)
- Passes
-SpotifyPathto SpotX so it patches the existing installation in-place without attempting its own broken CDN download
Updated Dependencies
| Component | Old | New |
|---|---|---|
| SpotX | v1.9 (tag) | main branch (393d660d) — targets Spotify 1.2.84+ with JS-based patches compatible with CEF signature protection |
| Spicetify CLI | v2.42.8 | v2.42.14 |
Other Changes
- Removed invalid SpotX parameters (
-newFullscreenMode) that caused script errors - Fixed canvas parameter naming to match SpotX main branch (
-canvashome_off) - Dropped x86 architecture support (Spotify discontinued 32-bit builds)
- Added Spotify 1.2.70+ compatibility warnings in the maintenance panel
- Restructured README with Quick Start section at the top
Pinned Versions
| Component | Version |
|---|---|
| SpotX | main (393d660d) |
| Spicetify CLI | v2.42.14 |
| Marketplace | v1.0.8 |
| Themes | 9af41cf |
LibreSpot v3.0
LibreSpot v3.0.0
Complete rewrite — rebuilt from the ground up covering architecture, reliability, security, and visual design. Every function, every UI element, and every code path has been audited and improved.
Premium GUI Redesign
The entire interface has been redesigned with a premium software aesthetic inspired by tools like Warp, Arc, and Raycast.
- New zinc-based color palette replacing the original blue-slate scheme — deeper blacks, refined grays, consistent visual hierarchy
- Floating window with soft drop shadow (BlurRadius 28) and rounded corners (12px)
- Gradient accent line at the top of the window — sweeping dark green to bright green
- Green status LED in the title bar indicating active state
- Terminal-style log display with macOS-inspired header dots, Cascadia Mono font stack, and deeper background for contrast
- Rounded progress bar with green gradient fill (6px height, custom ControlTemplate with TemplateBinding for proper error-state color changes)
- Redesigned mode tabs — underline indicator style with 2px green bar instead of filled backgrounds
- Easy Install panel — feature checklist with green circle checkmarks and centered card layout
- Custom Install panel — section headers with green dot indicators, improved column spacing (20px gap), checkbox backgrounds tint green when checked
- Maintenance panel — status cards with dot indicators, section accent bars (green for actions, red for uninstall), button accent stripes with hover animation
- Refined ComboBox dropdowns — drop shadow on popup, rounded selection items, dark green selected state
- Improved tooltips — rounded corners, drop shadow, consistent spacing
- Window size increased from 700×840 to 760×920 for better breathing room
- GitHub icon button in the title bar linking to the repository, with hover highlight effect
Supply Chain Integrity
All external dependencies are now pinned to specific versions with cryptographic verification.
- Pinned versions — SpotX v1.9, Spicetify CLI v2.42.8, Marketplace v1.0.8, Themes commit
9af41cf - SHA256 hash verification — every downloaded file is verified against a known hash before execution; mismatches throw a detailed error with expected vs actual hash
- Per-architecture hashes — separate SHA256 hashes for x64, x86, and ARM64 Spicetify CLI builds
- Built-in update checker — Maintenance > Check for Updates queries GitHub APIs for all four dependencies, compares against pinned versions, and reports what's available without automatically upgrading
- User-Agent headers on all HTTP requests (
LibreSpot/3.0)
Window Management
New Win32 P/Invoke integration keeps the installation experience clean.
- Spotify windows automatically hidden during installation — SpotX needs Spotify to run for patching, but the window is suppressed via
ShowWindowAsync(SW_HIDE) - Installer windows suppressed — any spawned SpotifyInstaller processes are also hidden
- Watcher runspace — dedicated background thread monitors for window pop-ups every 500ms during both install and maintenance operations
- LibreSpot stays on top during installation to prevent losing the window behind hidden processes
- AllowSpotify flag — coordinated system where SpotX can let Spotify run (hidden) while other phases kill it on sight
Self-Contained Uninstaller
Replaced dependency on SpotX's external uninstaller with a comprehensive 8-phase nuker built into LibreSpot.
- Phase 1 — Process termination with retry logic (5 attempts, 500ms delay)
- Phase 2 — Microsoft Store / UWP app removal (
Get-AppxPackage) - Phase 3 — Spotify native silent uninstaller with 15-second timeout
- Phase 4 — File system cleanup: Roaming, Local, Temp, SpotX temp, Spicetify dirs, desktop/Start Menu shortcuts, cached installers, glob pattern matching
- Phase 5 — Registry cleanup: uninstall keys, protocol handlers, app paths, startup entries, IE elevation policies
- Phase 6 — Scheduled task removal
- Phase 7 — Firewall rule cleanup
- Phase 8 — Verification sweep with retry for stubborn locked files
- ACL unlock — removes deny rules on Spotify's Update folder before cleanup
- Desktop path resolution — reads from registry Shell Folders, falls back to
[Environment]::GetFolderPath
Architecture Improvements
- Threaded installation — all install/maintenance work runs in background runspaces with synchronized hashtable for cross-thread UI updates; GUI stays fully responsive
- Dual-page WPF architecture — config page and install log page with clean transitions
- New-SyncHash helper — centralized factory for the synchronized state object shared between threads
- Worker Initial Session State — functions and variables are injected into runspaces via
InitialSessionStaterather than string serialization - Runspace tracking — all opened runspaces are tracked in
$script:openRunspacesand properly disposed on window close - Settings persistence — Custom Install configuration auto-saved to
%APPDATA%\LibreSpot\config.jsonand restored on next launch, including all checkboxes, combos, theme selection, and extensions - Config backup system — up to 5 rotating timestamped Spicetify config backups in
%USERPROFILE%\LibreSpot_Backups - 7-step installation pipeline — Cleanup → SpotX → Spicetify CLI → Themes → Extensions → Marketplace → Apply, with per-step progress bar updates
Theme & Extension System
- 16 official Spicetify themes with full color scheme sets verified against the repository (Sleek, Dribbblish, Ziro, text, StarryNight, Turntable, Blackout, Blossom, BurntSienna, Default, Dreary, Flow, Matte, Nightlight, Onepunch, SharkBlue)
- 150+ color schemes — each theme populates its own verified scheme dropdown
- Smart inject_theme_js — automatically enabled for themes that require it (Dribbblish, StarryNight, Turntable), disabled for all others
- 10 built-in extensions with tooltip descriptions pulled from the extension metadata
- ARM64 architecture support — automatic detection and correct binary/hash selection
- Marketplace v1.0.8 — handles both
marketplace-distand flat zip layouts
Reliability & Error Handling
- ErrorActionPreference management — temporarily set to
Continueduring XAML parsing (WPF generates non-terminating errors with complex templates), restored toStopfor all execution - Pipeline output suppression — defensive
| Out-Nullon all WPF operations to prevent type conversion errors in PowerShell - BITS fallback —
Invoke-WebRequestfailures automatically retry with BITS transfer (async with 120-second timeout) - Process isolation — SpotX runs in a separate PowerShell process with stdout/stderr capture and exit code checking
- Stack trace logging — fatal errors include
$_.ScriptStackTracein the log output - Network connectivity check — pre-flight
HEADrequest toraw.githubusercontent.combefore any install/maintenance operation - Elapsed timer — live
mm:ssdisplay during operations via DispatcherTimer - Copy Log button — appears on completion for easy troubleshooting
- Progress bar error state — turns red on failure (TemplateBinding allows runtime color changes)
- Smart Spotify config polling — waits up to 45 seconds for
prefsfile generation after SpotX install with 2-second intervals - Double-click guard — install button disables immediately on click to prevent duplicate runs
- Confirmation dialogs — Easy Install and all destructive maintenance operations require explicit confirmation
Bug Fixes (41 total across all sessions)
- Fixed threading crash where runspace worker couldn't access UI dispatcher
- Fixed
Items.Clear()throwing on void return by suppressing pipeline output - Fixed SpotX detection checking wrong file (
xpui.spainstead ofxpui.spa.bak) - Fixed config restore not re-applying Spicetify after file copy
- Fixed extension checkbox map using wrong hashtable type (switched to
[ordered]@{}) - Fixed theme dropdown not populating schemes on first load
- Fixed LyricsThemePanel visibility not toggling on checkbox state
- Fixed Premium checkbox not disabling dependent checkboxes (PodcastsOff, AdSectionsOff)
- Fixed cache limit validation accepting negative values
- Fixed progress bar off-by-one (step 7/7 showed 85% instead of 100%)
- Fixed version number not displaying in title bar
- Fixed BrushMuted using old blue-slate color instead of zinc palette
- Fixed hyperlinks not opening in browser (added
UseShellExecute = $trueto ProcessStartInfo) - Fixed ProgressBar error color change being ignored by custom template (switched to TemplateBinding)
- Fixed maintenance jobs missing window-hiding watcher (Spotify windows could pop up during Reapply)
- Fixed Full Reset not cleaning Spicetify from user PATH variable
- Fixed 7 missing config value restores on settings load (TopSearch, NewFullscreen, RightSidebarOff, RightSidebarClr, CanvasHomeOff, HomeSubOff, Extensions)
- Fixed Spicetify not being added to persistent user PATH (only session PATH was set)
- Fixed
spicetify -vblocking the UI thread (switched to redirected process output) - Fixed backup system overwriting single backup (now rotating timestamped backups)
- Fixed restore not checking if backup directory contains expected data
- Removed
-confirm_uninstall_ms_spotiand-confirm_spoti_recomended_overfrom SpotX params (handled by nuker) - Added
--bypass-adminflag to all Spicetify CLI calls - Suppressed WPF progress preference noise during AppX removal
- Fixed temp file cleanup not running on successfu...