name: nuitka-build description: Build Python/PyQt6 apps into standalone executables using Nuitka
Nuitka Build Skill
Build ClawdBot UI into standalone executables for Windows and macOS using Nuitka.
What is Nuitka?
Nuitka compiles Python code to native C executables. Benefits:
- Faster execution - Compiled to native code
- No Python required - Standalone distribution
- PyQt6 support - Built-in plugin
- Cross-platform - Windows, macOS, Linux
Installation
pip install nuitka
Local Build Commands
Windows (Single .exe)
python -m nuitka --mode=onefile --enable-plugin=pyqt6 --windows-console-mode=disable --output-dir=dist main.py
Windows (Folder distribution)
python -m nuitka --mode=standalone --enable-plugin=pyqt6 --windows-console-mode=disable --output-dir=dist main.py
macOS (.app bundle)
python -m nuitka --mode=app --enable-plugin=pyqt6 --macos-app-icon=assets/clawdbot.png --output-dir=dist main.py
GitHub Actions with Nuitka-Action
Use Nuitka-Action for CI/CD builds.
Workflow Structure
- name: Build with Nuitka
uses: Nuitka/Nuitka-Action@main
with:
nuitka-version: main
script-name: main.py
mode: onefile # or standalone, app
enable-plugins: pyqt6
windows-console-mode: disable
output-file: MyApp
Key Options
| Option | Values | Description |
|---|---|---|
mode |
onefile, standalone, app |
Output type |
enable-plugins |
pyqt6, pyside6 |
UI framework |
windows-console-mode |
disable, attach |
Hide console |
windows-icon-from-ico |
Path | Windows .ico icon |
macos-app-icon |
Path | macOS .png/.icns icon |
output-file |
Name | Output filename |
Current Project Workflow
Located at: .github/workflows/build.yml
Triggers:
- GitHub Release published
- Manual (
workflow_dispatch)
Builds:
| Platform | Mode | Output |
|---|---|---|
| Windows | onefile | ClawdBot-Control-Panel-Windows.exe |
| macOS | app | ClawdBot-Control-Panel-macOS.app.zip |
Steps:
- Checkout code
- Setup Python 3.13
- Install UV + dependencies
- Build with Nuitka-Action
- Upload artifacts + attach to release
Requirements
Windows
- Visual Studio Build Tools OR MinGW64 (auto-downloaded by Nuitka)
macOS
- Xcode Command Line Tools
xcode-select --install
Both
- Python 3.13+
- C compiler (auto-handled in GitHub Actions)
Common Issues
Missing DLLs (Windows)
Use --mode=standalone first to debug, then switch to --mode=onefile.
PyQt6 not found
Ensure --enable-plugin=pyqt6 is set.
Large file size
Normal for PyQt6 apps (~50-100MB). Nuitka includes Qt libraries.
Console window appears
Add --windows-console-mode=disable.
Tips
- Test locally first before pushing to GitHub Actions
- Use standalone mode for debugging
- Check build output for missing modules
- Add
--show-progressfor verbose local builds