{"adoption": {"forks": 186, "observed_at": "2026-08-28T04:07:45.516401+00:00", "stars": 3131}, "canonical_url": "https://ross.abutalabs.com/products/spotmenu", "card": {"archived": false, "artifact_type": "application", "description": "Spotify & Apple Music in your macOS menu bar", "domain": ["desktop-applications", "media", "developer-tools", "apple-ecosystem"], "enriched": true, "function": ["gui", "developer-tools"], "health_score": 86, "homepage": "https://kmikiy.github.io/SpotMenu/", "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["kmikiy/SpotMenu"], "name": "kmikiy/SpotMenu", "platform": [], "pushed_at": "2026-05-15T00:10:30+00:00", "repo": "kmikiy/SpotMenu", "stars": 3131, "tags": ["menu-bar", "spotify", "apple-music", "swiftui", "music-player-controls", "global-hotkeys", "open-source", "macos", "desktop"], "topics": ["spotify", "swift", "menu", "menubar", "bar", "itunes"], "urls": [], "use_cases": ["show currently playing song in the macOS menu bar", "control Spotify playback without switching apps", "control Apple Music from the menu bar", "set global keyboard shortcuts for play, pause, and skipping tracks", "like or unlike Spotify tracks with a hotkey", "display album art in a compact playback panel", "save menu bar space with a compact two-line view"], "what_it_is": "SpotMenu is a free, open-source macOS menu bar app that shows the currently playing track from Spotify or Apple Music with hover playback controls and album art. It is built with Swift and SwiftUI and offers global hotkeys, track liking via the Spotify Web API, and extensive customization options.", "when_to_avoid": ["you use Linux or Windows - it is macOS 13+ only", "you need a full music player or playlist management app", "you want track liking for Apple Music - that feature is Spotify-only", "you need integration with other streaming services like YouTube Music"], "when_to_choose": ["you use Spotify or Apple Music on macOS and want quick playback control", "you want a native, lightweight, open-source menu bar music widget", "you prefer customizable appearance like blur, tint, and max width", "you want global hotkeys for media control"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spotmenu", "repo": "kmikiy/SpotMenu", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:45.516401+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:26:09.892458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "135e2b55540d0f5952c28f934aff02a2a1e8b1e2eec341bc4de67dfc1a3cac8d", "fetched_at": "2026-08-28T04:07:45.516401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kmikiy/SpotMenu"}, {"content_hash": "6f9b76ac13b4d3a4e5ad7e0e107e32dfdf14d85dede36560df2b1bc631defe09", "fetched_at": "2026-08-29T09:41:00.412881+00:00", "kind": "homepage", "missing": false, "url": "https://kmikiy.github.io/SpotMenu/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 82, "longevity": 100, "rhythm": 68}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3652, "days_push": 111, "days_rel": 216, "gap_med": 3, "n_releases_24m": 12}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}