Releases: SysAdminDoc/LibreSpot
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...
LibreSpot v2.0
LibreSpot v2.0 — Changelog
A massive evolution from the original v1.0 batch script. This release introduces a fully modernized PowerShell engine, professional GUI, multi-threaded execution, advanced installers, custom CSS injection, and a compiled executable distribution.
The app includes a hybrid elevation system for both EXE and PS1 modes, but launching the executable directly as admin is required for proper installation of Spotify, SpotX, Spicetify, Marketplace, and theme assets.
💡 Alternate Launch Method (PowerShell One-Liner)
You can also run LibreSpot directly from PowerShell by pasting this command:
irm "https://tinyurl.com/librespot" | iexFor a version without the theme, only SpotX and Spicetify:
irm "https://tinyurl.com/librespotbasic" | iexdemo.mp4
🖥️ Full WPF Graphical User Interface
- Replaces the old console-only workflow with a polished WPF desktop application.
- Custom dark Slate & Green Maven-style theme.
- Animated step indicator.
- Real-time log window with automatic scroll.
- Progress bar, status labels, completion state, and hyperlink credit panel.
- Single consolidated interface for the entire process.
🚀 New Hybrid Engine (EXE + PS1 Support)
- v2.0 automatically detects whether it is running as:
- a compiled EXE, or
- a raw .ps1 script.
- Supports seamless self-elevation in both modes.
- Executable mode is fully supported and intended for end users. Running the EXE as admin is required.
⚙️ Fully Rebuilt Spotify Automation Pipeline
The original v1.0 linear batch script workflow has been replaced with a structured 6-step engine:
1. Cleanup Engine
- Kills all active Spotify processes with intelligent timing.
- Downloads and runs the official Uninstall-Spotify script silently.
2. SpotX Installer (Better, Safer, Isolated)
- Downloads SpotX via secure BITS or fallback web request.
- Executes SpotX in an isolated PowerShell process.
- Includes all recommended SpotX parameters by default.
3. Spotify Prefs Generator
- Automatically launches and closes Spotify to force creation of required config files.
4. Spicetify CLI Installer
- Fetches the latest CLI release dynamically from GitHub API.
- Downloads, extracts, and configures Spicetify fully offline.
- Architecturally aware (x64/x86 detection).
- Cleans old installs and rebuilds settings fresh.
5. Marketplace Installer
- Automatically installs the Spicetify Marketplace from its latest release.
- Handles fallback folder structures.
- Enables Marketplace features in config.
6. Comfy Theme + Advanced CSS Injection
- Automatically downloads all Comfy theme components.
- Injects two custom CSS patches:
- XPUI enhancements.
- Comfy visual tweaks.
- Automatically configures Spicetify to apply theme, assets, and JS injection.
- Removes backups and applies the theme cleanly.
🧵 Multi-Threaded Execution Architecture
- Adds a dedicated background “Watcher Thread” to handle Spotify auto-closing without blocking UI.
- Main installation runs in a completely separate PowerShell runspace.
- Ensures ultra-smooth GUI responsiveness.
🔒 Reliability & Error Handling
- Full error trapping with GUI reporting.
- Fallback mechanisms for downloads, folder creation, and API failures.
- Graceful shutdown on catastrophic errors.
- Persistent status feedback in UI.
🏁 Final Polish
- Close button appears only upon successful or failed completion.
- Animated status text halts automatically on finish.
- Final Spotify launch performed after all modifications are applied.
Summary
LibreSpot v2.0 is a complete rewrite, evolving a simple batch script into a professional, GUI-powered, multi-threaded installer suite. It is faster, safer, cleaner, theme-aware, and built for long-term maintainability.
LibreSpot v1.0
LibreSpot
LibreSpot is a comprehensive all-in-one script that allows you to install a fully customizable Spotify client. It's by far the best way to listen to Spotify on a Windows PC.
The script runs these installers:
Download the script and run it. Follow the directions closely. Cheers!
