Koito is a modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL
See the codeKoito (小糸) is a Japanese surname. It is also homophonous with the words 恋と (koi to), meaning "and/with love".
Koito is a modern, themeable ListenBrainz-compatible scrobbler for self-hosters who want control over their data and insights into their listening habits. It supports relaying to other compatible scrobblers, so you can try it safely without replacing your current setup.
This project is under active development and still considered "unstable", which means the main branch can be unusable at times, and some breaking changes may occur. If you don't want to replace your current scrobbler with Koito quite yet, you can set up a relay from Koito to another ListenBrainz-compatible scrobbler. This is what I've been doing for the entire development of this app and it hasn't failed me once. Or, you can always use something like multi-scrobbler.
You can view my public instance with my listening data at https://koito.mnrva.dev

See the installation guide, or, if you just want to cut to the chase, use this docker compose file with a minimal configuration:
services:
koito:
image: gabehf/koito:latest
container_name: koito
ports:
- "4110:4110"
volumes:
- ./koito:/etc/koito
restart: unless-stopped
See the data importing guide in the docs.
Before importing, it is recommended you set up any image sources you want to have enabled. You can view the configuration options for image sources in the full list of configuration options.
See the configuration reference in the docs.
There are currently some known issues that I am actively working on, in addition to adding new features. If you want to contribute (especially more and more robust testing) feel free to fork the repository and make a pull request with your changes.
If you have any feature ideas, open a GitHub issue to let me know. I'm sorting through ideas to decide which data visualizations and customization options to add next.
You can also donate money to me, @gabehf, the primary developer, via the "sponsor" or "ko-fi" buttons, and I will spend that money on luxurious trips and fine cuisine in foreign countries, or rent.
More relevant here than any of my other projects...
Not just during development, you can see my complete listening data on my live demo instance.
112 followers · starred Jul 2026
151 followers · starred Jul 2026
95 followers · starred Jan 2026
16 followers · starred Jun 2025
Go
67.4%
TypeScript
31.3%
Koito is a modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL
See the codeKoito (小糸) is a Japanese surname. It is also homophonous with the words 恋と (koi to), meaning "and/with love".
Koito is a modern, themeable ListenBrainz-compatible scrobbler for self-hosters who want control over their data and insights into their listening habits. It supports relaying to other compatible scrobblers, so you can try it safely without replacing your current setup.
This project is under active development and still considered "unstable", which means the main branch can be unusable at times, and some breaking changes may occur. If you don't want to replace your current scrobbler with Koito quite yet, you can set up a relay from Koito to another ListenBrainz-compatible scrobbler. This is what I've been doing for the entire development of this app and it hasn't failed me once. Or, you can always use something like multi-scrobbler.
You can view my public instance with my listening data at https://koito.mnrva.dev

See the installation guide, or, if you just want to cut to the chase, use this docker compose file with a minimal configuration:
services:
koito:
image: gabehf/koito:latest
container_name: koito
ports:
- "4110:4110"
volumes:
- ./koito:/etc/koito
restart: unless-stopped
See the data importing guide in the docs.
Before importing, it is recommended you set up any image sources you want to have enabled. You can view the configuration options for image sources in the full list of configuration options.
See the configuration reference in the docs.
There are currently some known issues that I am actively working on, in addition to adding new features. If you want to contribute (especially more and more robust testing) feel free to fork the repository and make a pull request with your changes.
If you have any feature ideas, open a GitHub issue to let me know. I'm sorting through ideas to decide which data visualizations and customization options to add next.
You can also donate money to me, @gabehf, the primary developer, via the "sponsor" or "ko-fi" buttons, and I will spend that money on luxurious trips and fine cuisine in foreign countries, or rent.
More relevant here than any of my other projects...
Not just during development, you can see my complete listening data on my live demo instance.
112 followers · starred Jul 2026
151 followers · starred Jul 2026
95 followers · starred Jan 2026
16 followers · starred Jun 2025
Go
67.4%
TypeScript
31.3%