18be2c5218b5416a5395c3d667d6e35b91d13cab
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
python -m pip install -e ".[dev]"
python -m noteflow.grpc.server
Optional: run with autoreload (watches src/ and alembic.ini):
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
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 imagesdocker-compose.dev.yml— Development with hot reload and all extras
Production (prebuilt images)
# 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)
# 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
# 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
# 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.
Description
Languages
Python
53.8%
TypeScript
33%
Rust
10.8%
Open Policy Agent
1.3%
Shell
0.3%
Other
0.6%