kmikiy/SpotMenu
45.3
Weak · 30 September 2026
3.8k
lines of production code
Swift
with TypeScript
2
measurements over time
What this system is
SpotMenu is a macOS menu-bar utility that provides playback control and track management for Spotify and Apple Music. It allows users to customize the status item's display, manage keyboard shortcuts, and handle authentication for features like liking tracks. The system also includes a marketing website built with Astro and React to distribute the application.
Features
Add Apple Music support and Spotify liking with long-form content handling
The SpotMenu/Playback module now supports playback control for both Spotify and Apple Music, allowing users to select a preferred player or let the app automatically detect which is running. For Spotify, users can now like and unlike tracks via the Web API, with a guided login flow to configure a developer Client ID. The playback view also displays metadata for long-form content such as audiobooks and podcast episodes, and the UI includes a custom slider and hover-based controls.
SpotMenu/Playback · high confidence
Initial project structure and build configuration for SpotMenu
The SpotMenu application project is established with its initial Xcode workspace, scheme, and build settings. This configuration defines the main application target alongside unit and UI test bundles, and integrates the Sparkle framework for automatic updates and the KeyboardShortcuts library for hotkey management.
SpotMenu.xcodeproj · high confidence
Initial release of SpotMenu with sandboxing and Sparkle auto-updates
This entry introduces the SpotMenu application, a menu-bar utility for controlling Spotify and Apple Music. The app is configured as a background-only agent (LSUIElement) and includes an Apple Events usage description to explain its need for automation permissions. It supports the com.github.kmikiy.spotmenu URL scheme for external triggering. To function within a sandboxed environment, the app declares entitlements for temporary Apple Events access to Spotify and Apple Music, along with standard sandbox permissions for file and network access. Additionally, Sparkle is integrated for automatic updates, utilizing a public ED key and a specific feed URL, with the installer XPC service enabled for secure, sandboxed installations.
SpotMenu · high confidence
Behavioural changes
Preferences window restructured with new customization and integration options
The Preferences window has been reorganized into distinct sections (Player, Appearance, Menu Bar, Shortcuts, About) to provide finer control over the app. Users can now select a preferred music player (Spotify or Apple Music) and configure Spotify-specific settings, including enabling track liking, entering a Spotify Client ID, and testing the connection. The Menu Bar section allows toggling the display of artist/title text, playing/liked/app icons, and adjusting layout properties like max width and font weights for both normal and compact views. Additionally, users can customize the playback window's appearance (colors, blur, hover effects) and assign custom keyboard shortcuts for playback controls and track liking.
SpotMenu/Preferences · high confidence
Redesigned menu bar item with granular display controls
The menu bar status item has been rebuilt to support a new set of display options, allowing users to toggle the visibility of the app icon, the heart (liked) icon, the music note icon, and the artist/title text. The view now supports a compact mode that stacks the artist and title vertically, and includes logic to hide the artist or title when playback is paused. Text content is automatically truncated to fit the configured maximum width, ensuring the menu bar item remains within bounds.
SpotMenu/StatusItem · high confidence
Redesigned menu bar status item and popover interface
The application now uses a custom SwiftUI-based status item view instead of a standard icon, allowing for dynamic content in the menu bar. A new popover system has been introduced to display a floating panel with fade-in/fade-out animations when toggled, replacing the previous presentation method. The menu structure itself has been simplified to include only Refresh, Preferences, and Quit actions, while the underlying UI components now support configurable width and integration with playback and preference models.
SpotMenu/UI · high confidence
SpotMenu 2.0 beta: complete menu bar app with customizable interface and keyboard shortcuts
The SpotMenu application has been rewritten as a native macOS menu bar app (SpotMenu 2.0 beta), replacing the previous implementation. This version introduces a fully customizable interface where users can toggle the display of the 'like' symbol, select a preferred music player, and configure menu bar settings. It supports global keyboard shortcuts for play/pause, track skipping, and liking/unliking tracks, with immediate UI feedback. The app now includes automatic update checking via Sparkle and handles Spotify authentication redirects to manage playback state.
SpotMenu/App · high confidence
SpotMenu website rebuilt with Astro, React, and Tailwind CSS
The SpotMenu marketing site has been completely rebuilt using the Astro framework with React integrations and Tailwind CSS styling. This update introduces a modern landing page featuring a dark/light theme toggle, a responsive header and footer, and a showcase of the app's SwiftUI-based features and demo videos. The site now includes a direct download button for the macOS application and a PayPal donation link to support the project, replacing the previous static implementation.
website · high confidence
Test coverage
Added initial UI test scaffolding for SpotMenu; Added initial test suite for SpotMenu.
Dependencies
Website dependencies updated to React 19 and Astro 5
The SpotMenu website now uses React 19 and Astro 5, along with updated versions of Tailwind CSS, Radix UI, and MDX support. This upgrade aligns the site with the latest stable releases of these frameworks, ensuring compatibility with modern React patterns and improved build performance.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 52 → 45 (-6.5)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 98 → 92 (-5.3)
- Architecture 91 → 94 (+3.0)
- Maturity 53 → 53 (-0.0)
- Readiness 32 → 25 (-6.3)
- Security 74 → 79 (+5.3)
- Accessibility 57 (new)
Resolved (3)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
New (9)
- Duplicated block (19 lines × 2) (SpotMenu/Playback/SpotifyLoginView.swift)
- MethodTooLong: AboutPreferencesView.body (SpotMenu/Preferences/AboutPreferencesView.swift)
- MethodTooLong: MenuBarPreferencesView.body (SpotMenu/Preferences/MenuBarPreferencesView.swift)
- MethodTooLong: PlaybackView.controlsOverlay (SpotMenu/Playback/PlaybackView.swift)
- MethodTooLong: SpotifyLoginView.stepClientIDEntry (SpotMenu/Playback/SpotifyLoginView.swift)
- MusicPlayerPreferencesView.body (cognitive 21) (SpotMenu/Preferences/MusicPlayerPreferencesView.swift)
- Outdated: keyboardshortcuts
- Outdated: sparkle
- SpotifyLoginView.stepClientIDEntry (cognitive 25) (SpotMenu/Playback/SpotifyLoginView.swift)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
kmikiy/SpotMenu was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit a114819310db63ba1a8b3f88b7c223eec8cf1873 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.