{"data":{"slug":"capsize-games-airunner","name":"airunner","tagline":"Offline inference engine for art, real-time voice conversations, LLM powered chatbots and automated workflows","github_url":"https://github.com/Capsize-Games/airunner","owner":"Capsize-Games","repo":"airunner","owner_avatar_url":"https://avatars.githubusercontent.com/u/83726625?v=4","primary_language":"Python","stars":1312,"forks":99,"topics":["ai","ai-art","art","asset-generator","chatbot","deep-learning","desktop-app","image-generation","mistral","multimodal","privacy","pygame","pyside6","python","self-hosted","speech-to-text","stable-diffusion","text-to-image","text-to-speech","text-to-speech-app"],"archived":false,"github_pushed_at":"2026-07-08T03:33:08+00:00","maintenance_label":"Very active","url":"https://www.graphcanon.com/tools/capsize-games-airunner","markdown_url":"https://www.graphcanon.com/tools/capsize-games-airunner.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/capsize-games-airunner","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=capsize-games-airunner","description":"Offline inference engine for art, real-time voice conversations, LLM powered chatbots and automated workflows","homepage_url":"https://airunner.capsizegames.com","license":"GPL-3.0","open_issues":5,"watchers":10,"ai_summary":null,"readme_excerpt":"## ⚙️ System Requirements\n\n| | Minimum | Recommended |\n|---|---------|-------------|\n| **OS** | Ubuntu 22.04, Windows 10 | Ubuntu 22.04 (Wayland) |\n| **CPU** | Ryzen 2700K / i7-8700K | Ryzen 5800X / i7-11700K |\n| **RAM** | 16 GB | 32 GB |\n| **GPU** | NVIDIA RTX 3060 | NVIDIA RTX 5080 |\n| **Storage** | 22 GB - 100 GB+ (actual usage varies, SSD recommended) | 100 GB+ |\n\n---\n\n---\n\n## 💾 Installation\n\nCurrent status:\nThe hybrid-runtime branch completed the runtime refactor, and AIRunner now\nhas embedded-Python bundle builders and installer packagers.\n\nAvailable packaging paths:\n- Linux staged bundle archive: `./scripts/build_airunner_bundle.sh`\n- Linux AppImage wrapper: `./scripts/package_linux_appimage.sh`\n- Linux tarball installer: `./install.sh --bundle-archive <bundle.tar.gz>`\n- Windows bundle staging: `python src/airunner/bin/build_end_user_bundle.py`\n- Windows NSIS installer: `pwsh ./scripts/package_windows_nsis.ps1`\n\nThe manual and Docker paths below are still useful developer/operator\ninstallation flows. The bundled end-user packaging contract is summarized in\n[END_USER_DISTRIBUTION.md](./END_USER_DISTRIBUTION.md).\n\n---\n\n### Docker (Recommended)\n\n**GUI Mode:**\n```bash\nxhost +local:docker && docker compose run --rm airunner\n```\n\n**Headless API Server:**\n```bash\ndocker compose run --rm --service-ports airunner --headless\n```\n\n> **Note:** `--service-ports` is required to expose port 8080 for the API.\n\nTo trim container dependencies for a specific deployment, rebuild with a\nprofile list such as:\n\n```bash\ndocker build \\\n  --build-arg AIRUNNER_INSTALL_PROFILES=core,llm-native,stt-native \\\n  -t airunner:headless .\n```\n\nThe headless server exposes an HTTP API on port 8080 with endpoints:\n- `GET /health` - Health check and service status\n- `POST /llm` - LLM inference\n- `POST /art` - Image generation\n\n---\n\n### Manual Installation (Ubuntu/Debian)\n\n**Python 3.13+ required.** We recommend using `pyenv` and `venv`.\n\n1. **Install system dependencies:**\n   ```bash\n   sudo apt update && sudo apt install -y \\\n     build-essential cmake git curl wget pkg-config \\\n     nvidia-cuda-toolkit pipewire libportaudio2 libxcb-cursor0 \\\n     espeak espeak-ng-espeak qt6-qpa-plugins qt6-wayland \\\n     libsentencepiece-dev \\\n     mecab libmecab-dev mecab-ipadic-utf8 libxslt-dev mkcert\n   ```\n\n2. **Create data directory:**\n   ```bash\n   mkdir -p ~/.local/share/airunner\n   ```\n\n3. **Choose the package profiles you need:**\n\n   - `core`: shared API, storage, config, and runtime plumbing\n   - `llm-native`: local llama.cpp runtime and LLM toolchain\n   - `stt-native`: local STT runtime helpers\n   - `art-python`: Python image-generation runtimes\n   - `tts-python`: Python TTS runtimes without MeCab-backed language packs\n   - `gui`: desktop UI dependencies\n   - `development`: test, lint, and packaging tooling\n\n4. **Install AI Runner:**\n\n  From PyPI:\n   ```bash\n   pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128\n   pip install \\\n     \"airunner[core,llm-native,stt-native,art-python,tts-python,gui]\"\n   ```\n\n  For a headless-only install, omit the GUI profile:\n  ```bash\n  pip install \\\n    \"airunner[core,llm-native,stt-native,art-python,tts-python]\"\n  ```\n\n  From a local clone in editable mode:\n  ```bash\n  git clone https://github.com/Capsize-Games/airunner.git\n  cd airunner\n  python -m venv venv\n  source venv/bin/activate\n  pip install --upgrade pip setuptools wheel\n  pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128\n  pip install -e \\\n    \".[core,llm-native,stt-native,art-python,tts-python,gui,development]\"\n  ```\n\n  The base `tts-python` profile intentionally excludes the MeCab-backed\n  Japanese and Korean voice packs so a fresh virtual environment can install\n  without extra native build steps.\n\n  To include those language packs after installing the system packages above, use:\n  ```bash\n  pip install -e \".[openvoice_jp,openvoice_kr]\"\n  ```\n\n5. **Install llama-cpp-python with CUDA (","github_created_at":"2023-03-21T19:14:03+00:00","created_at":"2026-07-11T12:12:29.469285+00:00","updated_at":"2026-07-11T12:12:33.9516+00:00","categories":[{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"},{"slug":"inference-serving","name":"Inference & Serving","url":"https://www.graphcanon.com/categories/inference-serving","markdown_url":"https://www.graphcanon.com/categories/inference-serving.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/inference-serving"}],"tags":[{"slug":"art","name":"art"},{"slug":"image-generation","name":"image-generation"},{"slug":"ai-art","name":"ai-art"},{"slug":"asset-generator","name":"asset-generator"},{"slug":"deep-learning","name":"deep-learning"},{"slug":"ai","name":"ai"},{"slug":"desktop-app","name":"desktop-app"},{"slug":"chatbot","name":"chatbot"}],"trust":{"provenance":{"is_fork":false,"github_id":617136332,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T12:12:30.244Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":0,"days_since_push":3,"last_release_at":"2025-12-11T19:35:49Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:12:31.391Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T12:12:31.027Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-07-11T12:12:31.027Z","managed_saas":false},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-07-11T12:12:31.027Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-07-11T12:12:31.027Z"},"license_spdx":{"value":"GPL-3.0","source":"github.license","observed_at":"2026-07-11T12:12:31.027Z"}}}}