Kodi (xbmc/xbmc): a C++ media center you build yourself
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
At a glance
- What is it?
- Kodi is the XBMC Foundation's GPLv2 home theater application, written mainly in C++ with Python and XML add-ons. This article covers what it does, how to build it from source, and where it stops being the right tool.
- Who is it for?
- Adopt Kodi if you have local or network media and a device you control, and if you are willing to read docs/README.md before running cmake, because the build steps differ per platform and the repository does not ship a one-line installer. Do not adopt it if you need a managed service with a support contract, or if your media lives only in a DRM-protected streaming account, since the README describes playback of your own files and network streams, not subscription catalogues.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Kodi solves, and who actually needs it
The problem is a shelf of files with no interface. Kodi points at a directory or a network share, scans it, and builds a library with box covers, descriptions and fanart, as the README puts it. That library is the product. Everything else, the playback engine, the skins, the remote-friendly layout, exists to make that library usable from a couch rather than a file manager.
The audience is narrower than the download numbers suggest. Kodi is for people who already own the media: ripped discs, recordings, files on a NAS. It is also for people who want to extend a player, because add-ons are written in Python and XML, and the README treats that extensibility as the reason the project exists. It is not for someone who wants a streaming subscription client. The README talks about streaming multimedia from anywhere in the house or from the internet using practically any protocol, which is about reaching your own sources, not about licensed catalogues.
The project itself is unusual in structure. It began in 2003, is run by the XBMC Foundation as a non-profit, and the README states that more than 500 developers and 100-plus translators have contributed. There is no paid support line, and the README says so plainly: no highly paid developers, no support staff on the phones. That shapes everything about how you get help, which is the forum and the wiki.
How the C++ core, Python add-ons and skins fit together
The repository layout tells you most of the architecture. The xbmc/ directory holds the core application in C++, CMakeLists.txt at the root drives the build, and addons/, system/ and media/ carry the pieces that ship alongside the binary. The project/ directory holds the per-platform build projects, and docs/ holds the build documentation the README points to.
The extension model splits cleanly. Add-ons are Python and XML, and the README says the codebase itself is mainly C++ with small parts in other languages. Skins are XML too, which is why the README calls the skinning engine out as a defining feature: the interface is data, not compiled behaviour, so a skin can reorganise the whole UI without touching the core.
The data flow is a scan. You point Kodi at media, it reads filenames and metadata, matches them against scrapers, and writes a library database. From then on the library, not the filesystem, is what the UI shows. That has a consequence worth stating: if a scraper mismatches a title, the library is wrong until you fix the entry, and a badly organised folder tree produces a badly organised library. Kodi is doing inference, and inference fails on ambiguous names.
Building is a separate concern from using. The README says Kodi uses CMake but that instructions are highly dependent on operating system and target platform, and directs readers to docs/README.md. There is no single configure-and-go path across Android, Linux, BSD, macOS, iOS, tvOS and Windows.
Installing Kodi and pointing it at your first library
The README does not give install commands. It says to head to the downloads section at kodi.tv/download and select your platform, and points to a quick start guide on the wiki. So the honest first step is a download, not a build. The commands below are the source route, which the repository does document through docs/README.md.
Start by cloning the repository. This is the same URL that appears in the README's own links.
git clone https://github.com/xbmc/xbmc.git
cd xbmcKodi uses CMake as its build system. The README is explicit that the exact steps depend on your OS and target platform, so read the platform page in docs/ before configuring:
cmake --version
ls docs/README.mdIf you only want to run Kodi, skip all of the above and use the published build for your platform from kodi.tv/download. The README lists final builds and development builds, and the current development line is 22.0b2-Piers, released on 2026-08-31, following 22.0b1-Piers in June and 22.0a3-Piers in April.
Once it runs, the first real use is a scan. Add your media location as a source, let Kodi read it, and watch the library populate with covers, descriptions and fanart. Expect to correct a few matches by hand if your filenames are inconsistent. If you want to extend it afterwards, the README points to kodi.tv/create-an-addon for add-on development and to the wiki for documentation.
Where Kodi is the wrong tool
Kodi assumes you have files. If your viewing is a DRM-protected subscription, the library scan has nothing to scan, and you are left with a media player that is heavier than the one already on your device. The README's framing is playback of your own audio and video across protocols, not catalogue browsing.
Support is the second boundary. The README states there are no paid developers and no support staff, and that the support process relies on contributors answering questions in the forum. If your organisation needs a named contact and a response time, that is not available here.
Building from source is the third. The README warns that build instructions are highly dependent on OS and target platform, and the repository carries separate build projects per platform. Anyone expecting one command across all of them will be disappointed, and cross-compiling for tvOS or Android is a different exercise from a desktop build.
There is also a legal question the README does not answer. It describes Kodi as free and open source and links a GPLv2 badge, but the repository metadata reports the licence as NOASSERTION, and the LICENSES/ directory exists alongside LICENSE.md. Kodi itself is a player; what you point it at is your responsibility, and the README gives no guidance on that. Anyone who tells you Kodi settles the legality of a source is overreading the documentation.
Kodi against a plain media player or a Plex-style server
The closest comparison in the search data is the one people already make: an XBMC alternative. The real difference is where the library lives.
A plain media player, VLC being the obvious one, plays the file you hand it and forgets. There is no scan, no metadata database, no cover art. It is faster to start and impossible to browse. Kodi's whole value is the opposite trade: an indexing step up front, and a browsable library afterwards. If you never want that step, Kodi is overhead.
A server-based media system such as Plex or Jellyfin splits the roles. The server indexes and transcodes, the client displays, and the library follows you across devices because it lives centrally. Kodi runs the library on the device doing the playback. That means no transcode server to run and no account, but also no shared state: two Kodi installs are two libraries unless you configure a shared database yourself, and the README does not describe that setup.
XBMC old versions in the search data point at the other axis. Kodi is the continuation of XBMC, and the project has been running since 2003 under the XBMC Foundation. Old builds exist, but the README offers no migration path between them, and add-on compatibility across major versions is not documented there. Treat an old build as a frozen system, not a starting point.
Maintenance, releases and the licence question
The repository is not archived and the last push was on 2026-09-20, so the codebase is receiving changes. The release cadence visible in the release list is a beta series: 22.0a3-Piers on 2026-04-07, 22.0b1-Piers on 2026-06-21, 22.0b2-Piers on 2026-08-31. That is an alpha-to-beta progression on a single version line, which tells you the 22 series is still stabilising. Anyone running a beta should expect to move again before it settles.
Upgrade cost depends on how you installed it. If you use a published build, upgrading is a download. If you built from source, every upgrade means repeating a platform-specific build, and the README's warning about OS dependence applies to each one. If you wrote add-ons against the Python API, a major version bump is the moment to check them, and the README does not promise API stability across versions.
On licensing: the README describes Kodi as free and open source and shows a GPLv2 badge, while the repository metadata reports NOASSERTION. The LICENSE.md file and the LICENSES/ directory are both present at the top level. GPLv2, if that is what applies, carries obligations when you distribute a modified version, and those obligations are not summarised in the README. Read LICENSE.md and LICENSES/ yourself, and take advice if you plan to redistribute. This is not legal advice, and the metadata mismatch is exactly the kind of thing to resolve before shipping anything derived from this code.
Editorial conclusion
Adopt Kodi if you have local or network media and a device you control, and if you are willing to read docs/README.md before running cmake, because the build steps differ per platform and the repository does not ship a one-line installer. Do not adopt it if you need a managed service with a support contract, or if your media lives only in a DRM-protected streaming account, since the README describes playback of your own files and network streams, not subscription catalogues. Before committing, verify three things: that a current build exists for your exact platform on the downloads page, that the add-on you depend on is still listed at kodi.tv/addons, and that your hardware decodes the formats you actually store. The licence question is not settled by the README either: the repository carries an SPDX NOASSERTION value while LICENSE.md and the README badge point to GPLv2, so check LICENSES/ and the per-file headers before you redistribute anything.
Frequently asked questions
Does XBMC still work?
XBMC is the former name of the project now called Kodi, and the repository is not archived: the last push was on 2026-09-20 and the 22.0b2-Piers release came out on 2026-08-31. Old XBMC builds are not covered by the README, which points new users to the current downloads page.
What is XBMC now called?
It is called Kodi. The repository lives at xbmc/xbmc and the project describes itself as Kodi Home Theater Software, run by the XBMC Foundation.
Is XBMC legal to use?
The README describes Kodi as free and open source and links a GPLv2 badge, but the repository metadata reports the licence as NOASSERTION and both LICENSE.md and LICENSES/ are present. The README gives no guidance on the legality of the media you point it at.
What is XBMC used for?
It is a home theater and media center application. The README says you point it at your media and it scans and creates a personalized library with box covers, descriptions and fanart, and that it was designed for network playback.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/xbmc-xbmc)