Automatically import GPG key (required once)
September 14, 2026 · View on GitHub
Description
KCast is a KDE Plasma 6 widget that lets you cast video files or YouTube URLs to a Chromecast device in your local network.
It supports device discovery, local media playback (served via catt's own temporary HTTP server), and drag-and-drop integration with browsers and file managers like Dolphin.
If KCast is useful to you, support continued KDE/Linux development through GitHub Sponsors.
Caution! starting with version 0.0.2 we need catt installed.
Homepage
Related article: Sunshine/Moonlight on Linux — Stream Your KDE Desktop to a TV with Low Latency
Sharing your whole desktop?
KCast casts video files and YouTube URLs — for the whole desktop, there's Moonbeam, our companion app for exactly that: share your whole KDE Plasma desktop wirelessly with any Moonlight device, one click and a PIN.
Features
- Chromecast discovery using Avahi (mDNS)
- Media playback controls: Play, Pause, Resume, Stop, seek (-10s/+10s buttons plus a draggable position slider)
- Playlist: search (supports regex), shuffle, repeat (off/all/one),
drop a folder or an
.m3u/.m3u8file to queue up multiple tracks - Local media files, served to the Chromecast via
catt's own temporary local HTTP server - YouTube and thousands of other sites, plus direct HLS (
.m3u8) stream URLs —cattresolves these viayt-dlpunder the hood. Live-tested and confirmed working end to end. If a site stops working, update yt-dlp (pipx inject catt yt-dlp --forcefor a pipx install, or just update yourcattpackage on RPM-based distros — it depends on your systemyt-dlp, which stays current through normal updates) - Drag & Drop from Firefox, Chrome, or Dolphin
Visuals

🛠️ Installation
KCast is pure QML — no C++ plugin, no compiler needed to install it.
Quick install (no build required)
Download the .plasmoid file from the latest
release, then either
drag it onto your desktop / drop it in Plasma's "Add Widgets" → "Install
Widget From Local File", or from a terminal:
kpackagetool6 --type Plasma/Applet --install kcast-*.plasmoid
# already installed, upgrading to a newer version:
kpackagetool6 --type Plasma/Applet --upgrade kcast-*.plasmoid
KCast is officially packaged and maintained for openSUSE (RPM) and Debian (.deb) only. COPR (Fedora) and AUR (Arch) are no longer maintained — both were more than we could keep up to date alongside the two supported channels. If you'd like to take over maintaining either one, please open an issue.
Build from source (optional)
Only needed if you want the Dolphin service menu integration, translations,
or a proper distro-tracked install — functionally identical to the
.plasmoid above otherwise, still no compiler involved:
git clone https://github.com/Agundur-KDE/KCast.git
mkdir build && cd build
cmake ..
make
make install (as root)
Installing KCast via the openSUSE Build Service Repository
For openSUSE Tumbleweed (and compatible systems):
# Add the repository
sudo zypper ar -f https://download.opensuse.org/repositories/home:/Agundur/openSUSE_Tumbleweed/home:Agundur.repo
# Automatically import GPG key (required once)
sudo zypper --gpg-auto-import-keys ref
# Refresh repository metadata
sudo zypper ref
# Install KCast
sudo zypper in kcast
catt is packaged in the same home:Agundur repository and pulled in
automatically as a dependency — no extra step needed.
Firewall (firewalld, default on openSUSE):
sudo firewall-cmd --permanent --add-service=mdns
sudo firewall-cmd --permanent --add-port=8009/tcp
sudo firewall-cmd --permanent --add-port=45000-47000/tcp
sudo firewall-cmd --reload
Install on Debian (Trixie)
Prerequisites
-
You’re running KDE Plasma 6 on Debian 13 (Trixie) — e.g. on plasma-desktop / plasma-workspace.
-
Architecture: packages provided are amd64 (x86-64).
sudo apt update
sudo apt install -y pipx
pipx ensurepath # add ~/.local/bin to PATH (log out/in if prompted)
pipx install catt
catt --version
Download the .deb from the latest release, then:
sudo apt install ./kcast_*.deb
Dependencies
To run KCast successfully, the following software must be installed:
Required
KCast is based on:
-
catt — on openSUSE this comes automatically as an RPM dependency from the same repo. On Debian there's no distro package for it, install via
pipx install catt. -
Avahi Daemon – for local network device discovery (mDNS) (systemctl status avahi-daemon)
Networking & Firewall:
-
Your PC and the Chromecast must be on the same LAN
-
mDNS must be allowed through the firewall
-
Local files aren't served by KCast itself —
cattspins up its own temporary local HTTP server on a random port to serve them, see below.
To allow via firewalld:
-
sudo firewall-cmd --permanent --add-service=mdns
-
sudo firewall-cmd --permanent --add-port=8009/tcp
-
sudo firewall-cmd --reload
-
For the casting of local files to work you need to allow the port range 45000-47000 over tcp (catt's local file server picks a port in this range).
Usage
- Switch on a chromecast enabled device in your locale network.
- drop a video file from Dolphin and/or Web-Browser on it an hit "play"
Tested Hardware
KCast has been tested successfully with the JMGO N1S Pro 4K Triple Laser Projector (supports high-quality Chromecast streaming) and a Samsung HW-Q935GD 9.1.4-channel Q-Soundbar.
Troubleshooting
Before filing a bug, run the included diagnostic script — it checks catt, firewalld rules (mDNS service, Cast-Control port 8009, and the 45000-47000/tcp range used for casting local files), and device discovery against your network directly, independent of the widget. No need to clone the whole repo, download it directly:
curl -O https://raw.githubusercontent.com/Agundur-KDE/KCast/main/setup_test.sh
chmod +x setup_test.sh # a plain download doesn't carry the executable bit
./setup_test.sh
# or with a device IP, to also check the Cast-Control port directly:
./setup_test.sh <chromecast-ip>
Support
- Open an issue in git, and please paste the output of
./setup_test.sh(see Troubleshooting) — it rules out most network/firewall causes in one step.
UPnP/DLNA (Kodi etc.)
Under consideration for a future release, tracked in #8 — not started yet.
Contributing
accepting contributions ...
Authors and acknowledgment
Alec
License
GPL-3.0-or-later
Project status
active