Run TouchDesigner on Linux via Wine, fully automated. One command, works on any distro.
Any distro (recommended):
curl -sSL https://raw.githubusercontent.com/ismail-bahloul/TouchDesigner-Linux/main/install.sh | bashArch Linux (AUR):
paru -S touchdesigner-linux5-10 min, ~3-5 GB disk, auto-cleanup
The installer auto-detects your distro and environment:
- Graphical session -> full install with desktop shortcuts
- SSH / headless -> auto-detected, skips GUI-only steps
- NVIDIA users -> install GPU driver first, then reboot
- SteamOS -> the read-only root filesystem is disabled automatically (
steamos-readonly disable, needs your sudo password)
Debug mode:
DEBUG=true curl -sSL https://raw.githubusercontent.com/ismail-bahloul/TouchDesigner-Linux/main/install.sh | bashInstall Python packages into TD:
td-install --pip install numpy
td-install --pip install torch --index-url https://download.pytorch.org/whl/cpu
td-install --pip listUse a license dongle / network-shared license (CodeMeter):
td-install --codemeter status # runtime installed & running?
td-install --codemeter add-server 192.168.1.15 # add a license server to the search list
# No runtime yet? Install one without msiexec (any version, e.g. to test):
td-install --codemeter install /path/to/CodeMeterRuntime.exe
⚠️ The CodeMeter server side works (native Linux / Docker). The client under Wine is still blocked while Wibu's protectedcpsrt.dllwon't load under Wine 9.0 (tested with runtimes 8.41a and 9.10) —--codemeter installmakes it easy to try other runtime versions. See docs/codemeter.md for status & test results.
Don't want to touch your host system? Run the whole install inside an isolated Distrobox container (podman/docker) — no sudo, no 32-bit repository setup, works on any distro including immutable/SteamOS:
td-install --container install
# or straight from the one-liner:
curl -sSL https://raw.githubusercontent.com/ismail-bahloul/TouchDesigner-Linux/main/install.sh | bash -s -- --containerFirst run creates a touchdesigner-linux container (Ubuntu 24.04), then
installs everything inside it. The launcher, desktop shortcuts and .toe
associations still work from the host (they re-enter the container
automatically), and the Wine prefix stays in your $HOME.
td-install --container update # same as above for other actions
TD_CONTAINER_IMAGE=fedora:40 td-install --container-create install # custom imageSee docs/container.md for details, GPU notes and limitations.
- Update -> Run the installer and choose 2. Update
- Uninstall -> Run the installer and choose 3. Uninstall
Regenerates launcher, winetricks, DXVK, and UI fixes. No need to reinstall TD or recreate the Wine prefix.
Note: a full uninstall removes everything, including your TouchDesigner license activation (ins*.dat) — you will need to re-enter your license key after reinstalling. The uninstaller warns you before deleting it.
Update
paru -SyuUninstall
paru -R touchdesigner-linuxThe font fix (wine_ui_fixes.tox) is injected into .toe files on launch.
The license activation screen loads before any .toe, so text may look broken.
- Launch TD → license screen (missing text is normal)
- Enter your license, close TD
- Launch again → fonts are fixed
- How it works — explains each fix and why it's applied
- Compatibility status — what works and what doesn't
- Wine runners comparison — tested runners, source analysis, compatibility
- Troubleshooting — common issues and fixes
- CodeMeter dongles & network licenses — use a license dongle over the LAN
- Advanced tools — toeexpand / toecollapse
- CI notes — maintainer notes on the GitHub Actions setup, headless Wine gotchas
| Path | Description |
|---|---|
~/.local/bin/touchdesigner |
Terminal command (launch TD, open .toe files) |
~/.local/bin/launch-touchdesigner.sh |
Launcher script |
~/.local/share/touchdesigner-linux/ |
Base directory (runner, prefix, assets) |
~/.local/share/touchdesigner-linux/prefix/ |
Wine prefix |
~/.local/share/touchdesigner-linux/backups/ |
Auto-backups of patched .toe files |
File icons installed by the project:
If this project helps you:
- ⭐ Star the repo
- Support via GitHub Sponsors


