Src
August 16, 2026 ยท View on GitHub
The top-level src/ package contains AIRunner's desktop application,
including the GUI shell, the thin daemon-client re-export layer, the widget
tree, and the application entry points that present chat, art, STT, and TTS
as one local desktop experience.
flowchart LR
User[desktop user] --> GUI[src/airunner app]
GUI --> Bridge[airunner.daemon_client re-exports]
Bridge --> DaemonClient[services/ canonical daemon client]
DaemonClient --> Daemon[services/ headless daemon]
GUI --> Launcher[native/ launcher entry point]
What This Package Owns
- the desktop application entry points and launcher integration
- GUI widgets, windows, and user-facing workflow surfaces
- the thin
airunner.daemon_clientre-export layer over the canonical service-owned daemon HTTP client - local application behavior that should stay client-side rather than live in the shared daemon
Importable GUI code lives under src/airunner/.
The architecture audit and package map are tracked in docs/architecture/architecture-complexity-audit.md and docs/architecture/layered_product_architecture.md.
Installation
For repo work, use the developer installer so the GUI package, daemon, shared packages, and native sidecars stay in sync:
./scripts/install.sh
For an isolated editable GUI environment in a checkout:
python -m venv venv
source venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install -e './services[desktop,development]'
pip install -e ./native
pip install -e .
Test Running
The desktop package has both GUI-safe unit coverage and real daemon-backed functional coverage.
Run the general unit suite with the repo test runner:
./venv/bin/python scripts/run_tests.py --unit
Run the offscreen GUI functional suites from services/tests/ when you need
to verify the real desktop-to-daemon path:
./venv/bin/python -m pytest services/tests/test_gui_llm_tts_functional.py -v --timeout=1200
./venv/bin/python -m pytest services/tests/test_gui_stt_llm_tts_functional.py -v --timeout=1200
Those tests set QT_QPA_PLATFORM=offscreen themselves and exercise the
desktop bridge without requiring manual application startup.