The software was originally produced as a media center application named Xbox Media Center (abbreviated as XBMC) for the original Xbox game console,[5][6][15] and was later made available under the name Kodi (formerly XBMC) as a native application for Android, Linux, BSD, Mac OS X, iOS, and Microsoft Windows based operating systems.[16] It is also available as a standalone version referred to as Kodibuntu.[17][18][19]

Kodi supports most common audio, video, and image formats, playlists, audio visualizations, slideshows, weather forecasts reporting, and third-party plugins. It is network-capable (internet and home network shares). Unlike other media center applications such as Windows Media Center, MediaPortal and MythTV, Kodi does not include its own internal digital TV-tuner code for Live TV or DVR/PVR recording functionality, as instead it acts as a unified DVR/PVR front-end with an EPG TV-Guide GUI interface which, via a common API interface, abstracts and supports multiple back-ends via PVR client add-ons from third parties, with those running either locally on the same machine or over the network.[4][10][13][16][24][25]

Plug-ins, using the Python programming language, expand Kodi to include features such as television program guides, YouTube, Hulu, Netflix, Veoh, online movie trailer support, and Pandora Radio and podcast streaming. Kodi also functions as a gaming platform on any operating system, allowing users to play mini-games developed with Python.[4][10][16][26][27][28]

Kodi source code is distributed as open source under the GNU General Public License (GPL),[16] it is sponsored via the tax-exempt registered non-profit US organization, XBMC Foundation, and is developed by a global free software community of unpaid volunteers.[27][28]

Even though the original XBMC project no longer develops or supports XBMC for the Xbox, XBMC on the Xbox is still available via the third-party developer spin-off project "XBMC4Xbox", which forked the Xbox version of the software and completely took over the development and support of XBMC for the old Xbox. The ending of Xbox support by the original project was also the reason that it was officially renamed to simply "XBMC" from the old "Xbox Media Center" name, and why it later was renamed again to "Kodi".[29][30][31][32] The Xbox version of XBMC had the ability to launch console games, and homebrew applications such as emulators. Since the XBMC for Xbox version was never distributed, endorsed, or supported by Microsoft, it always required a modchip or softmod exploit to run on the Xbox game-console.[5][6][15][16]

When software decoding of a Full HD 1080p high-definition and high bit-rate video is performed by the system CPU, a dual-core 2 GHz or faster CPU is required in order to allow for perfectly smooth playback without dropping frames or giving playback a jerky appearance. Kodi can however offload most of the video decoding process onto graphics hardware controller that supports one of the following types of hardware-accelerated video decoding:[33] Intel's VAAPI, Nvidia's VDPAU, AMD's XvBA, Microsoft's DXVA, Apple's VDADecoder/VideoToolBox, OpenMAX, Broadcom Crystal HD,[34][35]AMLogic 8726-Mx VPU,[36]Freescale's i.MX6x series VPU, and Allwinner's CedarX/CedarV VPU.[37] By taking advantage of such hardware-accelerated video decoding, XBMC can play back most videos on many inexpensive, low-power systems as long as it contains a supported VPU or GPU.

Kodi includes full internationalization and localization support with translations to many different languages by default, with its language files translated to over 74 languages to date.[2] Kodi's structure is such that if the language is not available, or not up-to-date, it can be made by editing simple strings in an XML-file, which can then be submitted to XBMC's project management and bug tracking system tool for use by others, and after version 11.0 XBMC switched to using GetText PO (Portable Object) formatted files for more easily handled translator translations using Transifex web-based translation platform with online crowd-sourced translation services.[38] The latest version of XBMC currently supports over 74 languages.[39][40]

Kodi features several open APIs to enable third-party developers to create capabilities which extend Kodi with a multitude of addons, such as audio and video streaming plugins for online sources, widget scripts, skins/themes, visualizations, screensavers, web scrapers, weather forecasts, web interfaces, and more. Kodi developers encourage users to make and submit their own addons to add additional media content and value-added services accessible from within Kodi.

Kodi/XBMC features, since version 10.0 (codename: "Dharma"), an Addons Framework architecture and Addons Manager GUI client that connects to a decentralizeddigital distribution service platform that serves add-on apps and plug-ins which among other things provide online content to Kodi, the "Addons Manager" (or "Addons Browser") inside Kodi allows users to browse and download new addons directly from Kodi's GUI.

Many of these online content sources are in over-the-top content high definition services and use video streaming sites, such as Adobe Flash based content. Kodi has extensibility and integration with online sources for both free and premium streaming content, and offers content from everything from commercial video, to free educational programming, and media from individuals and small businesses.

Kodi has the built-in optional function to automatically download metadata information, cover art and other related media artwork online through its web scrapers that looks for media in the user's audio / video folders and their sub-directories. These "scrapers" are used as importers to obtain detailed information from various Internet resources about movies and television shows. It can get synopses, reviews, movie posters, titles, genre classification, and other similar data. XBMCGUI then provides a rich display for audio and video files that the scrapers have identified.

More recently http://fanart.tv has been added to the list of information sources[42] and XBMC can use it to retrieve logos, backgrounds, CDs with transparent backgrounds, album covers and banners among other image types for music artists, TV shows and Movies, the popularity of which contributed to the Frodo release of XBMC being able to handle new image types.

Like the majority of most applications that originated from a 'homebrew' scene, modification and customization of the interface using skins is very popular among Kodi users, with literally hundreds of skins and themes having been released for XBMC since its very first conception. The Kodi skinning engine's flexibility is also advantageous to third parties wanting to create derivative works, as it facilitates rebranding the environment and making deeper changes to the look and feel of the user interface.

The skins "Confluence" and "Touch" are the two official default for; Kodi with an ever evolving variance of "Confluence" being the default set-top box style skin designed for large screen televisions and displays since XBMC version 9.11, and "Touch" which introduced with XBMC version 11.0 being design for small screen devices with touchscreen displays, such as iPad tablets. Previously "Project Mayhem" was the default before XBMC version 9.11, this skin is now in its third version, commonly known as "PM3.HD" (PM III High-Definition).[13]

Users can also create their own skin (or simply modify an existing skin) and share it with others via public websites that are used for Kodi skin trading and development.[43] Many such third-party skins exist that are well maintained by the community, and while some skins are originals with unique designs, most initially begin as a clone or an exact replica of other multimedia software interfaces, such as Apple Front Row, Windows Media Center Edition (MCE), MediaPortal, Wii Channel Menu (Xii), Xbox 360 interface, and others.[12]

Web Interface addons for Kodi normally allow browsing a media library remotely, to handle music playlists from a computer instead of television. Others allow remotely controlling the navigation of XBMC like a remote for remote controlling of an installed and concurrently active Kodi session running on a computer if it runs on an internet tablet or similar device with a touch interface. And yet other still acts like a media manager to allow modifying metadata and artwork in XBMC's video and music libraries.

Kodi has a "My Programs" section which is meant to function as an application launcher for third-party software such as computer games and video game emulators, all from a GUI with thumbnail and different listings options. However, while this feature was fully functioning on the Xbox version of XBMC, it is still in its infant stage on Linux, Mac OS X, and Windows, thus currently requiring third-party launcher plugins to function properly.[15]

PVR backend can either be networked DVR set-top box hardware or PC-based digital video recorder software which can run on the same computer or other computers on the same network. PVR software and hardware is available which can turn computers or appliances running Linux, Mac OS X, Microsoft Windows, and Android devices into DVRs.[46]

PVR Client Addons are available for many PVR software and hardware such as Argus TV, DVBLink, DVBLogic, DVBViewer, ForTheRecord, Tvheadend, MediaPortal, MythTV, NextPVR (formerly GB-PVR), VDR, Windows Media Center, and Enigma2-based DVR set-top boxes such as Dreambox, DBox2, and Vu+.,[47] as well as PVR Client Addons for direct LAN connection to Network Attached TV-Tuners such as HDHomeRun, PCTV Systems Broadway, VBox Home TV Gateway, and Njoy Digital AnySee N7 DVB-S2 Network-Tuner.[48] There is also a PVR Client Addon for the internet-based television provider FilmOn (FilmOn.TV Networks), as well as a simple PVR client addon for IPTV in general.

Kodi can be used to play/view all common multimedia formats through its native clients and parsers. It can decode these audio and video formats in software or hardware, and optionally pass-through AC3/DTS audio, or encode to AC3 in real time from movies directly to S/PDIF digital output to an external audio-amplifier/receiver for decoding.[4][16]

The Video Library, one of the Kodi metadata databases, is a key feature of Kodi. It allows the organization of video content by information associated with the video files (e.g. movies and recorded TV Shows) themselves. This information can be obtained in various ways, like through scrapers (i.e. web scraping sites like IMDb, TheMovieDB, TheTVDB, etc.), and nfo files. Automatically downloading and displaying movie posters and fan art backdrops as background wallpapers. The Library Mode view allows users to browse their video content by categories; Genre, Title, Year, Actors and Directors.[4][13]

Kodi uses one multimedia video player 'core' for video-playback. This video-player 'core' for video-playback is an in-house developed cross-platform media player, "DVDPlayer", originally designed to play back DVD-Video movies, and this includes support native for DVD-menus, (based on the free open source libraries code libdvdcss and libdvdnav). This FFmpeg based video-player 'core' today supports all widespread mainstream formats. One relatively unusual feature of this DVD-player core is the capability to on-the-fly pause and play DVD-Video movies that are stored in ISO and IMG DVD-images or DVD-Video (IFO/VOB/BUP) images (even directly from uncompressed RAR and ZIP archives), from either local harddrive storage or network-share storage.[4][10][13]

The Music Library, one of the Kodi metadata databases, is another key feature of Kodi. It allows the organization of a music collection to allow searching, and creating smart playlists by information stored in music file ID meta tags, like title, artist, album, production year, genre, and popularity. Automatically downloading and displaying album covers and fan art backdrops as background wallpapers.[4][13]

For music playback, Kodi includes its own in-house developed audio-player, "PAPlayer" (which stands for "Psycho-Acoustic Audio Player"), and this audio-player core's most notable features are on-the-fly resampling of the audio frequency, gapless playback, crossfading, ReplayGain, cue sheet and Ogg Chapter support. The "PAPlayer" audio-player handles a very large variety of audio file-formats, and it also supports most different tagging standards. Kodi also has support for most popular karaoke computer file formats, and is able to play and display timed song lyrics graphics/text from CD+G, LRC, and KAR files.[16]

Development has been working on new core features which integrates a built-in Games Manager and Game Launcher front-end GUI with a Games Library, and Game Console Emulator API into Kodi. The code for all is currently actively being developed in a separate branch and is not expected to make it into Kodi mainline tree until version 15 at the earliest.[55]

Once merged into mainline the integrated Games Manager will add a new unified Games Manager Library and GUI front-end launcher with online metadata web scraping support for information about the games. It also introduces Game Addons as new type of addons with just-in-time emulator installation. Adding a Games Library for Game Metadata, exposing info (current level, number of lives, number of coins earned, etc.) to GUI, as well as extending the Addon API to support Game Client Addons, supporting Kodi's VFS (Virtual File System). In addition to a Joystick (and Gamepad) abstraction layer for common joystick API and joystick input clients.[56][57]

Under active development is also "RetroPlayer" Video Game Console Emulator (ROMs) interface supporting the libretro API and emulator cores (from the RetroArch project, which is its reference front-end). Libretro itself is a modular multi-system game/emulator system that is designed to be fast, lightweight, and portable.[58]

There are many software applications for mobile devices available for and associated with Kodi. Some of these mobile apps just works as simple remote controls, while others functions as more advanced second screen companion apps, offering additional information about what you are viewing or listening to on Kodi. Additional information such as metadata about movie actors and music artists, with links to other works available from those persons in your collection or online.

XBMC Remote for Android and XBMC Remote for iOS are free and open source official apps for mobile devices released by Team-Kodi/Team-XBMC on Google Play for Android devices and the App Store for iOS Devices, such as iPhone, iPad, and iPod Touch. These applications act as a second screen[60] and remote control solution which allows for fully browsing the media library and for remote controlling of an installed and concurrently active XBMC session running on a computer via the handheld touchscreen user interface of these device.[61][62]

Several third-party developers have also released multiple other unofficial Kodi remote control apps for Android, BlackBerry, Symbian, Windows Mobile, and Windows Phone devices, as well Apple iOS. Some of these remote control apps are made specifically for controlling Kodi, while some universal remote control apps are capable of controlling many different media center and media player applications, and some of these third-party remote apps cost money while others are free.[63]

Due to the dated hardware of the first-generation Xbox game console, that Kodi/XBMC was at first initially designed for, and a desire to expand the project's end-user and developer-base many official ports of XBMC to computer operating-systems and hardware platforms now exist. Through the processing power of modern computer hardware, XBMC is able to decode high-definition video up to and beyond 1080p resolutions, bypassing hardware limitations of the Xbox version of XBMC.

However in the latest official release of Kodi/XBMC there is hardware accelerated video decoding for DXVA, VDPAU, VA-API GPU hardware video decoding, as well as hardware accelerated video decoding via ARM NEON, and OpenMAX, Broadcom Crystal HD.[10][64] The source code for XBMC is actively updated by developers in a public Git repository, which may contain features and functionality not yet incorporated into the most recent 'stable' releases.

Kodibuntu (formerly XBMCbuntu) is a free Ubuntu-based Linux distribution with Kodi (formerly XBMC) for Linux already installed and pre-configured, providing a complete packaged media center software suite for all IA-32/x86-based personal computers. Kodibuntu uses Kodi software for all media playback and is primarily designed for bare-metal installations to achieve instant-on type boot to achieve a set-top box experience on an HTPC. It replaces XBMCbuntu that in turn replaced XBMC Live, which was formerly the official Live CD (Linux) distribution.[65]

Kodibuntu operating-system is based on the Lubuntu Kodibuntu, an Ubuntu Linux fork that is "lighter, less resource hungry and more energy-efficient" than the standard Ubuntu desktop distributions. The Microsoft MCE Remote and IR-receiver dongle for Windows Media Center works with Kodibuntu directly out of the box, which mean that Windows Media Center users with these can try out the Kodibuntu without requiring any additional hardware.[17][18][19]

Following the principles of Myth TV distributions and GeeXboX, Kodibuntu is designed to simplify a permanent installation of Kodi onto a computer to be used as a dedicated home theater PC in the living-room, as such the user can directly install XBMC from the bootable CD to either a USB flash drive or to an internal hard disk drive as it comes with a complete instant-on (Linux kernel-based) embedded operating system. When installed onto a USB flash drive or internal hard disk drive, Kodibuntu has the ability to save settings and make updates to XBMC and the operating-system back onto the USB flash drive or hard disk drive that it is installed onto.

Kodi for Linux (formerly XBMC for Linux) is primarily developed for Ubuntu Linux and Kodi's developers' own Kodibuntu (formerly XBMCbuntu). Third-party packages for most other Linux distributions are however available, and it is also possible to compile XBMC Media Center from scratch for any Linux distribution as long as the prerequired dependency libraries are installed first. Hardware accelerated video decoding is achieved via the VDPAU API on Nvidia's GPUs, and via the VAAPI API for AMD/ATI Radeon, S3 Graphics, and Intel's newer Integrated Graphics Processors, as well as hardware accelerated video decoding via OpenMAX, ARM NEON, Broadcom Crystal HD on systems with supporting hardware.[64] Development version of Kodi/XBMC for Linux is available at Launchpad as PPA (Personal Package Archive) for the standard Ubuntu Desktop version 8.04 and later, as well as DEB packages for Debian.

Kodi for OS X(formerly XBMC for Mac) runs natively on Mac OS X Tiger and later, as well as on the Apple TV. 1080p playback can be achieved on Apple computers either via software decoding on the CPU if it is powerful enough, or by hardware accelerated video decoding for hardware supporting Apple's VDA API, or video decoders such as the Broadcom Crystal HD.[64]

1080p playback on the first-generation Apple TV (a.k.a. "ATV1") can only be achieved by hardware accelerated video decoding via Broadcom Crystal HD; the user must replace the ATV's internal WiFi adapter with a Broadcom Crystal HD PCI Express Mini (mini-PCIe) card in order to activate this functionality.[64]

Kodi for Windows (formerly XBMC for Windowsv) runs natively on Windows Vista, Windows 7, and Windows 8, it is a 32-bit application but runs on 64-bit Windows and hardware as well, however it is not yet optimized for that architecture so there is no performance gain when running on 64-bit Windows. 1080p playback can be achieved on Windows based computers either via software decoding on the CPU if it's powerful enough, or by hardware accelerated video decoding.

Hardware video decoding via DirectX Video Acceleration[66][67] is now supported although this enhancement currently only runs on Windows 7 since it utilizes the DXVA 2.0 API which is not supported in Windows XP.[68]

Kodi for iOS (formerly XBMC for iOS), which is a full port of Kodi to Apple's iOS operating-system, was first announced and released publicly on 20 January 2011. It supports both 720p and 1080p hardware accelerated video decoding of H.264 videos, and is compatible with all Apple's iDevices that uses Apple A4 or Apple A5 (ARM-based) processors with a jailbroken iOS operating-system.[69]

Kodi for Android (formerly XBMC for Android) is a full port of the complete Kodi/XBMC application to Google's Android operating-system, officially compatible with Android 4.0 (Ice Cream Sandwich) and later versions supporting API Level 14.[70] was first announced and its source code released publicly on 13 June 2012. This is a full port of Kodi's C++ and C source code with all its dependencies to Android with a build-system that was designed to handle multiple processor architectures, like ARM, MIPS, and x86 with the Android NDK (Native Development Kit for Android) without using a single line of Java, and the XBMC.APK is running natively under Android as a NativeActivity application.[71] Hardware accelerated video decoding on Android is currently only officially available for some specific hardware platforms, such as the Amlogic SoC based Pivos XIOS series which have been used as the reference hardware platform during the development so far.[72] XBMC source code must be compiled with Google's official Android NDK revision 8e or later, and be built for the android-14 toolchain (Android API Level 14), which Kodi for Android code currently requires to compile correctly but is not supported by Google's Android NDK. This is also the real reason why XBMC for Android does not support the original Google TV, since the Android NDK was not made available for older Google TV devices it means that Kodi/XBMC could not be compiled for it today.[73]

XBMC 9.04 (codename: Babylon) point-release version of XBMC for Xbox, now obsolete, was released on 6 May 2009 as the last official version of XBMC for Xbox. The original developers of XBMC have since issued a statement stating they will no longer develop or support XBMC for Xbox as part of the XBMC project as of 27 May 2010. The development of XBMC for Xbox ended because the focus for all Team XBMC developers has completely shifted to the Linux, Mac, and Windows versions of XBMC instead.

Even though the original XBMC project no longer develops or supports XBMC for the Xbox, an XBMC version for the Xbox is still available via the third-party developer spin-off project "XBMC4Xbox", who have completely taken over the development and support of XBMC for the original Xbox.[29][30][31][32]

XBMC for Xbox was never an authorized/signed Microsoft product, therefore a modification of the Xbox is required in order to run XBMC on an Xbox game-console. XBMC for Xbox can be run as an application (like any Xbox game), or as a dashboard that appears directly when the Xbox is turned on.[5][6][15][16] Since XBMC for Xbox was part of an open source software program, its development source code was stored on a publicly accessible subversion repository. Accordingly, unofficial executable builds from the subversion repository are often released by third parties on sites unaffiliated with the official XBMC project.[6][15]

Below is a list of third-party companies who sell hardware bundled with Kodi or XBMC software pre-install, or sell uninstalled systems that specifically claim to be Kodi or XBMC-compatible. Many of these third-party companies help submit bug fixes and new features back upstream to the original Kodi/XBMC project.[74]

AIRIS Telebision, sold by Telebision in Spain and designed specifically for the Spanish market, is a nettop based on Nvidia Ion chipset, preinstalled Ubuntu base with XBMC for Linux and a customized AEON skin and Spanish plugins. Other than the modified skin, what is unique with the AIRIS Telebision's XBMC build is that it comes with a digital distribution service platform that they call their "App Store" which lets users download new Spanish plugins and updates for existing plugins. Telebision also lets users download a Live CD version of their software as freeware, which lets users install their Telebision distribution on any Nvidia Ion based computer.

Lucida TV II, made by LUCIDQ inc, is a nettop based on Nvidia Ion chipset which can be ordered with Xubuntu and XBMC software installed.

Pulse-Eight Limited sells both custom and off the shelf hardware solutions primarily designed for Kodi/XBMC, such as remote controls, HTPC systems and accessories, including a custom HTPC PVR set-top-box pre-installed with XBMC that they call "PulseBox"[80] Pulse-Eight also offers free performance tuned embedded versions of XBMC that they call "Pulse" which is based on OpenELEC and a custom PVR-build of XBMC that is meant to run on your dedicated HTPC system.[81]

Zotac's ZBOX and MAG series of small Mini-PCs are nettop's based on Intel, AMD, or Nvidia graphics, and they are all sold in both as complete ready-to-use computer and as barebone computers (without memory and hard drive). Zotac Zbox ID33, ID34, ID81, ID80 and AD04 are all specifically marketed towards the HTPC market, with some coming with slot-loading Blu-ray Disc optical disc drive, and some with a remote control.[85]

The mintBox by the Linux Mint team is an OEM version of the Israeli company CompuLab's fit-PC, which comes preinstalled with Linux Mint open source operating-system and software, MATE (desktop environment), and XBMC. Available in two fanless models, both with AMD APUs, HDMI output port, eight USB slots, two eSATA ports, Gigabit Ethernet, 802.11 b/g/n Wi-Fi, built-in Bluetooth, and an infrared media center remote control.[86]

Marusys MS630S and MS850S are high-definition PVR-ready set-top-boxes with the ability to run Linux kernel-based media players like XBMC, and Marusys is advertising these two devices as compatible with XBMC.[98]

Myka ION is a fanless Nvidia Ion based set-top device designed to bring internet television and media stored on the home network to the living-room, it comes pre-installed with XBMC Media Center, Boxee, and Hulu Desktop as applications that can be started from the main menu.[99]

The MK-X1 by Modified Konstructs is an Nvidia Ion based set-top device based on Acer Aspire Revo that comes pre-loaded with XBMC, and the device has a recommended retail price of $300(US).[100]

Neuros LINK made by Neuros Technology is an open Ubuntu-based set-top device and media extender designed to bring internet television and other video to the television, it comes pre-installed with XBMC Media Center.[10]

BryteWerks Model One Projector is a 1080p HD digital video projector designed for home cinema use, it has an integrated Home Theater PC running a custom version of XBMC. In addition it features a remote control, as well as a 720p 8.9-inch touch screen panel display on the back of the projector that allows you to control the system. It also has a built-in Wi-Fi and Ethernet adapters, as well as a slot-loaded Blu-ray Disc player, and includes a 500 GB solid-state drive and an additional internal 2 TB hard disk drive can be added.[101]

The Primus by Mediaimpact Technologies is a Linux Mint based Media Center and Set-Top-Box that integrates MythTV, Netflix Desktop, Hulu Desktop, and Steam Gaming through Kodi for a seamless Home Entertainment system ready for the living room. Comes complete with SMK-Link remote control.[102]

Similar embedded Linux distributions to OpenELEC/GeeXboX are the professionally made E2BMC and OpenPCTV which are commercial Kodi/XBMC-based software platform for DVR/PVR set-top boxes, with both being designed as a hybrid integration between Kodi media center software and Dreambox's Enigma2 PVR software scripts.[110][111][112][113][114][115][116][117]

Another example is XBMC4Xbox, which is a third-party developer spin-off project of XBMC, with still active development and support of the Xbox platform. This project was created as a fork of XBMC as a separate project to continue having a version of XBMC for the Xbox hardware platform. It was not started by official members of the official XBMC project, nor will it be supported by the official Team Kodi in any way. It started when support for the Xbox branch was officially dropped by Team XBMC, which was announced on 27 May 2010.[29]

Kodi is a non-profit and free software community driven open-source software project that is developed only by volunteers in their spare time without any monetary gain. XBMC Foundation and the team of developers leading the development of Kodi/XBMC, "Team-Kodi"/"Team-XBMC", encourage anyone and everyone to submit their own source code patches for new features and functions, improve existing ones, or fix bugs to the Kodi/XBMC project.

The online user manual is wiki-based and community driven, and it also works as a basic developers guide for getting a good overview of Kodi's architecture. However, as with most non-profit software projects, to delve deeper into programming, looking at the actual source code and the comments in that code is needed.[6]

Kodi is a cross-platform software application whose core is mainly programmed in C++. Kodi uses OpenGL (or OpenGL ES) graphics rendering under Kodi for both Linux and Mac OS X, while Kodi for Windows uses Microsoft DirectX multimedia framework and Direct3D rendering, as the Xbox version of XBMC did. Some of Kodi's own libraries, as well as many third-party libraries that Kodi depends on, are written in the C programming-language, instead of C++ as Kodi's core, but they are then mostly used with a C++ wrapper and, through Kodi's core monolithic nature, are loaded via a dynamic linkerloader for on-demand loading and unloading at run time.[10][33] Kodi also still partially uses the SDL (Simple DirectMedia Layer) multimedia framework for input on Linux, but its developers are working on completely removing that small remaining dependency on SDL.

Because of Kodi/XBMC's origin with the resource constraints on the hardware and environment of the first-generation Xbox game-console platform, all software development of Kodi/XBMC has always been focused on reserving the limited resources that existed on embedded system hardware, like the original Xbox (which was only a 733 MHz Intel Pentium III and 64 MB of RAM in total as shared memory), as well as the still relatively low resources of embedded system devices today, of which the main hindrance has always been the amount of available system RAM and graphics memory at any one time. Due to this it means that Kodi/XBMC is purposely programmed to be very resource and power efficient and can therefore run on very low-end and relatively non-expensive hardware, especially when compared to other media center software design for HTPC use.[6]

But because of its origins from the Xbox game-console, Kodi/XBMC's legacy graphics renderer still runs in a more game-loop rendering environment rather than using a fully event-driven and on-demand rendering, meaning that it is almost constantly re-drawing the GUI and refreshing the frames as fast as it can, even when nothing is changing on the screen. This results in very high CPU and high GPU usage, which can be observed on embedded systems and low-end machines, and hence cause high temperatures, high fan activity, and high power consumption unless capped at a maximum frame per second configuration for that specific platform build. Work is however constantly ongoing by the developers to make Kodi/XBMC run using much fewer resources on low-power and embedded systems, which will indirectly benefit all non-embedded systems as well.[33] Efficiency improvements in this area are however being worked on in order to move away from that old style game-loop environment in order to reduce high CPU/GPU usage by the GUI, especially as XBMC usage on embedded platforms with limited CPU/GPU resources keeps growing in popularity. XBMC 11.0 (Eden) introduced Dirty-Regions rendering option for texture support to the XBMC skinning engine as an option,[118] and XBMC 12.0 (Frodo) enabled Dirty Regions rendering to redraw the whole screen on a single dirty region by default on all platforms.[118][119] Work is also in progress for XBMC 14.0 to introduce an abstracted scene-graph deferred rendering for GUI renderer abstraction.[120]

Kodi for Linux supports toolchain building systems for embedded development such as Yocto, Buildroot (uClibc), and the Linaro set of Makefiles and patches for easing the generation of cross-compilation toolchains as well as the creation of a file system on embedded Linux systems across a wide range of hardware, kernel platforms, and CPU architectures (x86, x86-64, ARM, MIPS, PowerPC, etc.).

Kodi allows developers to create addons using a built-in Python interpreter (version 2.6 or higher depending on system[127]) and its own WindowXML application framework, which together form an XML-based widget toolkit for which they can extend the capability of Kodi by creating a GUI for widgets. Python widget scripts allow non-developers to themselves create new add-ons for Kodi, using Python.[10]

Kodi/XBMC is noted as having a very flexible GUI toolkit and robust framework for its GUI. With its underlying complex graphical design and layoutlibrary (named libGUI in Kodi/XBMC), it provides a simple abstraction layer between the application code and the interface, while allowing extremely flexible dynamic layouts and animations that are easy to work with and makes it possible to create completely unique skins for XBMC.[43] The skin files are written in XAML, using a standard XML base, making theme-skinning and personal customization very accessible.[12]

XBMC won a Lifehacker Awards in 2014 for "Best Media Player" in their entertainment selection.[128] XBMC won two SourceForge 2006 Community Choice Awards.[129] In the 2007 Community Choice Awards, XBMC was nominated finalist in six categories.[130] Also in the 2008 Community Choice Awards XBMC won an award for Best Project for Gamers.[131]

XBMC Media Center was the successor to the popular Xbox Media Player (XBMP) software. Xbox Media Player development stopped on 13 December 2003, by which time its successor, XBMC, was ready for its debut, renamed as it was growing out of its 'player' name and into a 'center' for media playback. The first stable release of XBMC was on 29 June 2004, with the official release of XboxMediaCenter 1.0.0. This announcement also encouraged everyone using XBMP or XBMC Beta release to update, as all support for those previous versions would be dropped, and they would only officially support version 1.0.0. Not featured in XBMP, the addition of embedded Python was given the ability to draw interface elements in the GUI, and allowed user and community generated scripts to be executed within the XBMC environment.[6]

With the release of 1.0.0 in the middle of 2004, work continued on the XBMC project to add more features, such as support for iTunes features like DAAP and Smart Playlists, as well as lots of improvements and fixes. The second stable release of XBMC, 1.1.0, was released on 18 October 2004. This release included support for more media types, file types, container formats, as well as video playback of Nullsoft streaming videos and karaoke support (CD-G).[6]

After two years of heavy development, XBMC announced a stable point final release of XBMC 2.0.0 on 29 September 2006. Even more features were packed into the new version with the addition of RAR and zip archive support, a brand new player interface with support for multiple players. Such players include PAPlayer, the new audio/music player with crossfade, gapless playback and ReplayGain support, and the new DVDPlayer with support for menu and navigation support as well as ISO/img image parsing. Prior to this point release, XBMC just used a modified fork of MPlayer for all of its media needs, so this was a big step forward. Support for iTunes 6.x DAAP, and Upnp Clients for streaming was also added. A reworked Skinning Engine was included in this release to provide a more powerful way to change the appearance of XBMC. The last two features include read-only support for FAT12/16/32 formatted USB Mass Storage devices, and a "skinnable" 3D visualizer.

The release of XBMC 2.0.1 on 12 November 2006 contained numerous fixes for bugs that made it through the 2.0.0 release. This also marked the change from CVS to SVN (Subversion) for the development tree.

On 29 May 2007, the team behind XBMC put out a call for developers interested in porting XBMC to the Linux operating system. Since a few developers on Team-XBMC had already begun porting parts of XBMC over to Linux using SDL and OpenGL as a replacement for DirectX, which XBMC was using heavily on the Xbox version of XBMC.[132][133]

Development on the Git codebase is continuing and the versioning scheme has been changed to reflect the release year and month, i.e. 8.10, 9.04, 9.11, 10.05, etc.

On 27 May 2010, the team behind XBMC announced the splitting of the Xbox branch into a new project; "XBMC4Xbox" which will continue the development and support of XBMC for the old Xbox hardware platform as a separate project, with the original XBMC project no longer offering any support for the Xbox.[29][30][31][32]

The "XBMC Foundation", the organization behind the Kodi and XBMC projects, is legally represented by the Software Freedom Law Center (SFLC), which assists the Kodi/XBMC project and its developers in legal matters such as copyright, trademark, and branding questions, as well as economic issues such as handling donations and sponsors that help the project with expenses for dedicated hosting service and activities such as going to developer conferences, trade fairs and computer expos to tech demo Kodi, meeting with potential new developers, gain publicity to attract additional users, and more.[149][150][151][152]

Kodi's source code for all its supported platforms is made publicly available by Team Kodi under the open sourceGNU General Public License Version 2 license. The group currently maintains a Gitrepository for this source code. The XBMC Foundation and Team-Kodi developers take no position as to whether any intellectual property rights exist in the Kodi core source code, the third-party code libraries it depends upon, or any addons or plugins developed for Kodi. As such, Kodi is provided as is in whatever condition it exists.