KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, file format support, additional graphical control elements, plotting functions, and spell checking, the collection serves as the technological foundation for KDE Plasma and KDE Gear. It is distributed under the GNU Lesser General Public License (LGPL). As of September 2025, the latest stable release is KDE Frameworks 6 (KF6).

Overview KDE Frameworks is based on Qt, which enables a more widespread use of QML, a simpler JavaScript-based declarative programming language, for the design of user interfaces. The graphics rendering engine used by QML allows for more fluid user interfaces across different devices.

Since the split of the KDE Software Compilation into KDE Frameworks 5, KDE Plasma 5 and KDE Applications, each sub-project can pick its own development pace. KDE Frameworks are released on a monthly basis and use Git.

It should be possible to install KDE Frameworks alongside the KDE Platform 4 so apps can use either one.

API and ABI stability Platform releases are those which begin a series (version number X.0). Only these major releases are allowed to break binary compatibility with the predecessor. Releases in the minor series (X.1, X.2, ...) will guarantee binary portability (API & ABI). This means, for instance, that software that was developed for KDE 3.0 will work on all (future) KDE 3 releases; however, an application developed for KDE 2 is not guaranteed to be able to make use of the KDE 3 libraries. KDE major version numbers mainly follow the Qt release cycle, meaning that KDE SC 4 is based on Qt 4, while KDE 3 was based on Qt 3.

Supported operating systems The repository of each framework should contain a file named metainfo.yaml. This file documents the maintainer of the framework, the type, the supported operating system and other information. The currently supported platforms are Linux, Microsoft Windows, macOS and Android.

Software architecture

Structure The Frameworks have a clear dependency structure, divided into "categories" and "tiers". The "categories" refer to runtime dependencies: Functional elements have no runtime dependencies. Integration designates code that may require runtime dependencies for integration depending on what the OS or platform offers. Solutions have mandatory runtime dependencies.

Components The KDE Frameworks bundle consists of over 70 packages. These existed as a single large package, called kdelibs, in KDE SC 4. Kdelibs was split into several individual frameworks, some of which are no longer part of KDE but were integrated into Qt 5.2.

KDE Frameworks are grouped in four different tiers according to dependency on other libraries. Tiers of Frameworks Tier 1 Mostly depend only on Qt, highly portable Tier 2 Depends on Tier 1, but dependencies are still manageable. Tier 3 Complex dependencies, including Tiers 12 etc. Tier 4 Can be mostly ignored by application programmers. Mostly plugins that provide additional features like platform support.

Complete list of frameworks Name Git repository Description Frameworkintegration 4 frameworkintegration.git Framework Integration is a set of plugins responsible for better integration of Qt applications when running on a KDE Plasma workspace. Applications do not need to link to this directly. The library KF5Style provides integration with KDE Plasma Workspace settings for Qt styles. Derive your Qt style from KStyle to automatically inherit various settings from the KDE Plasma Workspace, providing a consistent user experience. For example, this will ensure a consistent single-click or double-click activation setting, and the use of standard themed icons. KActivities 3 kactivities.git Core components for KDE Activities' Activity Manager. KApiDox 1 kapidox.git Scripts and data for building API documentation in a standard format and style. This framework contains scripts and data for building API documentation (dox) in a standard format and style. The Doxygen tool is used to do the actual documentation extraction and formatting, but this framework provides a wrapper script to make generating the documentation more convenient (including reading settings from the target framework or other module) and a standard template for the generated documentation. KArchive 1 karchive.git Classes for easy reading, creation and manipulation of "archive" formats including zip and tar. KAuth 2 kauth.git Provides a convenient, system-integrated way to offload actions that need to be performed as a privileged user to small helper utilities. KBookmarks 3 kbookmarks.git KBookmarks lets you access and manipulate bookmarks stored using the "XBEL format". The most common use for bookmarks is web browsers, but this can also be useful in any application where local files or URLs can be saved as bookmarks. KCMUtils 3 kcmutils.git Utilities, i.a. KSettings, for KDE System Settings modules. KCMUtils provides various classes to work with KCModules. KCModules can be created with the KConfigWidgets framework. KCodecs 1 kcodecs.git KCodecs is a string encoding library, it provides a collection of methods to manipulate strings using various encodings. It can automatically determine the charset of a string, translate XML entities, validate email addresses, and find encodings by name in a more tolerant way than QTextCodec (useful e.g. for data coming from the Internet). KCompletion 2 kcompletion.git String completion framework, including completion-enabled lineedit and combobox. When typing filenames, email addresses and other text where the user often wants to select from existing data (including what they previously typed) rather than enter anything wholly original, users often find it helpful if they only need to type the first few characters, and then have the application offer them a set of choices or attempt to finish off what they were typing. Email clients, shells and "open file" dialogs often provide this functionality. This framework helps implement this in Qt-based applications. You can use one of the completion-ready widgets provided by this framework, or integrate it into your application's other widgets directly. The easiest way to get started is to use a KComboBox, KHistoryComboBox or KLineEdit. If you want to integrate completion into other parts of the user interface, you can use KCompletion to manage and select the possible completions. KConfig 1 kconfig.git Persistent platform-independent application settings made of two parts: KConfigCore and KConfigGui.KConfigCore provides access to the configuration files themselves, meaning it also generates the configuration in XML. KConfigGui provides a way to hook graphical control elements (widgets) to the configuration so that they are automatically initialized from the configuration and automatically propagate their changes to their respective configuration files. KConfigWidgets 3 kconfigwidgets.git Graphical control elements (widgets) for configuration dialogs. Widgets for configuration dialogs. KConfigWidgets provides easy-to-use classes to create configuration dialogs, as well as a set of widgets which uses KConfig to store their settings. KCoreAddons 1 kcoreaddons.git Utilities for core application functionality and accessing the OS. Qt addon library with a collection of non-GUI utilities. KCoreAddons provides classes built on top of QtCore to perform various tasks such as manipulating mime types, autosaving files, creating backup files, generating random sequences, performing text manipulations such as macro replacement, accessing user information and many more. KCrash 2 kcrash.git Provides support for intercepting and handling application crashes. KDBusAddons 1 kdbusaddons.git KDBusAddons provides convenience DBus classes on top of QtDBus, as well as an API to create KDED modules. KDeclarative 3 kdeclarative.git Addon for Qt declarative KDED 3 kded.git KDED stands for KDE Daemon, the central daemon of KDE work spaces. KDED runs in the background and performs a number of small tasks. Some of these tasks are built in, others are started on demand. KDesignerPlugin 3 kdesignerplugin.git This framework provides plugins for Qt Designer that allow it to display the widgets provided by various KDE frameworks, as well as a utility (kgendesignerplugin) that can be used to generate other such plugins from ini-style description files. KDESu 3 kdesu.git KDESU (KDE super user) provides a user interface for running shell commands with root privileges. It provides functionality for building GUI front ends for (password asking) console mode programs. For example, kdesu and kdessh use it to interface with su and ssh respectively. KDEWebkit 3 kdewebkit.git Integration of the HTML rendering engine WebKit. The KDEWebkit library provides KDE integration of the QtWebKit library. If you are using QtWebKit in your KDE application, you are encouraged to use this layer instead of using the QtWebKit classes directly. In particular, you should use KWebView in place of QWebView, KGraphicsWebView in place of QGraphicsWebView and KWebPage in place of QWebPage. KDNSSDFramework 2 kdnssd.git KDNSSD is a library for handling the DNS-based Service Discovery Protocol (DNS-SD), the layer of [Zeroconf] () that allows network services, such as printers, to be discovered without any user intervention or centralized infrastructure. KDocTools 2 kdoctools.git Provides tools to generate documentation in various format from DocBook files. KEmoticons 3 kemoticons.git Provides emoticons themes as well as helper classes to automatically convert text emoticons to graphical emoticons. KGlobalAccel 1 kglobalaccel.git KGlobalAccel allows you to have global keyboard shortcuts (accelerators) that are independent of the focused window. Unlike regular shortcuts, the application's window does not need focus for them to be activated. KGuiAddons 1 kguiaddons.git KDE GUI Addons; Utilities for graphical user interfaces; The KDE GUI addons provide utilities for graphical user interfaces in the areas of colors, fonts, text, images, keyboard input. KHTML 4 khtml.git KHTML is the HTML rendering engine from which WebKit was forked. It is based on the KParts technology and uses KJS for JavaScript support. Ki18n 1 ki18n.git KDE gettext-based UI text internationalization. KI18n provides functionality for internationalizing user interface text in applications, based on the GNU Gettext translation system. It wraps the standard Gettext functionality, so that the programmers and translators can use the familiar Gettext tools and workflows. KI18n provides additional functionality as well, for both programmers and translators, which can help to achieve a higher overall quality of source and translated text. This includes argument capturing, customizable markup, and translation scripting. KIconThemes 3 kiconthemes.git This library contains classes to improve the handling of icons in applications using the KDE Frameworks. KIdleTime 1 kidletime.git Integration module for idle time detection. KImageFormats 1 kimageformats.git Plugins to allow QImage to support extra file formats. This framework provides additional image format plugins for QtGui. As such it is not required for the compilation of any other software, but may be a runtime requirement for Qt-based software to support certain image formats.The following image formats have read-only support: GIMP (xcf) OpenEXR (exr) Adobe Photoshop documents (psd) Sun Raster (ras) The following image formats have read and write support: Encapsulated PostScript (eps) Personal Computer Exchange (pcx) SGI images (rgb, rgba, sgi, bw) Autodesk Softimage (pic) Targa (tga): supports more formats than Qt's version