demo.mp4
Local tool for working with SPSS survey files. Load a .sav file, explore columns and value labels, configure what to export — all in a browser UI that runs entirely on your machine. No data leaves your machine.
Built on pyreadstat for SPSS file parsing.
tar -xzf savvy-v0.1.0.tar.gz
cd savvy
uv run uvicorn backend.main:app --port 8000git clone https://github.com/cedanl/savvy
cd savvy
make install
make devOpen http://localhost:5173. If running via devcontainer-cli (plain Docker), run make url to get the correct address.
After loading a .sav file:
- See all columns with their full question labels, detected type, and sample values (chips update live as you change the export mode)
- Search and filter columns by name or label
- Toggle columns on/off with select all / deselect all
- For columns with value labels: choose per column whether to export raw codes (Numbers), readable labels (Text answers), or both
- For columns with both a question label and a coded name: pick which to use as the CSV header
- Export to CSV
| Endpoint | Description |
|---|---|
POST /api/file |
Upload a .sav file, returns column metadata |
POST /api/export |
Upload a .sav file + JSON manifest, returns CSV |
Open in a devcontainer for a pre-configured Python 3.13 + Node 22 environment.
make test # run all tests (backend + frontend)
make backend # backend only, port 8000
make frontend # frontend only, port 5173Tests: 19 backend (pytest) + 68 frontend (vitest).