Local Apple Silicon voice studio for Qwen3-TTS models, with a FastAPI backend and React web UI.
backend/: FastAPI API, SQLite persistence, MLX inference adapter, testsfrontend/: Vite + React + TypeScript studio UIdata/: generated at runtime for voice profiles, renders, and cachemodels/: local MLX model downloads
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000cd frontend
npm install
npm run devThe frontend runs on http://127.0.0.1:5173 and expects the API on http://127.0.0.1:8000.
./scripts/deploy.shIf you want to run it from Nushell explicitly:
nu ./scripts/deploy.nuThat command will:
- ensure the backend virtualenv and frontend dependencies exist
- run frontend and backend tests
- build
frontend/dist - start FastAPI on
http://127.0.0.1:8000
In this mode the backend serves the built frontend, so the app runs from a single URL. For a faster restart during local iteration, use ./scripts/deploy.sh start --skip-tests.