# NoteFlow NoteFlow is an intelligent meeting notetaker: local-first audio capture, navigable recall, and evidence-linked summaries. It uses a gRPC API for bidirectional audio streaming and transcription. In Beta ## What's in this repo - Python backend (gRPC server + domain services): `src/noteflow/` - Tauri + React desktop client (Vite): `client/` ## Prerequisites - Python 3.12+ - Node.js 18+ (for the Tauri/React client) - Rust toolchain (only if running the Tauri desktop app) - Docker (optional, for containerized dev) ## Local development ### 1) Backend server ```bash python -m pip install -e ".[dev]" python -m noteflow.grpc.server ``` Optional: run with autoreload (watches `src/` and `alembic.ini`): ```bash python scripts/dev_watch_server.py ``` By default the server listens on `localhost:50051`. If you want PostgreSQL persistence, set `NOTEFLOW_DATABASE_URL` in your environment or `.env` (see `example.env`). ### 2) Tauri + React client ```bash cd client npm install # Web (Vite dev server) npm run dev # Desktop (Tauri dev) npm run tauri dev ``` The Tauri desktop app requires a working Rust toolchain. ## Container-based development The repository includes two compose files: - `docker-compose.prod.yml` — Production deployment with prebuilt images - `docker-compose.dev.yml` — Development with hot reload and all extras ### Production (prebuilt images) ```bash # CPU server (default) docker compose -f docker-compose.prod.yml up -d # NVIDIA GPU server docker compose -f docker-compose.prod.yml --profile gpu up -d # AMD ROCm GPU server docker compose -f docker-compose.prod.yml --profile rocm up -d ``` ### Development (with hot reload) ```bash # CPU dev server + frontend docker compose -f docker-compose.dev.yml up -d # NVIDIA GPU dev server docker compose -f docker-compose.dev.yml --profile gpu up -d # AMD ROCm dev server docker compose -f docker-compose.dev.yml --profile rocm up -d ``` ### Building images ```bash # Build all production images docker buildx bake prod # Build and push to registry REGISTRY=git.baked.rocks/vasceannie docker buildx bake --push prod # Build dev images locally docker buildx bake dev ``` ## Common commands ```bash # Backend pytest pytest -m "not integration" ruff check . mypy src/noteflow # Client (from client/) npm run lint npm run format npm run test ``` ## Configuration Runtime settings are read from `.env` and `NOTEFLOW_` environment variables. See `src/noteflow/config/settings.py` and `example.env`.