Open-source project
KDE/kdeconnect-kde avatar
KDE/kdeconnect-kde

KDE Connect: Wireless Device Integration Between Linux, Android, Windows, and iOS

Multi-platform app that allows your devices to communicate

4,037 stars291 forksC++License varies

At a glance

What is it?
KDE Connect is a multi-platform application that links a phone and a computer over a local network with TLS encryption, enabling clipboard sharing, notification sync, file transfer, SMS access, remote control, and run-command execution. The desktop component runs on Linux and Windows; mobile apps are available for Android, iPhone, and iPad.
Who is it for?
KDE Connect is the right tool for users who want seamless device integration between a Linux desktop and an Android or iOS device on the same local network. It works across distribution desktops that support Qt 6 and on Windows via the Microsoft Store.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository received new commits within the last day.
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 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What KDE Connect Does and Who It Is For

KDE Connect connects a phone to a computer over a local network. All communication uses TLS encryption. Once paired, the two devices can share a clipboard, sync Android notifications to the desktop, transfer files and URLs, use the phone as a media remote or virtual touchpad, advance presentation slides, run shell commands on the computer from the phone, and read, send, and reply to SMS and MMS from the desktop.

The target users are Linux desktop users with Android phones, and secondarily iOS users and Windows users. The project covers the desktop side of the connection. The Android app is in a separate repository at invent.kde.org/network/kdeconnect-android.

Supported Platforms and Where to Get the Apps

The desktop component runs on Linux with any desktop environment that supports Qt 6, including Plasma, GNOME, and elementary OS. It is also available for Windows through the Microsoft Store. macOS support is not official; the README states that most features have been ported to Windows but macOS has not been fully tested.

The mobile apps are available on Android from the Play Store and from F-Droid. The iOS app for iPhone and iPad is available from the Apple App Store. Both mobile apps must be installed and paired with the desktop component before any features are accessible.

On Linux, the desktop package is available in most distribution repositories under names including `kdeconnect-kde`, `kdeconnect-plasma`, `kdeconnect`, or `kde-connect`. The README instructs users to search their distribution's package manager for one of these names.

Installing KDE Connect on Linux

On Linux, the package is available in most distribution repositories. The README gives four possible package names to search for: `kdeconnect-kde`, `kdeconnect-plasma`, `kdeconnect`, or `kde-connect`. The name varies by distribution. Checking the distribution's package manager with those names is the recommended first step.

For builds from source, the README links to the KDE community wiki at community.kde.org/KDEConnect#Linux_Desktop for the full build instructions.

After installation, both the desktop application and the phone app must be open and connected to the same local network before pairing. The pairing step happens inside the application; the KDE Userbase wiki provides a user-focused step-by-step guide. For Windows, install the app from the Microsoft Store. The README notes that Windows support is available but macOS has not been fully tested.

Architecture: DBus, Plugins, and NetworkPackets

The README documents the internal architecture in detail. KDE Connect separates the protocol logic from the UI through a core library that exposes DBus interfaces. UI components, such as the Plasma applet or the GNOME indicator, consume those interfaces without reimplementing the protocol. This design allows new UI components to be added without touching the network or plugin code.

The core library has four main building blocks. LinkProviders discover other KDE Connect devices on the network and establish connections. Devices represent remote devices, abstracting the specific link type in use. NetworkPackets are JSON-serializable, self-contained messages exchanged between plugins. Plugins implement individual features and communicate through NetworkPackets.

The basic structure of a NetworkPacket is:

json
{
  "id": 123456789,
  "type": "com.example.myplugin",
  "body": {},
  "version": 5
}

The `body` field's content is defined entirely by the emitting and receiving plugins. For binary payloads that cannot be serialized to JSON, two additional fields are used: `payloadSize` (the file size, or -1 for a stream of unknown length) and `payloadTransferInfo` (a JSON object where the Link adds connection details such as IP and port).

Plugin System and Feature Scope

Each KDE Connect feature is implemented as a plugin. The plugins directory in the repository tree contains the individual feature implementations. The pairing process negotiates which plugins both sides support, so a feature that is not installed on one end simply does not appear.

The feature set documented in the README covers clipboard sharing, notification sync with reply support, file and URL sharing, multimedia remote control for Linux media players, virtual touchpad and keyboard, presentation remote for advancing slides, run-command execution from the phone, and SMS/MMS access from the desktop. Each capability depends on the corresponding plugin being active on both devices.

Translations for all KDE apps, including KDE Connect, are handled through KDE's localization team at l10n.kde.org. Contributing a translation requires working with the language team rather than submitting directly to the repository.

Limitations and Security Considerations

KDE Connect requires both devices to be on the same local network. It does not support pairing over the internet without a separate VPN or tunnel. The README does not document a cloud relay option.

The run-command plugin, which allows executing shell commands on the computer from the phone, requires careful configuration. Any command registered is available to the paired device, so commands should be limited to specific, safe operations.

MacOS is explicitly described as untested. BSD is listed with "no promises." Windows support is available but delivered through KDE Craft rather than an official release.

Bug reports go to KDE's Bugzilla at bugs.kde.org. The README explicitly states that the GitHub issue tracker on the mirror repository should not be used, because the project consolidates all issue tracking in one place. The primary development repository is at invent.kde.org/network/kdeconnect-kde.

KDE Connect Versus Pushbullet and Warpinator

Pushbullet is a commercial service that links devices through a cloud relay, requiring an account and internet connectivity. KDE Connect is entirely local: no account, no cloud, no data leaving the local network. For users who cannot or do not want to route personal notifications and clipboard contents through a third-party server, KDE Connect is the concrete alternative.

Warpinator is a GNOME-focused local network file transfer tool developed by Linux Mint. It handles file transfer between computers on a local network but does not support the phone-to-computer feature set of KDE Connect: no notification sync, no SMS access, no virtual touchpad, no clipboard sharing. For users who need only file transfer between Linux machines, Warpinator is simpler; for users who need the full phone integration, it covers only one of KDE Connect's capabilities.

The last push to the KDE Connect desktop repository was on 2026-09-27.

Editorial conclusion

KDE Connect is the right tool for users who want seamless device integration between a Linux desktop and an Android or iOS device on the same local network. It works across distribution desktops that support Qt 6 and on Windows via the Microsoft Store. Before pairing, verify that both devices are on the same network and that the KDE Connect port is not blocked by a firewall. The primary codebase is maintained on KDE's GitLab at invent.kde.org; the GitHub repository is a mirror, and bug reports should go to KDE Bugzilla rather than GitHub Issues. The last push was on 2026-09-27.

Frequently asked questions

What is KDE Connect used for?

KDE Connect links a phone and a computer on the same local network using TLS encryption. It enables clipboard sharing, Android notification sync, file and URL transfer, SMS access from the desktop, virtual touchpad, media remote control, and run-command execution from the phone.

How do I connect my device to KDE Connect?

Install KDE Connect on the desktop and the companion app on your phone, connect both to the same local network, then open the application on both devices. A pairing request will appear; accept it on both sides to complete the connection.

Is KDE Connect safe to use?

All communication between paired devices uses TLS encryption over the local network. KDE Connect does not use a cloud relay, so data stays on the local network. The run-command plugin should be configured carefully since it executes shell commands on the computer from the paired phone.

Official sources

  1. Issues
  2. KDE/kdeconnect-kde on GitHub
  3. Project website
  4. README
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/kde-kdeconnect-kde.svg)](https://hysenlabs.com/projects/kde-kdeconnect-kde)