live · scanning repos
Scanrepo
github.com
github.com / spicetify

spicetify/cli

JavaScript·139 files·commit 0b4653f·scanned 5d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 15 — 25,168+ stars — findings likely false positives

verdict accurate?
25,168 stars
threat-state: lowlive

FINDINGS ░▒▓

criticalGo os/exec usageos/exec is used to run external commands. In malware it drops payloads, modifies the system, or opens shells.src/cmd/block-updates.go
		if disabled {
			exec.Command("pkill", "Spotify").Run()
			exec.Command("mkdir", "-p", updateDir).Run()
			exec.Command("chflags", "uchg", updateDir).Run()
+8
criticalGo os/exec usageos/exec is used to run external commands. In malware it drops payloads, modifies the system, or opens shells.src/cmd/restart.go
	case "windows":
		isRunning := exec.Command("tasklist", "/FI", "ImageName eq spotify.exe")
		result, _ := isRunning.Output()
		if !bytes.Contains(result, []byte("No tasks are running")) {
+8
criticalGo os/exec usageos/exec is used to run external commands. In malware it drops payloads, modifies the system, or opens shells.src/cmd/update.go
	case "linux", "darwin":
		err = exec.Command("tar", "-xzf", location, "-C", utils.GetExecutableDir()).Run()
	}
	if err != nil {
+8
criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.install.sh
# check for dependencies
command -v curl >/dev/null || { log "curl isn't installed!" >&2; exit 1; }
command -v tar >/dev/null || { log "tar isn't installed!" >&2; exit 1; }
command -v grep >/dev/null ...
+10
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.src/preprocess/preprocess.go+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.CustomApps/lyrics-plus/Utils.js+4
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.jsHelper/expFeatures.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.CustomApps/lyrics-plus/Utils.js+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.Extensions/bookmark.js+3
infoSuspicious file in repoExecutable file (install.ps1) in repositoryinstall.ps1+2
infoAuthor has no other public repositoriesGitHub user "dependabot[bot]" has no other public repositories, common for burner accounts used in scams.+2

Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.

108 files scanned @ 0b4653f | 10/22/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation15
supply chain4
owasp / injection0
telemetry
files 108/139rules hit 12engine v7commit 0b4653f

github

spicetify/cli

Command-line tool to customize Spotify client. Supports Windows, macOS, and Linux.

JavaScript
25168
992
2887d
139 files
108 scanned(78%)
0b4653f

architecture░▒▓

entry (0) flagged (12) pkg (31)
129 nodes · 158 edgesscroll to zoom · click node to jump to finding