MCPcopy Index your code
hub / github.com/Moosync/Moosync

github.com/Moosync/Moosync @Moosync-v11.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release Moosync-v11.0.2 ↗ · + Follow
2,024 symbols 3,810 edges 279 files 41 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

moosync logo

Moosync

All Contributors Release Discord Crowdin

Help up translate the project at Crowdin

Moosync is a customizable desktop music player with a clean interface

Features

  • Play audio files on your desktop.
  • Seamlessly integrate your Spotify and Youtube songs.
  • Lyrics fetch support
  • Scrobble your tracks on LastFM.
  • Get music recommendations directly from Spotify, Youtube and LastFM
  • Mix and match songs from different providers in a single playlist
  • Easy to use interface
  • Customizable theme engine
  • Develop own apps on top of Moosync Extension API
  • Available on Windows and Linux and MacOS

Links

Official website | Downloads | Discord Crowdin

Releases

You may download the latest release from Official website or from GitHub Releases

Package managers

TODO

Any questions?

Checkout the Official Wiki on moosync.app or on GitHub.

For any further questions you may join us on Discord

Screenshots

TODO

Building from source

TODO

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Ohm 🎨 Anirudh 🎨 Sahil Gupte 💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Donations

Cryptocurrency Address
Bitcoin (BTC) bc1qhcywctcy4exkcdd726d2lxkwaluqwgym0ynf9j
Ethereum (ETH) 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677
Dogecoin (DOGE) bc1qhcywctcy4exkcdd726d2lxkwaluqwgym0ynf9j
Litecoin (LTC) LLkim24N5yduBbXiFaLMbUeUwmyZ9VUQt7
Polygon (MATIC) 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677
Tether USD (USDT) 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677
USD coin (USDC) 0x0AFaCe6031e2fBe54D2fBF493310C0f5C3Cef677

TODO

  • Preferences
  • Clear queue before adding playlist
  • System theme fetch
  • Optimize cloning in leptos
  • Optimize DB queries
  • clear thumbnails on song removal
  • remove songs on path removal

  • hide everything technical

  • settings is 3/4th of the width
  • song paths have alternating light-dark colors
  • song paths icons shuold be everywhere
  • multi-select tooltip on selecting one song on cursor (first n times)
  • change add to queue icon
  • Show a not logged in prompt in search (opens up spotify login flow)
  • ^ do this everywhere theres a spotify tab
  • Show accounts icon on right-most
  • artists as circle
  • overhaul search artists
  • If loading takes more than n-secs (show popup)
  • change sort icon (filter icon)
  • add ascending/descending under filter
  • show lyrics button

Extension points exported contracts — how you extend this code

GenericPlayer (Interface)
(no doc) [5 implementers]
src/players/generic.rs
SearchByTerm (Interface)
(no doc) [5 implementers]
src-tauri/types/src/common.rs
AudioplayerExt (Interface)
Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the audioplayer APIs. [1 implementers]
lib/tauri-plugin-audioplayer/src/lib.rs
FileScannerExt (Interface)
Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the file-scanner APIs. [1 implementers]
lib/tauri-plugin-file-scanner/src/lib.rs
Color (Interface)
(no doc) [3 implementers]
src/components/color_picker.rs
BridgeUtils (Interface)
(no doc) [4 implementers]
src-tauri/types/src/common.rs
LibrespotCallbacks (Interface)
(no doc) [1 implementers]
lib/tauri-plugin-audioplayer/android/src/main/java/services/players/librespot/LibrespotCallbacks.java
GenericProvider (Interface)
(no doc) [3 implementers]
src-tauri/types/src/providers/generic.rs

Core symbols most depended-on inside this repo

clone
called by 830
src-tauri/types/src/ui/player_details.rs
get
called by 259
src-tauri/database/src/cache.rs
set
called by 174
src-tauri/database/src/cache.rs
send
called by 85
src-tauri/librespot/src/spirc.rs
eq
called by 40
src-tauri/types/src/songs.rs
load
called by 30
src/js/youtube_player.js
clear
called by 26
src-tauri/librespot/src/canvaz.rs
emit
called by 24
src/js/youtube_player.js

Shape

Method 841
Class 789
Function 343
Enum 37
Interface 14

Languages

Rust85%
Kotlin12%
Java2%
TypeScript1%

Modules by API surface

src-tauri/youtube/src/types.rs556 symbols
src/store/player_store.rs51 symbols
src-tauri/src/providers/youtube.rs43 symbols
src-tauri/src/providers/spotify.rs41 symbols
src-tauri/database/src/database.rs41 symbols
src/components/color_picker.rs33 symbols
src/js/youtube_player.js27 symbols
src-tauri/src/providers/extension.rs27 symbols
src/utils/context_menu.rs26 symbols
src-tauri/types/src/ui/extensions.rs26 symbols
src-tauri/librespot/src/canvaz.rs26 symbols
src-tauri/types/src/extensions.rs25 symbols

For agents

$ claude mcp add Moosync \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact