Stream and download millions of Hi-Res FLACs, unreleased songs and music videos, all for free on Monochrome.
See the codeAn open-source, privacy-respecting, ad-free music app.
Website - Donate - Features - Usage - Self-Hosting - Contributing
Monochrome is an open-source, privacy-respecting, ad-free web music player. It provides a beautiful, minimalist interface for streaming high-quality music without the clutter of traditional streaming platforms.
Our Recommended way to use monochrome is through our official instance:
For alternative instances, check INSTANCES.md.
NOTE: Accounts will not work on self-hosted instances. Our Appwrite authentication system only allows authorized domains.
We had to heavily customize the authentication system and write several custom scripts to support features like SMTP and Google OAuth (which are currently bugged in Appwrite). Because of this, we can no longer provide a self-hostable accounts system.
[!WARNING] You will not be able to stream music after self-hosting and placing the website on a domain. Our API is configured to only accept official instances of Monochrome so you can only stream music on localhost after self-hosting. However, if you have a working and paid HiFi API endpoint then Settings > Instances > Turn on Dev Mode > Place your endpoint there.
git clone https://github.com/monochrome-music/monochrome.git
cd monochrome/docker
docker compose up -d
Visit http://localhost:3000
Visit http://<tailscale_server_hostname_or_ip>:3000
By default, the app uses Vite preview, which restricts access to localhost.
To allow access over Tailscale:
Open vite.config.js
Uncomment and configure the preview section:
preview: {
host: true,
allowedHosts: ['<your_tailscale_hostname>'], // e.g. pi5.tailf5f622.ts.net
},
docker compose down
docker compose up -d
For development mode and advanced setups, see DOCKER.md.
Monochrome requests an Apple Music developer token from https://am-mint.binimum.org/token in the browser and caches
it locally until the JWT expires. Apple Music supplies catalog ordering and autocomplete suggestions; when token minting,
Apple's API, or CORS is unavailable, Monochrome automatically uses its existing search ordering.
When Apple exposes editorial motion artwork for a matched album, Monochrome also uses its square HLS video cover on album and now-playing surfaces, with the static cover retained as the fallback.
The current PocketBase collection schema is stored in database/pb_schema.json. Import this schema into a fresh PocketBase instance when setting up account data storage.
Clone the repository:
git clone https://github.com/monochrome-music/monochrome.git
cd monochrome
Install dependencies:
bun install
# or
npm install # NPM is included with Node.js
Start the development server:
bun run dev
# or
npm run dev
Open your browser:
Navigate to http://localhost:5173/
bun run build
# or
npm run build
| Shortcut | Action |
|---|---|
Space | Play / Pause |
→ | Seek forward 10s |
← | Seek backward 10s |
Shift + → | Next track |
Shift + ← | Previous track |
↑ | Volume up |
↓ | Volume down |
M | Mute / Unmute |
S | Toggle shuffle |
R | Toggle repeat |
Q | Open queue |
L | Toggle lyrics |
/ | Focus search |
Esc | Close modals |
[ | Previous visualizer preset |
] | Next visualizer preset |
\ | Toggle visualizer auto-cycle |
Ctrl + K | Command Palette |
To sync your library, history, and playlists across devices:
We welcome contributions from the community! Please see our Contributing Guide for:
Made with ❤️ by the Monochrome team
443 followers · starred Mar 2026
2,540 followers · starred Feb 2026
17 followers · starred Mar 2026
122 followers · starred Feb 2026
Stream and download millions of Hi-Res FLACs, unreleased songs and music videos, all for free on Monochrome.
See the codeAn open-source, privacy-respecting, ad-free music app.
Website - Donate - Features - Usage - Self-Hosting - Contributing
Monochrome is an open-source, privacy-respecting, ad-free web music player. It provides a beautiful, minimalist interface for streaming high-quality music without the clutter of traditional streaming platforms.
Our Recommended way to use monochrome is through our official instance:
For alternative instances, check INSTANCES.md.
NOTE: Accounts will not work on self-hosted instances. Our Appwrite authentication system only allows authorized domains.
We had to heavily customize the authentication system and write several custom scripts to support features like SMTP and Google OAuth (which are currently bugged in Appwrite). Because of this, we can no longer provide a self-hostable accounts system.
[!WARNING] You will not be able to stream music after self-hosting and placing the website on a domain. Our API is configured to only accept official instances of Monochrome so you can only stream music on localhost after self-hosting. However, if you have a working and paid HiFi API endpoint then Settings > Instances > Turn on Dev Mode > Place your endpoint there.
git clone https://github.com/monochrome-music/monochrome.git
cd monochrome/docker
docker compose up -d
Visit http://localhost:3000
Visit http://<tailscale_server_hostname_or_ip>:3000
By default, the app uses Vite preview, which restricts access to localhost.
To allow access over Tailscale:
Open vite.config.js
Uncomment and configure the preview section:
preview: {
host: true,
allowedHosts: ['<your_tailscale_hostname>'], // e.g. pi5.tailf5f622.ts.net
},
docker compose down
docker compose up -d
For development mode and advanced setups, see DOCKER.md.
Monochrome requests an Apple Music developer token from https://am-mint.binimum.org/token in the browser and caches
it locally until the JWT expires. Apple Music supplies catalog ordering and autocomplete suggestions; when token minting,
Apple's API, or CORS is unavailable, Monochrome automatically uses its existing search ordering.
When Apple exposes editorial motion artwork for a matched album, Monochrome also uses its square HLS video cover on album and now-playing surfaces, with the static cover retained as the fallback.
The current PocketBase collection schema is stored in database/pb_schema.json. Import this schema into a fresh PocketBase instance when setting up account data storage.
Clone the repository:
git clone https://github.com/monochrome-music/monochrome.git
cd monochrome
Install dependencies:
bun install
# or
npm install # NPM is included with Node.js
Start the development server:
bun run dev
# or
npm run dev
Open your browser:
Navigate to http://localhost:5173/
bun run build
# or
npm run build
| Shortcut | Action |
|---|---|
Space | Play / Pause |
→ | Seek forward 10s |
← | Seek backward 10s |
Shift + → | Next track |
Shift + ← | Previous track |
↑ | Volume up |
↓ | Volume down |
M | Mute / Unmute |
S | Toggle shuffle |
R | Toggle repeat |
Q | Open queue |
L | Toggle lyrics |
/ | Focus search |
Esc | Close modals |
[ | Previous visualizer preset |
] | Next visualizer preset |
\ | Toggle visualizer auto-cycle |
Ctrl + K | Command Palette |
To sync your library, history, and playlists across devices:
We welcome contributions from the community! Please see our Contributing Guide for:
Made with ❤️ by the Monochrome team
443 followers · starred Mar 2026
2,540 followers · starred Feb 2026
17 followers · starred Mar 2026
122 followers · starred Feb 2026