English · Français
tuxcast finds what will break your stream before you go live, then fixes it. It converts your Elgato Stream Deck profiles, connects the apps Flatpak and snap keep apart, and splits your audio so every source gets its own fader. One command each, no root, no dependencies.
pipx install git+https://github.com/achedon12/tuxcast.git
tuxcast doctor
Why
Streaming on Linux works well, until it doesn't, and it always breaks in the same places:
- 🎛️ Your Stream Deck. Elgato's app does not exist for Linux, and your 8 pages of keys need rebuilding by hand.
- 🔇 Discord keys that do nothing. Your Stream Deck app is a Flatpak, Discord is a snap, and neither can see the other.
- ⏯️ Media buttons that do nothing either. The Spotify snap ignores remote control.
- 🎚️ One audio mix. You can't keep the music out of your VODs or lower Discord alone.
- 📶 "Unstable bitrate." Twitch blames your connection and your speed test says it's fine (it's the Wi-Fi).
Each of these has a fix buried in a forum thread. tuxcast checks for all of them and applies the fixes.
What it does
| Command | |
|---|---|
tuxcast ui |
Opens a control desk for everything below: a go-live tally, your Stream Deck and its pages, a mixer with faders, one-click fixes (live demo) |
tuxcast doctor |
Checks display server, audio, GPU encoder, OBS, Stream Deck, Discord, Spotify and network. Each problem comes with its fix |
tuxcast convert |
Turns Elgato .streamDeckProfile exports into StreamController pages: images, folders, multi actions, hotkeys (AZERTY and QWERTZ aware), OBS, Discord and Twitch keys |
tuxcast bridge discord |
Exposes Discord's socket (snap, Vesktop, native) to Flatpak clients, and recreates the bridge at every login |
tuxcast audio |
Separate PipeWire sinks for game, music, voice and alerts, and routes apps to them |
tuxcast deck |
Lists Stream Decks, prints the udev rule they need, and resets one that froze after a crash, without unplugging it |
tuxcast patch |
Re-applies the fixes you made to app files every time an update wipes them |
Or run it from a control desk
tuxcast ui opens a dashboard on your machine: a tally that tells you whether you can go live, your
Stream Deck with its real pages, a mixer with a fader per audio channel, and a button for every fix.
Try the live demo, no install needed.
Bring your Stream Deck profiles from Windows
Install
You need Python 3.11 or newer, which every current distribution ships.
pipx install git+https://github.com/achedon12/tuxcast.git
or uv tool install git+https://github.com/achedon12/tuxcast.git, or the
installer script (curl -fsSL https://raw.githubusercontent.com/achedon12/tuxcast/main/install.sh | sh).
Then start with tuxcast doctor.
Guides
The website (also in the wiki) has a guide for each part of a Linux streaming setup, with the manual steps for people who prefer to do it by hand:
Streaming on Linux in 2026 · OBS on Linux · Stream Deck on Linux · Audio routing · Discord and Spotify in sandboxes · Music without claims · Network
Principles
- Reads before it writes.
doctornever changes anything. Other commands say what they wrote, and most take--dry-run. - Never needs root. Everything happens in your user session. The one privileged step (the udev rule) is printed for you to run.
- Zero dependencies. Python's standard library only, so it installs in seconds and keeps working.
- Explains itself. Every warning says why it matters on stream and how to fix it.
Roadmap
- Doctor, converter, Discord bridge, audio sinks, deck tools, patch keeper
-
tuxcast obs: apply encoder presets and multistream outputs to an OBS profile - More Elgato plugins in
convert(soundboard, Spotify, Voicemeeter equivalents) - A
doctor --watchmode to keep in an OBS dock while live - Packages on PyPI and the AUR
Ideas and votes go to Discussions.
Contributing
Every Linux setup is a little different, so your reports matter as much as code: a doctor check that got your machine wrong, an Elgato action that didn't convert, a guide missing your desktop. See CONTRIBUTING.md. Issues labelled good first issue are a good start; most Elgato mappings are one line.
If tuxcast saved your stream, a ⭐ helps other Linux streamers find it.
License
MIT. tuxcast is not affiliated with Elgato, OBS, Discord, Spotify or Twitch.
Metadata
Release files for tuxcast 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tuxcast-0.1.0.tar.gz | 217.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tuxcast-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 433.9 kB
Release files / tuxcast-0.1.0.tar.gz
| Download URL | tuxcast-0.1.0.tar.gz |
|---|---|
| Size | 217.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7c3f463201c71f6634d58b0d03c00806a32badc532769d75e07707839dd9de5
|
|
BLAKE2b-256 checksum How to use checksums |
9528b877fc943e728503010c06e06df504e635b366fd7d29364ec621feae4a20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / tuxcast-0.1.0-py3-none-any.whl
| Download URL | tuxcast-0.1.0-py3-none-any.whl |
|---|---|
| Size | 216.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2ede451fec1281c26c94f4479f79399e6f284f45d69d8420c90e36d6d729805f
|
|
BLAKE2b-256 checksum How to use checksums |
ccbaec684ef68ff3d48c0479a213ba0110a9a2fa3407e0f4354b207718f37b6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log